diff --git a/res_raw/atlas.tps b/res_raw/atlas.tps index 36f93c3d..5c01c572 100644 --- a/res_raw/atlas.tps +++ b/res_raw/atlas.tps @@ -345,6 +345,7 @@ sprites/blueprints/miner.png sprites/blueprints/rotater-ccw.png sprites/blueprints/rotater.png + sprites/blueprints/splitter-compact-inverse.png sprites/blueprints/splitter-compact.png sprites/blueprints/trash.png sprites/blueprints/underground_belt_entry-tier2.png @@ -353,6 +354,7 @@ sprites/blueprints/underground_belt_exit.png sprites/buildings/miner-chainable.png sprites/buildings/rotater-ccw.png + sprites/buildings/splitter-compact-inverse.png sprites/buildings/splitter-compact.png sprites/buildings/underground_belt_entry-tier2.png sprites/buildings/underground_belt_entry.png diff --git a/src/js/core/config.js b/src/js/core/config.js index 400e0625..2999711c 100644 --- a/src/js/core/config.js +++ b/src/js/core/config.js @@ -76,7 +76,7 @@ export const globalConfig = { debug: { /* dev:start */ - // fastGameEnter: true, + fastGameEnter: true, noArtificialDelays: true, // disableSavegameWrite: true, showEntityBounds: false, diff --git a/src/js/game/systems/belt.js b/src/js/game/systems/belt.js index 23932c25..f3166d76 100644 --- a/src/js/game/systems/belt.js +++ b/src/js/game/systems/belt.js @@ -197,10 +197,11 @@ export class BeltSystem extends GameSystemWithFilter { const speedMultiplier = this.root.hubGoals.getBeltBaseSpeed(); - // SYNC with systems/item_processor.js:drawEntityUnderlays! + // SYNC with systems/item_acceptor.js:drawEntityUnderlays! // 126 / 42 is the exact animation speed of the png animation const animationIndex = Math.floor( - (this.root.time.now() * speedMultiplier * BELT_ANIM_COUNT * 126) / 42 + ((this.root.time.now() * speedMultiplier * BELT_ANIM_COUNT * 126) / 42) * + globalConfig.itemSpacingOnBelts ); const contents = chunk.contents; for (let y = 0; y < globalConfig.mapChunkSize; ++y) { diff --git a/src/js/game/systems/item_acceptor.js b/src/js/game/systems/item_acceptor.js index 167df47b..51ce07d6 100644 --- a/src/js/game/systems/item_acceptor.js +++ b/src/js/game/systems/item_acceptor.js @@ -97,11 +97,12 @@ export class ItemAcceptorSystem extends GameSystemWithFilter { // SYNC with systems/belt.js:drawSingleEntity! const animationIndex = Math.floor( - (this.root.time.now() * + ((this.root.time.now() * this.root.hubGoals.getBeltBaseSpeed() * this.underlayBeltSprites.length * 126) / - 42 + 42) * + globalConfig.itemSpacingOnBelts ); drawRotatedSprite({ diff --git a/src/js/game/systems/item_processor.js b/src/js/game/systems/item_processor.js index d8757294..ddd02be0 100644 --- a/src/js/game/systems/item_processor.js +++ b/src/js/game/systems/item_processor.js @@ -311,12 +311,14 @@ export class ItemProcessorSystem extends GameSystemWithFilter { // HUB case enumItemProcessorTypes.hub: { - const shapeItem = /** @type {ShapeItem} */ (items[0].item); - const hubComponent = entity.components.Hub; assert(hubComponent, "Hub item processor has no hub component"); - hubComponent.queueShapeDefinition(shapeItem.definition); + for (let i = 0; i < items.length; ++i) { + const shapeItem = /** @type {ShapeItem} */ (items[i].item); + hubComponent.queueShapeDefinition(shapeItem.definition); + } + break; }