-- LUALOCALS < --------------------------------------------------------- local include, nodecore, pairs, string = include, nodecore, pairs, string local string_lower = string.lower -- LUALOCALS > --------------------------------------------------------- include("rules") local modname = minetest.get_current_modname() local function reg_stone_craft(name, pattern) local piecename = modname .. ":stone_" .. string_lower(name) nodecore.register_craft({ label = "Chop scored cement into go stones", action = "pummel", toolgroups = {choppy = 3}, nodes = { { match = "nc_concrete:" .. name .. "_" .. pattern .. "_ply", replace = "air" } }, items = {{name = piecename, count = 3, scatter = 4}}, }) end local function reg(name, basename, basedef) local piecename = modname .. ":stone_" .. string_lower(name) if minetest.registered_nodes[piecename] then return end local desc = basedef.description or name local nodeDesc local nameStone = string.match(desc, "(.*)stone$") if nameStone then nodeDesc = nameStone elseif desc == "Stone" then nodeDesc = "Go" else nodeDesc = desc end nodeDesc = nodeDesc .. " Stone" local stone_selection_box = { type = "fixed", fixed = {-7/16, -8/16, -7/16, 7/16, 0/16, 7/16} } minetest.register_node(":" .. piecename, { description = nodeDesc, drawtype = "nodebox", node_box = { type = "fixed", fixed = { {-2/16, -8/16, -2/16, 2/16, -0/16, 2/16}, {-4/16, -7/16, -5/16, 4/16, -1/16, 5/16}, {-5/16, -7/16, -4/16, 5/16, -1/16, 4/16}, {-5/16, -6/16, -6/16, 5/16, -2/16, 6/16}, {-6/16, -6/16, -5/16, 6/16, -2/16, 5/16}, {-3/16, -5/16, -7/16, 3/16, -3/16, 7/16}, {-7/16, -5/16, -3/16, 7/16, -3/16, 3/16}, -- wolfie model high-detail-ified: --{-3/16, -8/16, -2/16, 3/16, -0/16, 2/16}, --{-2/16, -8/16, -3/16, 2/16, -0/16, 3/16}, --{-4/16, -7/16, -5/16, 4/16, -1/16, 5/16}, --{-5/16, -7/16, -4/16, 5/16, -1/16, 4/16}, --{-5/16, -5/16, -6/16, 5/16, -3/16, 6/16}, --{-6/16, -5/16, -5/16, 6/16, -3/16, 5/16}, --{-4/16, -6/16, -6/16, 4/16, -2/16, 6/16}, --{-6/16, -6/16, -4/16, 6/16, -2/16, 4/16}, --{-5/16, -6/16, -5/16, 5/16, -2/16, 5/16}, --{-3/16, -5/16, -7/16, 3/16, -3/16, 7/16}, --{-7/16, -5/16, -3/16, 7/16, -3/16, 3/16}, -- lizzie's pre-wolfie model: --{-2/16, -8/16, -2/16, 2/16, -0/16, 2/16}, --{-4/16, -7/16, -5/16, 4/16, -1/16, 5/16}, --{-5/16, -7/16, -4/16, 5/16, -1/16, 4/16}, --{-5/16, -6/16, -6/16, 5/16, -2/16, 6/16}, --{-6/16, -6/16, -5/16, 6/16, -2/16, 5/16}, --{-5/16, -5/16, -7/16, 5/16, -3/16, 7/16}, --{-7/16, -5/16, -5/16, 7/16, -3/16, 5/16}, --{-6/16, -5/16, -6/16, 6/16, -3/16, 6/16}, } }, selection_box = stone_selection_box, collision_box = stone_selection_box, tiles = { basedef.tiles[1] }, paramtype = "light", sunlight_propagates = true, groups = { snappy = 1, falling_node = 1, falling_repose = 1, optic_opaque = 1, go_stone = 1 }, go_team = name, sounds = basedef.sounds, on_construct = lc_liberties.handle_placement, on_dig = lc_liberties.handle_dig, }) local territory_selection_box = { type = "fixed", fixed = {-5/16, -8/16, -5/16, 5/16, -2/16, 5/16} } local territory_name = modname .. ":territory_" .. string_lower(name) minetest.register_node(":" .. territory_name, { description = "Territory Marker", drawtype = "nodebox", node_box = { type = "fixed", fixed = { {-2/16, -8/16, -2/16, 2/16, -5/16, 2/16}, {-3/16, -7/16, -3/16, 3/16, -6/16, 3/16}, } }, selection_box = territory_selection_box, collision_box = territory_selection_box, node_placement_prediction = "", tiles = { basedef.tiles[1] }, paramtype = "light", sunlight_propagates = true, groups = { snappy = 1, falling_node = 1, falling_repose = 1, go_territory_marker = 1, stack_as_node = 1, }, go_team = name, sounds = basedef.sounds, on_place = lc_liberties.handle_territory_fill, on_dig = lc_liberties.handle_dig, }) reg_stone_craft(name, "crossy") reg_stone_craft(name, "starcrossy") nodecore.register_craft({ label = "Smash go stones into territory markers", action = "pummel", toolgroups = {thumpy = 3}, nodes = { { match = piecename, replace = "air" } }, items = {{name = territory_name, count = 9, scatter = 4}}, }) end local function buildall() for _, v in ipairs(nodecore.registered_concrete_etchables) do local basedef = v.name and v.basename and minetest.registered_nodes[v.basename] if basedef then reg(v.name, v.basename, basedef) end end end do local old_reg_etch = nodecore.register_concrete_etchable local function helper(...) buildall() return ... end nodecore.register_concrete_etchable = function(...) return helper(old_reg_etch(...)) end end buildall()