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;
}