185 lines
4.5 KiB
Lua

-- Register variant cycles for the variant changer.
-- RULES:
-- * Only nodes that are similar should be grouped together
-- * All nodes in a cycle MUST be functionally equivalent,
-- e.g. a cycle with the different mirror types is not OK
-- * Colors don't count as variants. That's what the color
-- changer tool is for
lzr_tools.register_variant_cycle({
"lzr_core:sandstone",
"lzr_core:sandstone_block",
"lzr_core:sandstone_brick",
"lzr_core:island_stone",
"lzr_core:cave_stone",
"lzr_core:stone",
"lzr_core:stone_block",
"lzr_core:stone_block_mossy",
"lzr_core:stone_brick_circular",
"lzr_core:stone_brick_circular_mossy",
"lzr_core:stone_brick",
"lzr_core:stone_brick_mossy",
"lzr_decor:ocean_stone",
"lzr_decor:ocean_stone_block",
"lzr_decor:ocean_carved",
"lzr_decor:ocean_cobble",
"lzr_decor:ocean_bricks",
"lzr_decor:ocean_circular",
})
lzr_tools.register_variant_cycle({
"lzr_core:stone_cracked",
"lzr_core:cave_stone_cracked",
"lzr_core:island_stone_cracked",
"lzr_core:sandstone_cracked",
"lzr_decor:ocean_stone_cracked",
})
lzr_tools.register_variant_cycle({
"lzr_core:dirt",
"lzr_core:dirt_with_grass",
"lzr_core:dirt_with_jungle_litter",
})
lzr_tools.register_variant_cycle({
"lzr_core:tree",
"lzr_core:palm_tree",
"lzr_core:coconut_tree",
})
lzr_tools.register_variant_cycle({
"lzr_core:wood",
"lzr_core:wood_mossy",
"lzr_core:wood_loose",
"lzr_core:palm_wood",
"lzr_core:coconut_wood",
})
lzr_tools.register_variant_cycle({
"lzr_decor:blanket_table",
"lzr_decor:working_table",
})
lzr_tools.register_variant_cycle({
"lzr_decor:cauldron",
"lzr_decor:cauldron_water",
})
lzr_tools.register_variant_cycle({
"lzr_decor:forge",
"lzr_decor:forge_lit",
})
lzr_tools.register_variant_cycle({
"lzr_decor:cabinet",
"lzr_decor:cabinet_half",
})
lzr_tools.register_variant_cycle({
"lzr_decor:potted_dandelion_white",
"lzr_decor:potted_dandelion_yellow",
"lzr_decor:potted_tulip",
"lzr_decor:potted_rose",
"lzr_decor:potted_geranium",
"lzr_decor:potted_viola",
})
lzr_tools.register_variant_cycle({
"lzr_decor:empty_shelf",
"lzr_decor:bookshelf",
"lzr_decor:vessels_shelf",
"lzr_decor:multishelf",
})
lzr_tools.register_variant_cycle({
"lzr_decor:thatch",
"lzr_decor:thatch_wet",
})
lzr_tools.register_variant_cycle({
"lzr_laser:crate",
"lzr_laser:crate_mossy",
})
lzr_tools.register_variant_cycle({
"lzr_plants:island_grass",
"lzr_plants:crab_grass",
})
-- Note: Does not support laser variant
lzr_tools.register_variant_cycle({
"lzr_core:bright_palm_leaves_fixed",
"lzr_core:dark_palm_leaves_fixed",
})
-- Register stair/slab cycles
local stair_slab_cycles = {
{
"island_stone",
"sandstone",
"cave_stone",
"stone",
"stone_block",
"stone_block_mossy",
"ocean_stone",
"ocean_cobble",
},
{
"thatch",
"thatch_wet",
},
{
"wood",
"wood_mossy",
"palm_wood",
"coconut_wood",
},
{
"dirt",
"dirt_with_grass",
"dirt_with_jungle_litter",
},
}
for c=1, #stair_slab_cycles do
local template = stair_slab_cycles[c]
local stair_cycle = {}
local inner_stair_cycle = {}
local outer_stair_cycle = {}
local slab_cycle = {}
local top_slab_cycle = {}
for t=1, #template do
table.insert(stair_cycle, "lzr_stairs:stair_"..template[t])
table.insert(inner_stair_cycle, "lzr_stairs:stair_inner_"..template[t])
table.insert(outer_stair_cycle, "lzr_stairs:stair_outer_"..template[t])
-- Note: Laser variants of slab are not added
table.insert(slab_cycle, "lzr_stairs:slab_"..template[t].."_fixed")
table.insert(top_slab_cycle, "lzr_stairs:slab_top_"..template[t].."_fixed")
end
lzr_tools.register_variant_cycle(stair_cycle)
lzr_tools.register_variant_cycle(inner_stair_cycle)
lzr_tools.register_variant_cycle(outer_stair_cycle)
lzr_tools.register_variant_cycle(slab_cycle)
lzr_tools.register_variant_cycle(top_slab_cycle)
end
-- Double slabs
lzr_tools.register_variant_cycle({
"lzr_stairs:double_slab_stone_block",
"lzr_stairs:double_slab_stone_block_mossy",
})
lzr_tools.register_variant_cycle({
"lzr_stairs:double_slab_reverse_stone_block",
"lzr_stairs:double_slab_reverse_stone_block_mossy",
})
-- Panes
lzr_tools.register_variant_cycle({
"lzr_decor:bar_flat_fixed",
"lzr_decor:grate_flat_fixed",
"lzr_decor:rusty_bar_flat_fixed",
"lzr_decor:rusty_grate_flat_fixed",
})
-- Light boxes
lzr_tools.register_variant_cycle({
"lzr_decor:wooden2_lightbox",
"lzr_decor:ship_lightbox",
"lzr_decor:iron_lightbox",
"lzr_decor:ocean_lantern",
})
lzr_tools.register_variant_cycle({
"lzr_decor:wooden2_lightbox_off",
"lzr_decor:ship_lightbox_off",
"lzr_decor:iron_lightbox_off",
"lzr_decor:ocean_lantern_off",
})