1
0
mirror of https://github.com/tobspr/shapez.io.git synced 2025-06-13 13:04:03 +00:00

Add Bleacher building

This commit is contained in:
isaisstillalive 2020-06-29 17:27:58 +09:00
parent c895540ad2
commit 9b8679c41a
7 changed files with 58 additions and 2 deletions

View File

@ -64,6 +64,7 @@ export const globalConfig = {
painter: 1 / 6, painter: 1 / 6,
painterDouble: 1 / 8, painterDouble: 1 / 8,
painterQuad: 1 / 8, painterQuad: 1 / 8,
bleacher: 1 / 8,
mixer: 1 / 5, mixer: 1 / 5,
stacker: 1 / 6, stacker: 1 / 6,
advancedProcessor: 1 / 15, advancedProcessor: 1 / 15,

View File

@ -11,7 +11,12 @@ import { enumHubGoalRewards } from "../tutorial_goals";
import { enumItemType } from "../base_item"; import { enumItemType } from "../base_item";
/** @enum {string} */ /** @enum {string} */
export const enumPainterVariants = { mirrored: "mirrored", double: "double", quad: "quad" }; export const enumPainterVariants = {
mirrored: "mirrored",
double: "double",
quad: "quad",
bleacher: "bleacher",
};
export class MetaPainterBuilding extends MetaBuilding { export class MetaPainterBuilding extends MetaBuilding {
constructor() { constructor() {
@ -27,6 +32,8 @@ export class MetaPainterBuilding extends MetaBuilding {
return new Vector(2, 2); return new Vector(2, 2);
case enumPainterVariants.quad: case enumPainterVariants.quad:
return new Vector(4, 1); return new Vector(4, 1);
case enumPainterVariants.bleacher:
return new Vector(1, 1);
default: default:
assertAlways(false, "Unknown painter variant: " + variant); assertAlways(false, "Unknown painter variant: " + variant);
} }
@ -56,6 +63,10 @@ export class MetaPainterBuilding extends MetaBuilding {
const speed = root.hubGoals.getProcessorBaseSpeed(enumItemProcessorTypes.painterQuad); const speed = root.hubGoals.getProcessorBaseSpeed(enumItemProcessorTypes.painterQuad);
return [[T.ingame.buildingPlacement.infoTexts.speed, formatItemsPerSecond(speed)]]; return [[T.ingame.buildingPlacement.infoTexts.speed, formatItemsPerSecond(speed)]];
} }
case enumPainterVariants.bleacher: {
const speed = root.hubGoals.getProcessorBaseSpeed(enumItemProcessorTypes.bleacher);
return [[T.ingame.buildingPlacement.infoTexts.speed, formatItemsPerSecond(speed)]];
}
} }
} }
@ -69,6 +80,7 @@ export class MetaPainterBuilding extends MetaBuilding {
} }
if (root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_painter_quad)) { if (root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_painter_quad)) {
variants.push(enumPainterVariants.quad); variants.push(enumPainterVariants.quad);
variants.push(enumPainterVariants.bleacher);
} }
return variants; return variants;
} }
@ -206,6 +218,22 @@ export class MetaPainterBuilding extends MetaBuilding {
]); ]);
break; break;
} }
case enumPainterVariants.bleacher: {
entity.components.ItemAcceptor.setSlots([
{
pos: new Vector(0, 0),
directions: [enumDirection.left],
filter: enumItemType.shape,
},
]);
entity.components.ItemProcessor.type = enumItemProcessorTypes.bleacher;
entity.components.ItemProcessor.inputsPerCharge = 1;
entity.components.ItemEjector.setSlots([
{ pos: new Vector(0, 0), direction: enumDirection.right },
]);
break;
}
default: default:
assertAlways(false, "Unknown painter variant: " + variant); assertAlways(false, "Unknown painter variant: " + variant);
} }

View File

@ -16,6 +16,7 @@ export const enumItemProcessorTypes = {
painter: "painter", painter: "painter",
painterDouble: "painterDouble", painterDouble: "painterDouble",
painterQuad: "painterQuad", painterQuad: "painterQuad",
bleacher: "bleacher",
advancedProcessor: "advancedProcessor", advancedProcessor: "advancedProcessor",
hub: "hub", hub: "hub",
}; };

View File

@ -408,7 +408,8 @@ export class HubGoals extends BasicSerializableObject {
case enumItemProcessorTypes.mixer: case enumItemProcessorTypes.mixer:
case enumItemProcessorTypes.painter: case enumItemProcessorTypes.painter:
case enumItemProcessorTypes.painterDouble: case enumItemProcessorTypes.painterDouble:
case enumItemProcessorTypes.painterQuad: { case enumItemProcessorTypes.painterQuad:
case enumItemProcessorTypes.bleacher: {
assert( assert(
globalConfig.buildingSpeeds[processorType], globalConfig.buildingSpeeds[processorType],
"Processor type has no speed set in globalConfig.buildingSpeeds: " + processorType "Processor type has no speed set in globalConfig.buildingSpeeds: " + processorType

View File

@ -8,6 +8,7 @@ import { ColorItem } from "../items/color_item";
import { ShapeItem } from "../items/shape_item"; import { ShapeItem } from "../items/shape_item";
import { enumLayer } from "../root"; import { enumLayer } from "../root";
import { NEGATIVE_ENERGY_ITEM_SINGLETON } from "../items/negative_energy_item"; import { NEGATIVE_ENERGY_ITEM_SINGLETON } from "../items/negative_energy_item";
import { enumColors } from "../../game/colors";
export class ItemProcessorSystem extends GameSystemWithFilter { export class ItemProcessorSystem extends GameSystemWithFilter {
constructor(root) { constructor(root) {
@ -320,6 +321,23 @@ export class ItemProcessorSystem extends GameSystemWithFilter {
break; break;
} }
// BLEACHER
case enumItemProcessorTypes.bleacher: {
const shapeItem = /** @type {ShapeItem} */ (items[0].item);
const colorizedDefinition = this.root.shapeDefinitionMgr.shapeActionPaintWith(
shapeItem.definition,
enumColors.uncolored
);
outItems.push({
item: new ShapeItem(colorizedDefinition),
});
break;
}
// HUB // HUB
case enumItemProcessorTypes.hub: { case enumItemProcessorTypes.hub: {

View File

@ -524,6 +524,10 @@ buildings:
name: Painter (Quad) name: Painter (Quad)
description: Allows to color each quadrant of the shape with a different color. description: Allows to color each quadrant of the shape with a different color.
bleacher:
name: Bleacher
description: Bleaches the whole shape..
trash: trash:
default: default:
name: &trash Trash name: &trash Trash

View File

@ -507,6 +507,9 @@ buildings:
mirrored: mirrored:
name: *painter name: *painter
description: *painter_desc description: *painter_desc
bleacher:
name: 脱色機
description: 入力された形の全体を無色にします。
trash: trash:
default: default: