diff --git a/artwork/buildings/buildings_1x1.psd b/artwork/buildings/buildings_1x1.psd index c4b1abc3..0f58806a 100644 --- a/artwork/buildings/buildings_1x1.psd +++ b/artwork/buildings/buildings_1x1.psd @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a83f85517a44fa590a7a5e72b90736ba52065712e537f9eaa0d53aefd6a42457 -size 765795 +oid sha256:702a80a5ed8461ff5e515101cba268585323ff62e0967c0c39f60288696ae8c5 +size 681673 diff --git a/res/ui/building_tutorials/splitter-compact-inverse-split.png b/res/ui/building_tutorials/splitter-compact-inverse-split.png new file mode 100644 index 00000000..bd3579aa Binary files /dev/null and b/res/ui/building_tutorials/splitter-compact-inverse-split.png differ diff --git a/res/ui/building_tutorials/splitter-compact-split.png b/res/ui/building_tutorials/splitter-compact-split.png new file mode 100644 index 00000000..bd3579aa Binary files /dev/null and b/res/ui/building_tutorials/splitter-compact-split.png differ diff --git a/res_raw/sprites/blueprints/splitter-compact-inverse-split.png b/res_raw/sprites/blueprints/splitter-compact-inverse-split.png new file mode 100644 index 00000000..c5217214 Binary files /dev/null and b/res_raw/sprites/blueprints/splitter-compact-inverse-split.png differ diff --git a/res_raw/sprites/blueprints/splitter-compact-split.png b/res_raw/sprites/blueprints/splitter-compact-split.png new file mode 100644 index 00000000..ff711c60 Binary files /dev/null and b/res_raw/sprites/blueprints/splitter-compact-split.png differ diff --git a/res_raw/sprites/buildings/splitter-compact-inverse-split.png b/res_raw/sprites/buildings/splitter-compact-inverse-split.png new file mode 100644 index 00000000..27ef8926 Binary files /dev/null and b/res_raw/sprites/buildings/splitter-compact-inverse-split.png differ diff --git a/res_raw/sprites/buildings/splitter-compact-split.png b/res_raw/sprites/buildings/splitter-compact-split.png new file mode 100644 index 00000000..204ef17f Binary files /dev/null and b/res_raw/sprites/buildings/splitter-compact-split.png differ diff --git a/src/css/icons.scss b/src/css/icons.scss index 2128fde3..a8e5f0f6 100644 --- a/src/css/icons.scss +++ b/src/css/icons.scss @@ -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-compact, splitter-compact-inverse, splitter-compact-split, splitter-compact-inverse-split, underground_belt, underground_belt-tier2, miner, miner-chainable, cutter, cutter-quad, rotater, rotater-ccw, stacker, mixer, painter, painter-double, painter-quad, trash, trash-storage; @each $building in $buildingsAndVariants { diff --git a/src/js/game/buildings/splitter.js b/src/js/game/buildings/splitter.js index d3c125df..d010e1fe 100644 --- a/src/js/game/buildings/splitter.js +++ b/src/js/game/buildings/splitter.js @@ -11,7 +11,12 @@ import { T } from "../../translations"; import { formatItemsPerSecond } from "../../core/utils"; /** @enum {string} */ -export const enumSplitterVariants = { compact: "compact", compactInverse: "compact-inverse" }; +export const enumSplitterVariants = { + compact: "compact", + compactInverse: "compact-inverse", + compactSplit: "compact-split", + compactInverseSplit: "compact-inverse-split", +}; export class MetaSplitterBuilding extends MetaBuilding { constructor() { @@ -24,6 +29,8 @@ export class MetaSplitterBuilding extends MetaBuilding { return new Vector(2, 1); case enumSplitterVariants.compact: case enumSplitterVariants.compactInverse: + case enumSplitterVariants.compactSplit: + case enumSplitterVariants.compactInverseSplit: return new Vector(1, 1); default: assertAlways(false, "Unknown splitter variant: " + variant); @@ -53,6 +60,8 @@ export class MetaSplitterBuilding extends MetaBuilding { defaultBuildingVariant, enumSplitterVariants.compact, enumSplitterVariants.compactInverse, + enumSplitterVariants.compactSplit, + enumSplitterVariants.compactInverseSplit, ]; } return super.getAvailableVariants(root); @@ -161,6 +170,32 @@ export class MetaSplitterBuilding extends MetaBuilding { break; } + case enumSplitterVariants.compactSplit: + case enumSplitterVariants.compactInverseSplit: { + entity.components.ItemAcceptor.setSlots([ + { pos: new Vector(0, 0), directions: [enumDirection.bottom] }, + ]); + + entity.components.ItemEjector.setSlots([ + { + pos: new Vector(0, 0), + direction: enumDirection.top, + }, + { + pos: new Vector(0, 0), + direction: + variant === enumSplitterVariants.compactInverseSplit + ? enumDirection.left + : enumDirection.right, + }, + ]); + + entity.components.ItemAcceptor.beltUnderlays = [ + { pos: new Vector(0, 0), direction: enumDirection.top }, + ]; + + break; + } default: assertAlways(false, "Unknown painter variant: " + variant); } diff --git a/translations/base-en.yaml b/translations/base-en.yaml index 2ad5ef07..77e78b16 100644 --- a/translations/base-en.yaml +++ b/translations/base-en.yaml @@ -470,6 +470,14 @@ buildings: name: Merger (compact) description: Merges two conveyor belts into one. + compact-split: + name: Splitter (compact) + description: Splits one conveyor belt into two. + + compact-inverse-split: + name: Splitter (compact) + description: Splits one conveyor belt into two. + cutter: default: name: &cutter Cutter