Fix crash when saving due to FP imprecision

This commit is contained in:
tobspr 2020-05-15 19:09:29 +02:00
parent 3d2af20edd
commit 9adbbfa1c3
5 changed files with 9 additions and 6 deletions

View File

@ -14,7 +14,7 @@ export class BeltComponent extends Component {
static getSchema() { static getSchema() {
return { return {
direction: types.string, direction: types.string,
sortedItems: types.array(types.pair(types.ufloat, types.obj(gItemRegistry))), sortedItems: types.array(types.pair(types.float, types.obj(gItemRegistry))),
}; };
} }

View File

@ -26,7 +26,7 @@ export class ItemEjectorComponent extends Component {
pos: types.vector, pos: types.vector,
direction: types.enum(enumDirection), direction: types.enum(enumDirection),
item: types.nullable(types.obj(gItemRegistry)), item: types.nullable(types.obj(gItemRegistry)),
progress: types.ufloat, progress: types.float,
}) })
), ),
}; };

View File

@ -45,12 +45,12 @@ export class ItemProcessorComponent extends Component {
preferredSlot: types.nullable(types.uint), preferredSlot: types.nullable(types.uint),
}) })
), ),
secondsUntilEject: types.ufloat, secondsUntilEject: types.float,
itemConsumptionAnimations: types.array( itemConsumptionAnimations: types.array(
types.structured({ types.structured({
item: types.obj(gItemRegistry), item: types.obj(gItemRegistry),
slotIndex: types.uint, slotIndex: types.uint,
animProgress: types.ufloat, animProgress: types.float,
direction: types.enum(enumDirection), direction: types.enum(enumDirection),
}) })
), ),

View File

@ -18,7 +18,7 @@ export class UndergroundBeltComponent extends Component {
static getSchema() { static getSchema() {
return { return {
mode: types.enum(enumUndergroundBeltMode), mode: types.enum(enumUndergroundBeltMode),
pendingItems: types.array(types.pair(types.obj(gItemRegistry), types.ufloat)), pendingItems: types.array(types.pair(types.obj(gItemRegistry), types.float)),
}; };
} }

View File

@ -140,7 +140,10 @@ export class ShapeDefinition extends BasicSerializableObject {
layers.push(quads); layers.push(quads);
} }
return new ShapeDefinition({ layers }); const definition = new ShapeDefinition({ layers });
// We know the hash so save some work
definition.cachedHash = key;
return definition;
} }
/** /**