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:
parent
a2ee16589f
commit
2694d20ff7
@ -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
|
||||||
|
|||||||
BIN
res/ui/building_tutorials/splitter-swapper.png
Normal file
BIN
res/ui/building_tutorials/splitter-swapper.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 74 KiB |
BIN
res_raw/sprites/blueprints/splitter-swapper.png
Normal file
BIN
res_raw/sprites/blueprints/splitter-swapper.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 22 KiB |
BIN
res_raw/sprites/buildings/splitter-swapper.png
Normal file
BIN
res_raw/sprites/buildings/splitter-swapper.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 10 KiB |
@ -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 {
|
||||||
|
|||||||
@ -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:
|
||||||
|
|||||||
@ -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",
|
||||||
|
|||||||
@ -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;
|
||||||
|
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user