Fix hub not accepting all itmes

This commit is contained in:
tobspr 2020-05-18 11:47:17 +02:00
parent 8dd4e63b3c
commit 65529cce1a
5 changed files with 14 additions and 8 deletions

View File

@ -345,6 +345,7 @@
<key type="filename">sprites/blueprints/miner.png</key>
<key type="filename">sprites/blueprints/rotater-ccw.png</key>
<key type="filename">sprites/blueprints/rotater.png</key>
<key type="filename">sprites/blueprints/splitter-compact-inverse.png</key>
<key type="filename">sprites/blueprints/splitter-compact.png</key>
<key type="filename">sprites/blueprints/trash.png</key>
<key type="filename">sprites/blueprints/underground_belt_entry-tier2.png</key>
@ -353,6 +354,7 @@
<key type="filename">sprites/blueprints/underground_belt_exit.png</key>
<key type="filename">sprites/buildings/miner-chainable.png</key>
<key type="filename">sprites/buildings/rotater-ccw.png</key>
<key type="filename">sprites/buildings/splitter-compact-inverse.png</key>
<key type="filename">sprites/buildings/splitter-compact.png</key>
<key type="filename">sprites/buildings/underground_belt_entry-tier2.png</key>
<key type="filename">sprites/buildings/underground_belt_entry.png</key>

View File

@ -76,7 +76,7 @@ export const globalConfig = {
debug: {
/* dev:start */
// fastGameEnter: true,
fastGameEnter: true,
noArtificialDelays: true,
// disableSavegameWrite: true,
showEntityBounds: false,

View File

@ -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) {

View File

@ -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({

View File

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