1
0
mirror of https://github.com/tobspr/shapez.io.git synced 2026-02-12 10:59:23 +00:00

Added swapper building. Place in hub upgrades and graphics not final.

This commit is contained in:
hexagonhexagon 2020-05-27 01:06:40 -04:00
parent a2ee16589f
commit 2694d20ff7
10 changed files with 32 additions and 5 deletions

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:7697c34997a719bed9ddf9c16c19c672a0fdf9641edf0a9761aea9c2c7e17c6b oid sha256:44684c9d71401afbd83a8ce4ce052d6d22e96ec4e3b58cd40f663e2c2c2f6f82
size 632609 size 601684

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -6,7 +6,7 @@ $buildings: belt, cutter, miner, mixer, painter, rotater, splitter, stacker, tra
} }
} }
$buildingsAndVariants: belt, splitter, splitter-compact, splitter-compact-inverse, underground_belt, $buildingsAndVariants: belt, splitter, splitter-swapper, splitter-compact, splitter-compact-inverse, underground_belt,
underground_belt-tier2, miner, miner-chainable, cutter, cutter-quad, rotater, rotater-ccw, stacker, mixer, underground_belt-tier2, miner, miner-chainable, cutter, cutter-quad, rotater, rotater-ccw, stacker, mixer,
painter, painter-double, painter-quad, trash, trash-storage; painter, painter-double, painter-quad, trash, trash-storage;
@each $building in $buildingsAndVariants { @each $building in $buildingsAndVariants {

View File

@ -11,7 +11,7 @@ import { T } from "../../translations";
import { formatItemsPerSecond } from "../../core/utils"; import { formatItemsPerSecond } from "../../core/utils";
/** @enum {string} */ /** @enum {string} */
export const enumSplitterVariants = { compact: "compact", compactInverse: "compact-inverse" }; export const enumSplitterVariants = { swapper: "swapper", compact: "compact", compactInverse: "compact-inverse" };
export class MetaSplitterBuilding extends MetaBuilding { export class MetaSplitterBuilding extends MetaBuilding {
constructor() { constructor() {
@ -21,6 +21,7 @@ export class MetaSplitterBuilding extends MetaBuilding {
getDimensions(variant) { getDimensions(variant) {
switch (variant) { switch (variant) {
case defaultBuildingVariant: case defaultBuildingVariant:
case enumSplitterVariants.swapper:
return new Vector(2, 1); return new Vector(2, 1);
case enumSplitterVariants.compact: case enumSplitterVariants.compact:
case enumSplitterVariants.compactInverse: case enumSplitterVariants.compactInverse:
@ -51,6 +52,7 @@ export class MetaSplitterBuilding extends MetaBuilding {
if (root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_splitter_compact)) { if (root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_splitter_compact)) {
return [ return [
defaultBuildingVariant, defaultBuildingVariant,
enumSplitterVariants.swapper,
enumSplitterVariants.compact, enumSplitterVariants.compact,
enumSplitterVariants.compactInverse, enumSplitterVariants.compactInverse,
]; ];
@ -110,7 +112,8 @@ export class MetaSplitterBuilding extends MetaBuilding {
*/ */
updateVariants(entity, rotationVariant, variant) { updateVariants(entity, rotationVariant, variant) {
switch (variant) { switch (variant) {
case defaultBuildingVariant: { case defaultBuildingVariant:
case enumSplitterVariants.swapper: {
entity.components.ItemAcceptor.setSlots([ entity.components.ItemAcceptor.setSlots([
{ {
pos: new Vector(0, 0), pos: new Vector(0, 0),
@ -132,6 +135,10 @@ export class MetaSplitterBuilding extends MetaBuilding {
{ pos: new Vector(1, 0), direction: enumDirection.top }, { pos: new Vector(1, 0), direction: enumDirection.top },
]; ];
if (variant === enumSplitterVariants.swapper) {
entity.components.ItemProcessor.type = enumItemProcessorTypes.swapper;
}
break; break;
} }
case enumSplitterVariants.compact: case enumSplitterVariants.compact:

View File

@ -7,6 +7,7 @@ import { gItemRegistry } from "../../core/global_registries";
/** @enum {string} */ /** @enum {string} */
export const enumItemProcessorTypes = { export const enumItemProcessorTypes = {
splitter: "splitter", splitter: "splitter",
swapper: "swapper",
cutter: "cutter", cutter: "cutter",
cutterQuad: "cutterQuad", cutterQuad: "cutterQuad",
rotater: "rotater", rotater: "rotater",

View File

@ -391,6 +391,7 @@ export class HubGoals extends BasicSerializableObject {
case enumItemProcessorTypes.trash: case enumItemProcessorTypes.trash:
case enumItemProcessorTypes.hub: case enumItemProcessorTypes.hub:
return 1e30; return 1e30;
case enumItemProcessorTypes.swapper:
case enumItemProcessorTypes.splitter: case enumItemProcessorTypes.splitter:
return globalConfig.beltSpeedItemsPerSecond * this.upgradeImprovements.belt * 2; return globalConfig.beltSpeedItemsPerSecond * this.upgradeImprovements.belt * 2;

View File

@ -121,6 +121,20 @@ export class ItemProcessorSystem extends GameSystemWithFilter {
break; break;
} }
// SWAPPER
case enumItemProcessorTypes.swapper: {
trackProduction = false;
for (let i = 0; i < items.length; ++i) {
let oppositeSlot = 1 - items[i].sourceSlot
outItems.push({
item: items[i].item,
requiredSlot: oppositeSlot
});
}
break;
}
// CUTTER // CUTTER
case enumItemProcessorTypes.cutter: { case enumItemProcessorTypes.cutter: {
const inputItem = /** @type {ShapeItem} */ (items[0].item); const inputItem = /** @type {ShapeItem} */ (items[0].item);

View File

@ -393,6 +393,10 @@ buildings:
name: &splitter Balancer name: &splitter Balancer
description: Multifunctional - Evenly distributes all inputs onto all outputs. description: Multifunctional - Evenly distributes all inputs onto all outputs.
swapper:
name: Swapper
description: Swaps two conveyor belts.
compact: compact:
name: Merger (compact) name: Merger (compact)
description: Merges two conveyor belts into one. description: Merges two conveyor belts into one.