-- Squaresville nodes.lua -- Copyright Duane Robertson (duane@duanerobertson.com), 2017 -- Distributed under the LGPLv2.1 (https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html) local newnode local light_max = default.light_max or 10 local node = squaresville.node local darkening = 0 if squaresville.desolation > 0 then darkening = 100 end newnode = squaresville.clone_node("default:stone") newnode.diggable = false newnode.groups = {} minetest.register_node("squaresville:bedrock", newnode) minetest.register_node('squaresville:road', { description = 'Road', tiles = {'squaresville_tarmac.png'}, sounds = default.node_sound_stone_defaults(), groups = {cracky = 2, level = 1}, is_ground_content = false, }) newnode = squaresville.clone_node('squaresville:road') newnode.tiles = {'squaresville_tarmac.png^[brighten'} minetest.register_node('squaresville:road_white', newnode) minetest.register_node('squaresville:road_broken', { description = 'Road', tiles = {'squaresville_tarmac.png^squaresville_broken_3.png'}, paramtype = 'light', drawtype = 'nodebox', node_box = { type = 'fixed', fixed = { {0.5, 0.3, 0.5, -0.5, -0.5, -0.5} }, is_ground_content = false, }, sounds = default.node_sound_stone_defaults(), groups = {cracky = 2, level = 1}, }) minetest.register_node('squaresville:road_yellow_line', { description = 'Road', tiles = {'squaresville_tarmac_yellow_line.png'}, paramtype2 = 'facedir', sounds = default.node_sound_stone_defaults(), groups = {cracky = 2, level = 1}, is_ground_content = false, }) --minetest.register_node('squaresville:concrete', { -- description = 'Concrete', -- tiles = {'default_stone.png'}, -- groups = {cracky = 3, level=1, stone = 1}, -- drop = 'default:cobble', -- sounds = default.node_sound_stone_defaults(), -- is_ground_content = false, --}) newnode = squaresville.clone_node('default:stone') newnode.description = 'Concrete' newnode.is_ground_content = false newnode.drop = 'default:cobble' minetest.register_node('squaresville:concrete', newnode) newnode = squaresville.clone_node('squaresville:concrete') newnode.tiles = {'default_stone.png^squaresville_broken_3_low.png'} minetest.register_node('squaresville:concrete_broken', newnode) newnode = squaresville.clone_node('squaresville:concrete') newnode.tiles = {'default_stone.png^[colorize:#964B00:40'} minetest.register_node('squaresville:concrete2', newnode) newnode = squaresville.clone_node('squaresville:concrete') newnode.tiles = {'default_stone.png^[colorize:#FF0000:20'} minetest.register_node('squaresville:concrete3', newnode) newnode = squaresville.clone_node('squaresville:concrete') newnode.tiles = {'default_stone.png^[colorize:#4682B4:10'} minetest.register_node('squaresville:concrete4', newnode) newnode = squaresville.clone_node('squaresville:concrete') newnode.tiles = {'default_stone.png^[colorize:#000000:40'} minetest.register_node('squaresville:concrete5', newnode) newnode = squaresville.clone_node('squaresville:concrete_broken') newnode.tiles = {'default_stone.png^[colorize:#964B00:40^squaresville_broken_3_low.png'} minetest.register_node('squaresville:concrete2_broken', newnode) newnode = squaresville.clone_node('squaresville:concrete_broken') newnode.tiles = {'default_stone.png^[colorize:#FF0000:20^squaresville_broken_3_low.png'} minetest.register_node('squaresville:concrete3_broken', newnode) newnode = squaresville.clone_node('squaresville:concrete_broken') newnode.tiles = {'default_stone.png^[colorize:#4682B4:10^squaresville_broken_3_low.png'} minetest.register_node('squaresville:concrete4_broken', newnode) newnode = squaresville.clone_node('squaresville:concrete_broken') newnode.tiles = {'default_stone.png^[colorize:#000000:40^squaresville_broken_3_low.png'} minetest.register_node('squaresville:concrete5_broken', newnode) minetest.register_node('squaresville:light_panel', { description = 'Light Panel', tiles = {'default_sandstone.png'}, light_source = 14, paramtype = 'light', paramtype2 = 'facedir', drawtype = 'nodebox', node_box = { type = 'fixed', fixed = { {-0.5, -0.5, -0.5, 0.5, -0.48, 0.5}, } }, groups = {cracky = 3, level=1, oddly_breakable_by_hand = 1}, drop = 'squaresville:light_panel_broken', on_place = minetest.rotate_and_place, sounds = default.node_sound_stone_defaults(), is_ground_content = false, }) newnode = squaresville.clone_node('squaresville:light_panel') newnode.light_source = 0 minetest.register_node("squaresville:light_panel_broken", newnode) -- ice, thin -- transparent minetest.register_node('squaresville:thin_ice', { description = 'Thin Ice', tiles = {'caverealms_thin_ice.png'}, is_ground_content = true, groups = {cracky=3}, sounds = default.node_sound_glass_defaults(), use_texture_alpha = true, light_source = 1, drawtype = 'glasslike', sunlight_propagates = true, freezemelt = 'default:water_source', paramtype = 'light', }) minetest.register_node('squaresville:plate_glass', { description = 'Plate Glass', drawtype = 'glasslike', paramtype = 'light', sunlight_propagates = true, tiles = {'squaresville_plate_glass.png'}, light_source = 1, use_texture_alpha = true, is_ground_content = false, groups = {cracky = 3, level=2}, sounds = default.node_sound_stone_defaults(), is_ground_content = false, }) newnode = squaresville.clone_node('squaresville:plate_glass') newnode.tiles = {'squaresville_plate_glass_broken.png'} newnode.walkable = false minetest.register_node('squaresville:plate_glass_broken', newnode) minetest.register_alias('squaresville:glass_broken', 'squaresville:plate_glass_broken') minetest.register_node('squaresville:floor_ceiling', { description = 'Floor/Ceiling', tiles = {'squaresville_floor.png^[colorize:#000000:'..darkening, 'squaresville_ceiling.png', 'default_stone.png'}, paramtype2 = 'facedir', groups = {cracky = 3, level=1, flammable = 3}, drop = 'default:cobble', drop = { max_items = 3, items = { { items = {'default:cobble',}, rarity = 1, }, { items = {'default:copper_ingot',}, rarity = 6, }, }, }, sounds = default.node_sound_stone_defaults(), is_ground_content = false, }) newnode = squaresville.clone_node('squaresville:floor_ceiling') newnode.tiles = {'squaresville_floor.png^[colorize:#000000:'..darkening..'^squaresville_broken_3.png', 'squaresville_ceiling.png^squaresville_broken_3.png', 'default_stone.png^squaresville_broken_3.png'} minetest.register_node('squaresville:floor_ceiling_broken', newnode) minetest.register_node('squaresville:roof', { description = 'Roof', tiles = {'squaresville_tarmac.png', 'squaresville_ceiling.png', 'default_stone.png'}, paramtype2 = 'facedir', groups = {cracky = 3, level=1, flammable = 3}, drop = 'default:cobble', sounds = default.node_sound_stone_defaults(), is_ground_content = false, }) minetest.register_node('squaresville:roof_broken', { description = 'Roof', tiles = {'squaresville_tarmac.png^squaresville_broken_3.png', 'squaresville_ceiling.png^squaresville_broken_3.png', 'default_stone.png'}, paramtype = 'light', paramtype2 = 'facedir', drawtype = 'nodebox', drop = 'default:cobble', node_box = { type = 'fixed', fixed = { {0.5, 0.3, 0.5, -0.5, -0.5, -0.5} } }, sounds = default.node_sound_stone_defaults(), groups = {cracky = 3, level=1, flammable = 3}, is_ground_content = false, }) minetest.register_node('squaresville:sidewalk', { description = 'Sidewalk', tiles = {'squaresville_sidewalk.png'}, groups = {cracky = 3, level=1, stone = 1}, drop = 'default:cobble', sounds = default.node_sound_stone_defaults(), is_ground_content = false, }) newnode = squaresville.clone_node('squaresville:sidewalk') newnode.tiles = {'squaresville_sidewalk.png^squaresville_broken_3.png'} minetest.register_node('squaresville:sidewalk_broken', newnode) minetest.register_node('squaresville:gargoyle', { description = 'Concrete', tiles = {'default_stone.png^[colorize:#000000:60'}, paramtype = 'light', paramtype2 = 'facedir', drawtype = 'nodebox', node_box = { type = 'fixed', fixed = { {0.2, 0.23, -0.17, -0.1, -0.5, 0.17}, -- body f {-0.1, -0.07, -0.17, -0.27, -0.5, 0.17}, -- body r {0.17, 0.5, -0.07, 0, 0.23, 0.07}, -- head {0.27, 0.2, 0.1, 0.13, -0.5, 0.23}, -- leg fl {0.27, 0.2, -0.23, 0.13, -0.5, -0.1}, -- leg fr {0.03, -0.1, 0.17, -0.2, -0.5, 0.27}, -- leg rl {0.03, -0.1, -0.27, -0.2, -0.5, -0.17}, -- leg rl {-0.1, 0.23, -0.4, -0.17, 0.13, 0.4}, -- wing u {-0.1, 0.13, -0.3, -0.17, 0.03, 0.3}, -- wing u } }, groups = {cracky = 3, level=1, stone = 1}, drop = 'default:cobble', on_place = minetest.rotate_and_place, sounds = default.node_sound_stone_defaults(), }) minetest.register_node("squaresville:plaster", { description = "Plaster", tiles = {"default_desert_stone.png^[colorize:#8C8175:225"}, sounds = default.node_sound_stone_defaults(), groups = {cracky = 3, level = 0, flammable = 2, oddly_breakable_by_hand = 1}, }) newnode = squaresville.clone_node("squaresville:plaster") newnode.tiles = {"(default_desert_stone.png^[colorize:#8C8175:225)^squaresville_broken_3_low.png"} minetest.register_node("squaresville:plaster_broken", newnode) newnode = squaresville.clone_node("stairs:stair_stone") newnode.description = "Concrete Stair" newnode.groups.flammable = 3 newnode.drop = "stairs:stair_stone" minetest.register_node("squaresville:concrete_stair", newnode) minetest.register_node("squaresville:carpet", { description = "Carpet", tiles = {"wool_blue.png", "default_stone.png", "default_stone.png"}, sounds = default.node_sound_stone_defaults(), groups = {cracky = 2, level = 1}, }) minetest.register_alias("squaresville:carpet_broken", "default:stone") newnode = squaresville.clone_node("default:glass") newnode.description = "Glowing Crystal" --newnode.tiles = {"squaresville_plate_glass.png^colorize:#FFFF00,150",} newnode.tiles = {"squaresville_crystal.png",} newnode.light_source = 10 minetest.register_node("squaresville:crystal_glow", newnode) if minetest.registered_items['underworlds:glowing_fungal_stone'] then minetest.register_alias("squaresville:glowing_fungal_stone", 'underworlds:glowing_fungal_stone') minetest.register_alias("squaresville:glowing_fungus", 'underworlds:glowing_fungus') else -- Glowing fungal stone provides an eerie light. minetest.register_node("squaresville:glowing_fungal_stone", { description = "Glowing Fungal Stone", tiles = {"default_stone.png^vmg_glowing_fungal.png",}, is_ground_content = true, light_source = light_max - 4, groups = {cracky=3, stone=1}, drop = {items={ {items={"default:cobble"},}, {items={"squaresville:glowing_fungus",},},},}, sounds = default.node_sound_stone_defaults(), }) -- Glowing fungus grows underground. minetest.register_craftitem("squaresville:glowing_fungus", { description = "Glowing Fungus", drawtype = "plantlike", paramtype = "light", tiles = {"vmg_glowing_fungus.png"}, inventory_image = "vmg_glowing_fungus.png", groups = {dig_immediate = 3}, }) end minetest.register_node("squaresville:wet_fungus", { description = "Leaves", --drawtype = "allfaces_optional", --waving = 1, tiles = {"wet_fungus_2.png"}, --special_tiles = {"wet_fungus_2.png"}, --paramtype = "light", --is_ground_content = false, groups = {snappy = 3}, drop = '', sounds = default.node_sound_leaves_defaults(), }) -- Polluted dirt newnode = squaresville.clone_node("default:dirt") newnode.description = "Polluted Dirt" newnode.tiles = {"default_dirt.png^[colorize:#100020:100"} newnode.groups.soil = 0 minetest.register_node("squaresville:polluted_dirt", newnode) -- Bare branches minetest.register_node('squaresville:sticks_default', { description = 'Sticks', drawtype = 'allfaces_optional', waving = 1, visual_scale = 1.3, tiles = {'squaresville_dry_twigs.png'}, paramtype = 'light', is_ground_content = false, drop = 'default:stick 2', groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1}, }) -- Black leaves newnode = squaresville.clone_node("default:leaves") newnode.description = "Blackened Leaves" newnode.tiles = {"default_leaves.png^[colorize:#100020:200"} newnode.special_tiles = {"default_leaves_simple.png^[colorize:#100020:200"} newnode.groups = {snappy = 3, flammable = 2} minetest.register_node("squaresville:leaves_black", newnode) newnode = squaresville.clone_node("default:water_source") newnode.description = "Poisonous Water" newnode.groups.poison = 3 --newnode.light_source = 6 newnode.liquid_alternative_flowing = "squaresville:water_poison_flowing" newnode.liquid_alternative_source = "squaresville:water_poison_source" newnode.post_effect_color = {a = 103, r = 108, g = 128, b = 64} --newnode.special_tiles[1].name = "squaresville_water_poison_source_animated.png" newnode.tiles[1].name = "squaresville_water_poison_source_animated.png" minetest.register_node("squaresville:water_poison_source", newnode) newnode = squaresville.clone_node("default:water_flowing") newnode.description = "Poisonous Water" newnode.groups.poison = 3 --newnode.light_source = 6 newnode.liquid_alternative_flowing = "squaresville:water_poison_flowing" newnode.liquid_alternative_source = "squaresville:water_poison_source" newnode.post_effect_color = {a = 103, r = 108, g = 128, b = 64} --newnode.special_tiles[1].name = "squaresville_water_poison_flowing_animated.png" newnode.tiles[1] = "squaresville_water_poison.png" minetest.register_node("squaresville:water_poison_flowing", newnode) minetest.register_node("squaresville:basalt", { description = "Basalt", tiles = {"squaresville_basalt.png"}, is_ground_content = true, groups = {cracky=1, level=2}, sounds = default.node_sound_stone_defaults({ footstep = {name="default_stone_footstep", gain=0.25}, }), }) minetest.register_alias('squaresville:basalt_raw', 'squaresville:basalt') minetest.register_node("squaresville:granite", { description = "Granite", tiles = {"squaresville_granite.png"}, is_ground_content = true, groups = {cracky=1, level=3}, sounds = default.node_sound_stone_defaults({ footstep = {name="default_stone_footstep", gain=0.25}, }), }) minetest.register_alias('squaresville:granite_raw', 'squaresville:granite') newnode = squaresville.clone_node("default:stone") newnode.tiles = {'squaresville_cracked_stone.png'} minetest.register_node('squaresville:cracked_stone', newnode) minetest.register_ore({ ore_type = "scatter", ore = "default:lava_source", wherein = "squaresville:cracked_stone", clust_scarcity = 10 * 10 * 10, clust_num_ores = 1, clust_size = 1, y_min = 1, y_max = 10, }) newnode = squaresville.clone_node("default:dry_shrub") newnode.tiles = {'squaresville_black_shrub.png'} minetest.register_node('squaresville:blackened_shrub', newnode) do local size_name = 1 for size = 1, 4 do local name = 'squaresville:stone_spike_'..size_name minetest.register_node(name, { description = "Stone Spike", tiles = {"squaresville_spike_1.png"}, inventory_image = "squaresville_spike_1.png", wield_image = "squaresville_spike_1.png", is_ground_content = true, groups = {cracky=3}, sounds = default.node_sound_stone_defaults(), --light_source = 3, paramtype = "light", drawtype = "plantlike", walkable = true, buildable_to = true, visual_scale = size, selection_box = { type = "fixed", fixed = {-0.3*size, -0.5, -0.3*size, 0.3*size, -5/16, 0.3*size}, } }) size_name = size_name + 1 end end minetest.register_node('squaresville:fur_tree', { description = "Fur Fronds", tiles = {"squaresville_fur_frond.png"}, inventory_image = "squaresville_fur_frond.png", wield_image = "squaresville_fur_frond.png", is_ground_content = true, groups = {choppy=3}, sounds = default.node_sound_wood_defaults(), paramtype = "light", drawtype = "plantlike", walkable = false, buildable_to = true, --visual_scale = 2, selection_box = { type = "fixed", fixed = {-0.1, -0.5, -0.1, 0.1, 0.5, 0.1}, } }) newnode = squaresville.clone_node("default:dirt_with_grass") newnode.groups.spreading_dirt_type = nil newnode.tiles = {"squaresville_odd_grass_1.png", "default_dirt.png", {name = "default_dirt.png^squaresville_odd_grass_1.png", tileable_vertical = false}} minetest.register_node('squaresville:dirt_with_odd_grass', newnode) minetest.register_node("squaresville:strange_plant_1", { description = "Strange Plant", drawtype = "plantlike", waving = 1, tiles = {"squaresville_strange_plant_1.png"}, paramtype = "light", sunlight_propagates = true, walkable = false, buildable_to = true, groups = { snappy = 3, flower = 1, flora = 1, attached_node = 1, }, sounds = default.node_sound_leaves_defaults(), selection_box = { type = "fixed", fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, }, }) minetest.register_node("squaresville:strange_plant_2", { description = "Strange Plant", drawtype = "plantlike", waving = 1, tiles = {"squaresville_strange_plant_2.png"}, paramtype = "light", sunlight_propagates = true, walkable = false, buildable_to = true, groups = { snappy = 3, flora = 1, attached_node = 1, }, sounds = default.node_sound_leaves_defaults(), selection_box = { type = "fixed", fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, }, }) --minetest.register_node("squaresville:cords", { -- description = "Mushy Cords", -- tiles = {"squaresville_cords_top.png", "squaresville_cords_top.png", "squaresville_cords.png"}, -- paramtype2 = "facedir", -- is_ground_content = false, -- groups = {tree = 1, fleshy = 2}, -- sounds = default.node_sound_leaves_defaults(), -- on_place = minetest.rotate_node --}) -- -- --newnode = squaresville.clone_node("default:water_source") --newnode.description = "Water" --newnode.drop = "default:water_source" --newnode.pointable = true --newnode.liquid_range = 0 --newnode.liquid_viscosity = 1 --newnode.liquid_renewable = false --newnode.liquid_alternative_flowing = "chaos:weightless_water" --newnode.liquid_alternative_source = "chaos:weightless_water" --newnode.diggable = true --newnode.buildable_to = false --newnode.walkable = true --newnode.groups = {} --minetest.register_node("squaresville:pustule", newnode) -- --if bucket and bucket.liquids then -- bucket.liquids['squaresville:pustule'] = { -- source = 'squaresville:pustule', -- flowing = 'squaresville:pustule', -- itemname = 'bucket:bucket_water', -- } --end newnode = squaresville.clone_node('air') newnode.light_source = 14 minetest.register_node('squaresville:bright_air', newnode) minetest.register_node("squaresville:streetlight", { description = "Streetlight", tiles = {"squaresville_streetlight.png", 'squaresville_streetlight_bottom.png', 'squaresville_streetlight.png'}, paramtype = "light", light_source = 14, paramtype2 = "facedir", drawtype = "nodebox", node_box = { type = "fixed", fixed = { {0.1, 2.5, -0.1, -0.1, -0.5, 0.1}, {0.05, 2.5, -0.5, -0.05, 2.4, -0.1}, {0.1, 2.5, -0.7, -0.1, 2.35, -0.5}, } }, groups = {cracky = 2, level=2}, sounds = default.node_sound_stone_defaults(), on_place = minetest.rotate_and_place, }) newnode = squaresville.clone_node("squaresville:streetlight") newnode.light_source = 0 minetest.register_node("squaresville:streetlight_broken", newnode) minetest.register_node("squaresville:beacon_1", { description = "Aircraft Beacon", tiles = {"squaresville_beacon_1.png"}, paramtype = "light", light_source = 14, paramtype2 = "facedir", drawtype = "nodebox", node_box = { type = "fixed", fixed = { {-0.05, -0.5, -0.05, 0.05, 0.3, 0.05}, {-0.15, 0.3, -0.15, 0.15, 0.5, 0.15}, } }, groups = {cracky = 2, level=2}, on_place = minetest.rotate_and_place, sounds = default.node_sound_stone_defaults(), }) newnode = squaresville.clone_node('default:apple') newnode.tiles = {'squaresville_orange.png'} newnode.inventory_image = "squaresville_orange.png" newnode.description = 'Orange' minetest.register_node('squaresville:orange', newnode) newnode = squaresville.clone_node('default:apple') newnode.tiles = {'squaresville_pear.png'} newnode.inventory_image = "squaresville_pear.png" newnode.description = 'Pear' minetest.register_node('squaresville:pear', newnode) for _, leaf in pairs({'default:leaves', 'default:pine_needles'}) do local num = 1 for _, color in pairs({'FF0000', 'FFFF00', '00FF00'}) do local newnode = squaresville.clone_node(leaf) newnode.tiles = {newnode.tiles[1] .. '^[colorize:#' .. color .. ':15'} local new_leaf_name = leaf:gsub('default', 'squaresville') .. '_alt_' .. num minetest.register_node(new_leaf_name, newnode) num = num + 1 end end newnode = squaresville.clone_node("default:leaves") newnode.description = "Cherry Blossoms" newnode.tiles = {"squaresville_leaves_cherry.png"} newnode.special_tiles = {"squaresville_leaves_cherry.png"} newnode.groups = {snappy = 3, flammable = 2} minetest.register_node("squaresville:leaves_cherry", newnode)