is_game_started = false is_game_finished = false function ending() end function begining() --- Teleport player to 0,0,0 -- create 4 page dialog using formspec -- 1st page: welcome -- 2nd page: Story about eating pickles with milk and beans -- 3rd page: Started pooping on the center of the park! -- 4th page: Teleport player to 10 9.5 18 -- set is_game_started to true end destruction_counter = {} destruction_counter.nodesDestroyed = 0 local nodesDestroyedByHand = 0 local idText local idMeter minetest.register_on_joinplayer(function(player) meta = player:get_meta() idText = player:hud_add({ hud_elem_type = "text", position = {x = .5, y = .5}, offset = {x = 0, y = 0}, text = nodesDestroyed, alignment = {x = 0, y = 0}, -- center aligned scale = {x = 100, y = 100}, -- covered later }) player:hud_add({ hud_elem_type = "image", position = {x = 1, y = .5}, offset = {x = -515, y = 23}, text = "destruction_counter_meter_empty.png", scale = {x = 4, y = 4}, alignment = {x = 1, y = 0}, }) idMeter = player:hud_add({ hud_elem_type = "image", position = {x = 1, y = .5}, offset = {x = -510, y = 23}, text = "destruction_counter_meter_full.png", scale = {x = 0, y = 4}, alignment = {x = 1, y = 0}, }) end) function destruction_counter.updateCounter(player) if not player then return end local totalDestruction = destruction_counter.nodesDestroyed + math.floor(nodesDestroyedByHand / 10) local percentage = (totalDestruction / 100 * 4) if percentage > 100 then percentage = 100 end player:hud_change(idText, "text", "Shitting & Packing Meter: " .. totalDestruction) player:hud_change(idMeter, "scale", {x = percentage, y = 4}) end function sraj_dzwiek() --make random sound local sounds = { "shitting1", "shitting2", "shitting3"} local sound = sounds[math.random(1, #sounds)] minetest.sound_play(sound, {pos = pos, gain = 2.0, max_hear_distance = 10}) end function pakuj_guwno() local sounds = { "shit_packing1", "shit_packing2", "shit_packing3"} local sound = sounds[math.random(1, #sounds)] minetest.sound_play(sound, {pos = pos, gain = 2.0, max_hear_distance = 10}) end minetest.register_node("poop:box", { description = "cardboard box", tiles = {"box_top_closed.png","box_top_closed.png", "box_long_side.png", "box_long_side.png", "box_long_side.png", "box_long_side.png"}, drop = 'poop:box', legacy_mineral = true, drawtype = "nodebox", paramtype = "light", node_box = { type = "fixed", fixed = { {-0.3125, -0.5, -0.375, 0.3125, -0.0625, 0.375}, -- NodeBox1 } } }) -- make a tool called flashlight that can be used to light up the world minetest.register_tool("poop:flashlight", { description = "Flashlight", inventory_image = "flashlight.png", wield_image = "flashlight.png", wield_scale = {x=1,y=1,z=1}, tool_capabilities = { full_punch_interval = 1.0, max_drop_level=0, groupcaps={ cracky = {times={[1]=3.00, [2]=0.70, [3]=0.40}, uses=20, maxlevel=1}, }, damage_groups = {fleshy=2}, }, light_source = 14, }) minetest.register_tool("poop:tool", { description = "My Tool", inventory_image = "flux_capacitor.png", tool_capabilities = { full_punch_interval = 1.5, max_drop_level = 1, groupcaps = { crumbly = { maxlevel = 2, uses = 20, times = { [1]=1.60, [2]=1.20, [3]=0.80 } }, }, damage_groups = {fleshy=2}, }, }) minetest.register_node("poop:floor", { description = "Floor", tiles = {"floor.png"}, drop = 'poop:floor', legacy_mineral = true, groups = {cracky=3, stone=1}, }) minetest.register_node("poop:Poop", { description = "Just Shit", tiles = {"Poop.png"}, drop = 'poop:PoopItem', groups = {cracky=3, stone=1}, }) minetest.register_node("poop:tv", { description = "CRT TV", tiles = {"PC2.png", "PC2.png","PC2.png","PC.png","PC2.png","PC2.png"}, drop = 'poop:Poop', groups = {cracky=3, stone=1}, }) minetest.register_node("poop:bricks", { description = "Bricks", tiles = {"Bricks.png"}, drop = 'poop:grey_bricks', groups = {cracky=3, stone=1}, }) minetest.register_node("poop:grey_bricks", { description = "Bricks 2", tiles = {"Bricks2.png"}, groups = {cracky=3, stone=1}, drop = 'poop:grey_bricks', groups = {cracky=3, stone=1}, }) minetest.register_node("poop:planks", { description = "Planks", tiles = {"Planks.png"}, drop = 'poop:planks', groups = {cracky=3, stone=1}, }) minetest.register_node("poop:purpleblock", { description = "Purple Block", tiles = {"purpleblock.png"}, drop = 'poop:purpleblock', groups = {cracky=3, stone=1}, }) minetest.register_node("poop:purpleblock", { description = "Purple Block", tiles = {"purpleblock.png"}, drop = 'poop:purpleblock', groups = {cracky=3, stone=1}, }) minetest.register_node("poop:redblock", { description = "Red Block", tiles = {"redblock.png"}, drop = 'poop:redblock', groups = {cracky=3, stone=1}, }) minetest.register_node("poop:aquablock", { description = "Aqua Block", tiles = {"aquablock.png"}, drop = 'poop:aquablock', groups = {cracky=3, stone=1}, }) minetest.register_node("poop:glass", { description = "Glass", tiles = {"glass.png"}, drop = 'poop:glass', groups = {cracky=3, stone=1}, }) minetest.register_node("poop:Poop2", { description = "Poop with more density", tiles = {"sraka.png"}, drop = 'poop:Poop', groups = {cracky=3, stone=1}, }) minetest.register_node("poop:flux_capacitor", { description = "Flux Capacitor from Back to the Future", tiles = {"fluxcap2.png", "fluxcap2.png","fluxcap2.png","fluxcap.png","fluxcap2.png","fluxcap2.png"}, drop = 'poop:Poop', groups = {cracky=3, stone=1}, }) minetest.register_alias("mapgen_stone", "poop:floor") local pooped_things = 0 minetest.register_craftitem("poop:plumba", { description = "Plumba", inventory_image = "plumba.png", on_use = function(itemstack, user, pointed_thing) -- check if pointing at a node if pointed_thing.type ~= "node" then return end if pooped_things >= 100 then is_game_finished = true return end -- get node at pointed thing position local node = minetest.get_node(pointed_thing.under) -- check if node is poop if node.name == "poop:Poop" then minetest.remove_node(pointed_thing.under) minetest.add_node(pointed_thing.under, {name="poop:box"}) minetest.chat_send_player(user:get_player_name(), "You packed "..pooped_things.." shits!") pooped_things = pooped_things + 1 destruction_counter.nodesDestroyed = pooped_things destruction_counter.updateCounter(user) pakuj_guwno() return itemstack else if node.name == "poop:Poop2" then minetest.remove_node(pointed_thing.under) minetest.add_node(pointed_thing.under, {name="poop:box"}) minetest.chat_send_player(user:get_player_name(), "You packed "..pooped_things.." shits!") pakuj_guwno() pooped_things = pooped_things + 1 destruction_counter.nodesDestroyed = pooped_things destruction_counter.updateCounter(user) return itemstack end end end }) minetest.register_craftitem("poop:pooper", { description = "Pooper", inventory_image = "SHITitem.png", on_use = function(itemstack, user, pointed_thing) -- check if pointing at a node if pointed_thing.type ~= "node" then return end -- make a random number between 1 and 10 local random_number = math.random(1, 10) if random_number < 5 then local node = minetest.get_node(pointed_thing.above) if node.name == "air" then minetest.add_node(pointed_thing.above, {name="poop:Poop"}) else minetest.add_node(pointed_thing.under, {name="poop:Poop"}) end else local node = minetest.get_node(pointed_thing.above) if node.name == "air" then minetest.add_node(pointed_thing.above, {name="poop:Poop2"}) else minetest.add_node(pointed_thing.under, {name="poop:Poop2"}) end end sraj_dzwiek() return itemstack end, }) minetest.register_on_joinplayer(function(player) player:get_inventory():set_list("main", {}) player:setpos({x=0, y=10, z=0}) -- set time to day minetest.set_timeofday(0.5) minetest.sound_play("pooping_together", { gain = 1, pitch = 1, loop = true, }) player:get_inventory():add_item("main", "poop:plumba") player:get_inventory():add_item("main", "poop:pooper") begining() end)