1
0
mirror of https://github.com/tobspr/shapez.io.git synced 2026-03-02 03:39:21 +00:00

Further progress on the energy generator / wires, fix translations

This commit is contained in:
tobspr
2020-07-01 17:51:11 +02:00
parent 030194f5b8
commit bd899df5fe
53 changed files with 1243 additions and 893 deletions

View File

@@ -546,7 +546,6 @@ export class BeltSystem extends GameSystemWithFilter {
return;
}
parameters.context.globalAlpha = 0.5;
const contents = chunk.wireContents;
for (let y = 0; y < globalConfig.mapChunkSize; ++y) {
for (let x = 0; x < globalConfig.mapChunkSize; ++x) {
@@ -564,7 +563,6 @@ export class BeltSystem extends GameSystemWithFilter {
}
}
}
parameters.context.globalAlpha = 1;
}
/**

View File

@@ -0,0 +1,48 @@
import { GameSystemWithFilter } from "../game_system_with_filter";
import { EnergyConsumerComponent } from "../components/energy_consumer";
import { Loader } from "../../core/loader";
import { DrawParameters } from "../../core/draw_parameters";
import { Entity } from "../entity";
import { enableImageSmoothing } from "../../core/buffer_utils";
export class EnergyConsumerSystem extends GameSystemWithFilter {
constructor(root) {
super(root, [EnergyConsumerComponent]);
this.batterySprites = [
Loader.getSprite("sprites/wires/battery_empty.png"),
Loader.getSprite("sprites/wires/battery_low.png"),
Loader.getSprite("sprites/wires/battery_medium.png"),
Loader.getSprite("sprites/wires/battery_full.png"),
];
}
/**
* Draws everything
* @param {DrawParameters} parameters
*/
draw(parameters) {
this.forEachMatchingEntityOnScreen(parameters, this.drawSingleEntity.bind(this));
}
/**
* Draws a given entity
* @param {DrawParameters} parameters
* @param {Entity} entity
*/
drawSingleEntity(parameters, entity) {
const staticComp = entity.components.StaticMapEntity;
const consumerComp = entity.components.EnergyConsumer;
const position = staticComp
.getTileSpaceBounds()
.getCenter()
.toWorldSpace()
.add(consumerComp.batteryPosition);
const percentage = consumerComp.stored / consumerComp.bufferSize;
const index = Math.floor(percentage * this.batterySprites.length);
this.batterySprites[index].drawCachedCentered(parameters, position.x, position.y, 12);
}
}

View File

@@ -1,7 +1,7 @@
import { DrawParameters } from "../../core/draw_parameters";
import { formatBigNumber } from "../../core/utils";
import { T } from "../../translations";
import { EnergyGeneratorComponent, ENERGY_GENERATOR_EJECT_SLOT } from "../components/energy_generator";
import { EnergyGeneratorComponent } from "../components/energy_generator";
import { Entity } from "../entity";
import { GameSystemWithFilter } from "../game_system_with_filter";
import { POSITIVE_ENERGY_ITEM_SINGLETON } from "../items/positive_energy_item";
@@ -36,7 +36,8 @@ export class EnergyGeneratorSystem extends GameSystemWithFilter {
}
if (energyGenComp.itemsInQueue > 0) {
if (ejectorComp.tryEject(ENERGY_GENERATOR_EJECT_SLOT, POSITIVE_ENERGY_ITEM_SINGLETON)) {
// FIXME: Find slot dynamically
if (ejectorComp.tryEject(0, POSITIVE_ENERGY_ITEM_SINGLETON)) {
energyGenComp.itemsInQueue -= 1;
}
}

View File

@@ -27,7 +27,7 @@ export class WiredPinsSystem extends GameSystemWithFilter {
}
/**
* Draws the given layer
* Draws the pins
* @param {DrawParameters} parameters
*/
draw(parameters) {
@@ -35,7 +35,7 @@ export class WiredPinsSystem extends GameSystemWithFilter {
}
/**
* Draws a given chunk
* Draws a given entity
* @param {DrawParameters} parameters
* @param {Entity} entity
*/