mirror of
https://github.com/tobspr/shapez.io.git
synced 2025-06-13 13:04:03 +00:00
Added Mirrored Stacker
This commit is contained in:
parent
9f53d9543f
commit
0040b2d2a6
BIN
res_raw/sprites/blueprints/stacker-mirrored.png
Executable file
BIN
res_raw/sprites/blueprints/stacker-mirrored.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 24 KiB |
BIN
res_raw/sprites/buildings/stacker-mirrored.png
Executable file
BIN
res_raw/sprites/buildings/stacker-mirrored.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
@ -1,5 +1,5 @@
|
|||||||
$buildings: belt, cutter, miner, mixer, painter, rotater, balancer, stacker, trash, underground_belt, wire,
|
$buildings: belt, cutter, miner, mixer, painter, rotater, balancer, stacker, stacker-mirrored, trash, underground_belt,
|
||||||
constant_signal, logic_gate, lever, filter, wire_tunnel, display, virtual_processor, reader, storage,
|
wire, constant_signal, logic_gate, lever, filter, wire_tunnel, display, virtual_processor, reader, storage,
|
||||||
transistor, analyzer, comparator, item_producer;
|
transistor, analyzer, comparator, item_producer;
|
||||||
|
|
||||||
@each $building in $buildings {
|
@each $building in $buildings {
|
||||||
@ -9,8 +9,8 @@ $buildings: belt, cutter, miner, mixer, painter, rotater, balancer, stacker, tra
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$buildingsAndVariants: belt, balancer, underground_belt, underground_belt-tier2, miner, miner-chainable,
|
$buildingsAndVariants: belt, balancer, underground_belt, underground_belt-tier2, miner, miner-chainable, cutter,
|
||||||
cutter, cutter-quad, rotater, rotater-ccw, stacker, mixer, painter-double, painter-quad, trash, storage,
|
cutter-quad, rotater, rotater-ccw, stacker, stacker-mirrored, mixer, painter-double, painter-quad, trash, storage,
|
||||||
reader, rotater-rotate180, display, constant_signal, wire, wire_tunnel, logic_gate-or, logic_gate-not,
|
reader, rotater-rotate180, display, constant_signal, wire, wire_tunnel, logic_gate-or, logic_gate-not,
|
||||||
logic_gate-xor, analyzer, virtual_processor-rotater, virtual_processor-unstacker, item_producer,
|
logic_gate-xor, analyzer, virtual_processor-rotater, virtual_processor-unstacker, item_producer,
|
||||||
virtual_processor-stacker, virtual_processor-painter, wire-second, painter, painter-mirrored, comparator;
|
virtual_processor-stacker, virtual_processor-painter, wire-second, painter, painter-mirrored, comparator;
|
||||||
|
|||||||
@ -5,10 +5,13 @@ import { ItemAcceptorComponent } from "../components/item_acceptor";
|
|||||||
import { ItemEjectorComponent } from "../components/item_ejector";
|
import { ItemEjectorComponent } from "../components/item_ejector";
|
||||||
import { enumItemProcessorTypes, ItemProcessorComponent } from "../components/item_processor";
|
import { enumItemProcessorTypes, ItemProcessorComponent } from "../components/item_processor";
|
||||||
import { Entity } from "../entity";
|
import { Entity } from "../entity";
|
||||||
import { MetaBuilding } from "../meta_building";
|
import { defaultBuildingVariant, MetaBuilding } from "../meta_building";
|
||||||
import { GameRoot } from "../root";
|
import { GameRoot } from "../root";
|
||||||
import { enumHubGoalRewards } from "../tutorial_goals";
|
import { enumHubGoalRewards } from "../tutorial_goals";
|
||||||
|
|
||||||
|
/** @enum {string} */
|
||||||
|
export const enumStackerVariants = { mirrored: "mirrored" };
|
||||||
|
|
||||||
export class MetaStackerBuilding extends MetaBuilding {
|
export class MetaStackerBuilding extends MetaBuilding {
|
||||||
constructor() {
|
constructor() {
|
||||||
super("stacker");
|
super("stacker");
|
||||||
@ -32,6 +35,14 @@ export class MetaStackerBuilding extends MetaBuilding {
|
|||||||
return [[T.ingame.buildingPlacement.infoTexts.speed, formatItemsPerSecond(speed)]];
|
return [[T.ingame.buildingPlacement.infoTexts.speed, formatItemsPerSecond(speed)]];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {GameRoot} root
|
||||||
|
*/
|
||||||
|
getAvailableVariants(root) {
|
||||||
|
let variants = [defaultBuildingVariant, enumStackerVariants.mirrored];
|
||||||
|
return variants;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {GameRoot} root
|
* @param {GameRoot} root
|
||||||
*/
|
*/
|
||||||
@ -56,6 +67,7 @@ export class MetaStackerBuilding extends MetaBuilding {
|
|||||||
slots: [{ pos: new Vector(0, 0), direction: enumDirection.top }],
|
slots: [{ pos: new Vector(0, 0), direction: enumDirection.top }],
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
entity.addComponent(
|
entity.addComponent(
|
||||||
new ItemAcceptorComponent({
|
new ItemAcceptorComponent({
|
||||||
slots: [
|
slots: [
|
||||||
@ -73,4 +85,27 @@ export class MetaStackerBuilding extends MetaBuilding {
|
|||||||
})
|
})
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param {Entity} entity
|
||||||
|
* @param {number} rotationVariant
|
||||||
|
* @param {string} variant
|
||||||
|
*/
|
||||||
|
updateVariants(entity, rotationVariant, variant) {
|
||||||
|
let inv = variant === defaultBuildingVariant ? 0 : 1;
|
||||||
|
entity.components.ItemAcceptor.setSlots([
|
||||||
|
{
|
||||||
|
pos: new Vector(inv, 0),
|
||||||
|
directions: [enumDirection.bottom],
|
||||||
|
filter: "shape",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
pos: new Vector(1 - inv, 0),
|
||||||
|
directions: [enumDirection.bottom],
|
||||||
|
filter: "shape",
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
entity.components.ItemEjector.setSlots([{ pos: new Vector(inv, 0), direction: enumDirection.top }])
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -18,7 +18,7 @@ import { MetaMixerBuilding } from "./buildings/mixer";
|
|||||||
import { enumPainterVariants, MetaPainterBuilding } from "./buildings/painter";
|
import { enumPainterVariants, MetaPainterBuilding } from "./buildings/painter";
|
||||||
import { MetaReaderBuilding } from "./buildings/reader";
|
import { MetaReaderBuilding } from "./buildings/reader";
|
||||||
import { enumRotaterVariants, MetaRotaterBuilding } from "./buildings/rotater";
|
import { enumRotaterVariants, MetaRotaterBuilding } from "./buildings/rotater";
|
||||||
import { MetaStackerBuilding } from "./buildings/stacker";
|
import { enumStackerVariants, MetaStackerBuilding } from "./buildings/stacker";
|
||||||
import { MetaStorageBuilding } from "./buildings/storage";
|
import { MetaStorageBuilding } from "./buildings/storage";
|
||||||
import { enumTransistorVariants, MetaTransistorBuilding } from "./buildings/transistor";
|
import { enumTransistorVariants, MetaTransistorBuilding } from "./buildings/transistor";
|
||||||
import { MetaTrashBuilding } from "./buildings/trash";
|
import { MetaTrashBuilding } from "./buildings/trash";
|
||||||
@ -87,6 +87,7 @@ export function initMetaBuildingRegistry() {
|
|||||||
|
|
||||||
// Stacker
|
// Stacker
|
||||||
registerBuildingVariant(14, MetaStackerBuilding);
|
registerBuildingVariant(14, MetaStackerBuilding);
|
||||||
|
registerBuildingVariant(62, MetaStackerBuilding, enumStackerVariants.mirrored);
|
||||||
|
|
||||||
// Mixer
|
// Mixer
|
||||||
registerBuildingVariant(15, MetaMixerBuilding);
|
registerBuildingVariant(15, MetaMixerBuilding);
|
||||||
|
|||||||
@ -565,6 +565,10 @@ buildings:
|
|||||||
name: &stacker Stacker
|
name: &stacker Stacker
|
||||||
description: Combines its inputs, on the same layer if possible, otherwise the right input is stacked on top of the left input.
|
description: Combines its inputs, on the same layer if possible, otherwise the right input is stacked on top of the left input.
|
||||||
|
|
||||||
|
mirrored:
|
||||||
|
name: *stacker
|
||||||
|
description: test
|
||||||
|
|
||||||
mixer:
|
mixer:
|
||||||
default:
|
default:
|
||||||
name: &mixer Color Mixer
|
name: &mixer Color Mixer
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user