diff --git a/stones.lua b/stones.lua index cd18687..bb81ca5 100644 --- a/stones.lua +++ b/stones.lua @@ -47,7 +47,21 @@ local function reg(name, basename, basedef) fixed = {-7/16, -8/16, -7/16, 7/16, 0/16, 7/16} } - minetest.register_node(":" .. piecename, { + local go_node_base = { + tiles = {basedef.tiles[1]}, + sounds = basedef.sounds, + + paramtype = "light", + + groups = { + snappy = 1, + falling_node = 1, + }, + + go_team = name, + } + + minetest.register_node(":" .. piecename, nodecore.underride({ description = nodedesc_base .. "Go Stone", drawtype = "mesh", mesh = "go_stone.obj", @@ -55,38 +69,38 @@ local function reg(name, basename, basedef) selection_box = stone_selection_box, collision_box = stone_selection_box, - tiles = {basedef.tiles[1]}, - sounds = basedef.sounds, mapcolor = basedef.mapcolor, - paramtype = "light", - - sunlight_propagates = true, - groups = { - snappy = 1, - falling_node = 1, falling_repose = 1, optic_opaque = 1, go_stone = 1 }, - go_team = name, - on_construct = lc_liberties.handle_placement, on_dig = lc_liberties.handle_dig, on_destruct = nodecore.smokeclear, - }) + }, go_node_base)) local territory_selection_box = { type = "fixed", fixed = {-5/16, -8/16, -5/16, 5/16, -2/16, 5/16} } + -- base properties for token nodes only, which are more ephemeral than stones + go_node_base = nodecore.underride({ + mapcolor = {a = 0}, + sunlight_propagates = true, + + groups = { + stack_as_node = 1, + }, + }, go_node_base) + local territory_name = modname .. ":territory_" .. string_lower(name) - minetest.register_node(":" .. territory_name, { + minetest.register_node(":" .. territory_name, nodecore.underride({ description = "Stop Stone", drawtype = "nodebox", @@ -103,34 +117,21 @@ local function reg(name, basename, basedef) node_placement_prediction = "", - tiles = {basedef.tiles[1]}, - sounds = basedef.sounds, - mapcolor = {a = 0}, - - paramtype = "light", - - sunlight_propagates = true, - groups = { - snappy = 1, - falling_node = 1, go_territory_marker = 1, - stack_as_node = 1, }, - go_team = name, - on_place = lc_liberties.handle_territory_fill, on_dig = lc_liberties.handle_dig, - }) + }, go_node_base)) local ko_selection_box = { type = "fixed", fixed = {-8/16, -8/16, -8/16, 8/16, -4/16, 8/16} } - minetest.register_node(":" .. modname .. ":ko_" .. string_lower(name), { + minetest.register_node(":" .. modname .. ":ko_" .. string_lower(name), nodecore.underride({ description = nodedesc_base .. "Ko Stone", drawtype = "nodebox", @@ -147,16 +148,8 @@ local function reg(name, basename, basedef) selection_box = ko_selection_box, collision_box = ko_selection_box, - tiles = {basedef.tiles[1]}, - sounds = basedef.sounds, - mapcolor = {a = 0}, - - paramtype = "light", - sunlight_propagates = true, - groups = { - snappy = 1, - stack_as_node = 1, + falling_node = 0, ko_stone = 1, cheat = 1, }, @@ -165,10 +158,8 @@ local function reg(name, basename, basedef) destroy_on_dig = true, silktouch = false, - go_team = name, - on_rightclick = lc_liberties.handle_click_ko, - }) + }, go_node_base)) reg_stone_craft(name, "crossy") reg_stone_craft(name, "starcrossy")