New LL tile: circuit block, which overrides any wiring below it
This commit is contained in:
parent
235cc79e8b
commit
b2ff27f241
@ -753,9 +753,9 @@ class WireOperation extends DrawOperation {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let cell = this.cell(x, y);
|
let cell = this.cell(x, y);
|
||||||
for (let tile of cell) {
|
for (let tile of Array.from(cell).reverse()) {
|
||||||
// TODO probably a better way to do this
|
// TODO probably a better way to do this
|
||||||
if (['floor', 'steel', 'button_pink', 'button_black', 'teleport_blue', 'teleport_red', 'light_switch_on', 'light_switch_off'].indexOf(tile.type.name) < 0)
|
if (['floor', 'steel', 'button_pink', 'button_black', 'teleport_blue', 'teleport_red', 'light_switch_on', 'light_switch_off', 'circuit_block'].indexOf(tile.type.name) < 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
tile.wire_directions = tile.wire_directions ?? 0;
|
tile.wire_directions = tile.wire_directions ?? 0;
|
||||||
@ -768,6 +768,7 @@ class WireOperation extends DrawOperation {
|
|||||||
tile.wire_directions |= DIRECTIONS[wire_direction].bit;
|
tile.wire_directions |= DIRECTIONS[wire_direction].bit;
|
||||||
}
|
}
|
||||||
// TODO this.editor.mark_tile_dirty(tile);
|
// TODO this.editor.mark_tile_dirty(tile);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
prevqx = qx;
|
prevqx = qx;
|
||||||
@ -1250,6 +1251,7 @@ const EDITOR_PALETTE = [{
|
|||||||
'purple_floor',
|
'purple_floor',
|
||||||
'purple_wall',
|
'purple_wall',
|
||||||
'button_gray',
|
'button_gray',
|
||||||
|
'circuit_block/xxx',
|
||||||
],
|
],
|
||||||
}];
|
}];
|
||||||
|
|
||||||
@ -1272,6 +1274,7 @@ const SPECIAL_PALETTE_ENTRIES = {
|
|||||||
'logic_gate/latch-cw': { name: 'logic_gate', direction: 'north', gate_type: 'latch-cw' },
|
'logic_gate/latch-cw': { name: 'logic_gate', direction: 'north', gate_type: 'latch-cw' },
|
||||||
'logic_gate/latch-ccw': { name: 'logic_gate', direction: 'north', gate_type: 'latch-ccw' },
|
'logic_gate/latch-ccw': { name: 'logic_gate', direction: 'north', gate_type: 'latch-ccw' },
|
||||||
'logic_gate/counter': { name: 'logic_gate', direction: 'north', gate_type: 'counter', memory: 0 },
|
'logic_gate/counter': { name: 'logic_gate', direction: 'north', gate_type: 'counter', memory: 0 },
|
||||||
|
'circuit_block/xxx': { name: 'circuit_block', direction: 'south', wire_directions: 0xf },
|
||||||
};
|
};
|
||||||
const _RAILROAD_ROTATED_LEFT = [3, 0, 1, 2, 5, 4];
|
const _RAILROAD_ROTATED_LEFT = [3, 0, 1, 2, 5, 4];
|
||||||
const _RAILROAD_ROTATED_RIGHT = [1, 2, 3, 0, 5, 4];
|
const _RAILROAD_ROTATED_RIGHT = [1, 2, 3, 0, 5, 4];
|
||||||
@ -1366,6 +1369,11 @@ const SPECIAL_PALETTE_BEHAVIOR = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
circuit_block: {
|
||||||
|
pick_palette_entry(tile) {
|
||||||
|
return 'circuit_block/xxx';
|
||||||
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
// Fill in some special behavior that boils down to rotating tiles which happen to be encoded as
|
// Fill in some special behavior that boils down to rotating tiles which happen to be encoded as
|
||||||
// different tile types
|
// different tile types
|
||||||
|
|||||||
@ -851,6 +851,11 @@ export const LL_TILESET_LAYOUT = Object.assign({}, CC2_TILESET_LAYOUT, {
|
|||||||
// Custom tiles
|
// Custom tiles
|
||||||
popwall2: [9, 32],
|
popwall2: [9, 32],
|
||||||
bestowal_bow: [10, 32],
|
bestowal_bow: [10, 32],
|
||||||
|
circuit_block: {
|
||||||
|
base: [13, 32],
|
||||||
|
wired: [11, 32],
|
||||||
|
wired_cross: [12, 32],
|
||||||
|
},
|
||||||
|
|
||||||
// Blob and walker in all four directions
|
// Blob and walker in all four directions
|
||||||
blob: {
|
blob: {
|
||||||
|
|||||||
@ -1537,6 +1537,15 @@ const TILE_TYPES = {
|
|||||||
level.transmute_tile(me, 'light_switch_off');
|
level.transmute_tile(me, 'light_switch_off');
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
// LL tile: circuit block, overrides the wiring on the floor below (if any)
|
||||||
|
circuit_block: {
|
||||||
|
draw_layer: DRAW_LAYERS.actor,
|
||||||
|
collision_mask: COLLISION.block_cc2,
|
||||||
|
blocks_collision: COLLISION.all,
|
||||||
|
is_actor: true,
|
||||||
|
is_block: true,
|
||||||
|
movement_speed: 4,
|
||||||
|
},
|
||||||
|
|
||||||
// Time alteration
|
// Time alteration
|
||||||
stopwatch_bonus: {
|
stopwatch_bonus: {
|
||||||
@ -1664,6 +1673,7 @@ const TILE_TYPES = {
|
|||||||
dirt_block: true,
|
dirt_block: true,
|
||||||
ice_block: true,
|
ice_block: true,
|
||||||
directional_block: true,
|
directional_block: true,
|
||||||
|
circuit_block: true,
|
||||||
},
|
},
|
||||||
movement_speed: 4,
|
movement_speed: 4,
|
||||||
},
|
},
|
||||||
@ -1979,6 +1989,7 @@ const TILE_TYPES = {
|
|||||||
dirt_block: true,
|
dirt_block: true,
|
||||||
ice_block: true,
|
ice_block: true,
|
||||||
directional_block: true,
|
directional_block: true,
|
||||||
|
circuit_block: true,
|
||||||
},
|
},
|
||||||
infinite_items: {
|
infinite_items: {
|
||||||
key_green: true,
|
key_green: true,
|
||||||
@ -2000,6 +2011,7 @@ const TILE_TYPES = {
|
|||||||
dirt_block: true,
|
dirt_block: true,
|
||||||
ice_block: true,
|
ice_block: true,
|
||||||
directional_block: true,
|
directional_block: true,
|
||||||
|
circuit_block: true,
|
||||||
},
|
},
|
||||||
infinite_items: {
|
infinite_items: {
|
||||||
key_yellow: true,
|
key_yellow: true,
|
||||||
@ -2020,6 +2032,7 @@ const TILE_TYPES = {
|
|||||||
dirt_block: true,
|
dirt_block: true,
|
||||||
ice_block: true,
|
ice_block: true,
|
||||||
directional_block: true,
|
directional_block: true,
|
||||||
|
circuit_block: true,
|
||||||
},
|
},
|
||||||
infinite_items: {
|
infinite_items: {
|
||||||
key_green: true,
|
key_green: true,
|
||||||
@ -2049,6 +2062,7 @@ const TILE_TYPES = {
|
|||||||
dirt_block: true,
|
dirt_block: true,
|
||||||
ice_block: true,
|
ice_block: true,
|
||||||
directional_block: true,
|
directional_block: true,
|
||||||
|
circuit_block: true,
|
||||||
},
|
},
|
||||||
infinite_items: {
|
infinite_items: {
|
||||||
key_yellow: true,
|
key_yellow: true,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user