From 86915037182465cc4dd4082a638645f8a1ae5d1c Mon Sep 17 00:00:00 2001 From: AiTechEye <40591179+AiTechEye@users.noreply.github.com> Date: Mon, 6 Aug 2018 21:57:42 +0200 Subject: [PATCH] Add files via upload --- craft.lua | 36 ++ depends.txt | 2 + description.txt | 2 + init.lua | 416 ++++++++++++++++ items.lua | 627 +++++++++++++++++++++++++ screenshot.png | Bin 0 -> 47545 bytes textures/4444.png | Bin 0 -> 693 bytes textures/afterearth_air.png | Bin 0 -> 126 bytes textures/afterearth_bag.png | Bin 0 -> 952 bytes textures/afterearth_rubber.png | Bin 0 -> 516 bytes textures/afterearth_source.png | Bin 0 -> 715 bytes textures/afterearth_source2.png | Bin 0 -> 881 bytes textures/afterearth_stone.png | Bin 0 -> 831 bytes textures/afterearth_trash.png | Bin 0 -> 2927 bytes textures/afterearth_waste.png | Bin 0 -> 780 bytes textures/eafterearth_plastic_block.png | Bin 0 -> 683 bytes 16 files changed, 1083 insertions(+) create mode 100644 craft.lua create mode 100644 depends.txt create mode 100644 description.txt create mode 100644 init.lua create mode 100644 items.lua create mode 100644 screenshot.png create mode 100644 textures/4444.png create mode 100644 textures/afterearth_air.png create mode 100644 textures/afterearth_bag.png create mode 100644 textures/afterearth_rubber.png create mode 100644 textures/afterearth_source.png create mode 100644 textures/afterearth_source2.png create mode 100644 textures/afterearth_stone.png create mode 100644 textures/afterearth_trash.png create mode 100644 textures/afterearth_waste.png create mode 100644 textures/eafterearth_plastic_block.png diff --git a/craft.lua b/craft.lua new file mode 100644 index 0000000..03d4395 --- /dev/null +++ b/craft.lua @@ -0,0 +1,36 @@ +minetest.register_craft({ + output = "afterearth:plastic_block", + recipe = { + {"afterearth:bag_empty","afterearth:bag_empty","afterearth:bag_empty"}, + {"afterearth:bag_empty","afterearth:bag_empty","afterearth:bag_empty"}, + {"afterearth:bag_empty","afterearth:bag_empty","afterearth:bag_empty"}, + } +}) +minetest.register_craft({ + output = "afterearth:rubberblock 9", + recipe = { + {"afterearth:tire","afterearth:tire","afterearth:tire"}, + {"afterearth:tire","afterearth:tire","afterearth:tire"}, + {"afterearth:tire","afterearth:tire","afterearth:tire"}, + } +}) + + + + +minetest.register_craft({ + type = "fuel", + recipe = "afterearth:plastic_block", + burntime=50, +}) +minetest.register_craft({ + type = "fuel", + recipe = "afterearth:bag", + burntime=5, +}) +minetest.register_craft({ + type = "fuel", + recipe = "afterearth:bag_empty", + burntime=5, +}) + diff --git a/depends.txt b/depends.txt new file mode 100644 index 0000000..425fd69 --- /dev/null +++ b/depends.txt @@ -0,0 +1,2 @@ +default +flowers? diff --git a/description.txt b/description.txt new file mode 100644 index 0000000..1108915 --- /dev/null +++ b/description.txt @@ -0,0 +1,2 @@ +The earth's ecosystem has collapsed, and there ain't no biologically environment left. +And this planet has become a difficult place to live on. \ No newline at end of file diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..f7c8649 --- /dev/null +++ b/init.lua @@ -0,0 +1,416 @@ +afterearth={ + day_timer=0, + currtime=0, + timer=1, + storm={}, + trashdrops={}, + trashdropscount=50, + storm_chance=400, + storm_chance_end=50, + item_age=tonumber(minetest.settings:get("item_entity_ttl")), + not_in_trash={ + ["default:diamondblock"]=1, + ["default:steelblock"]=1, + ["default:bronzeblock"]=1, + ["default:tinblock"]=1, + ["default:mese"]=1, + ["default:copperblock"]=1, + ["default:diamond"]=1, + ["default:mese_crystal"]=1, + ["doors:door_steel"]=1, + ["default:coalblock"]=1, +} + + + +} + +dofile(minetest.get_modpath("afterearth") .. "/items.lua") +dofile(minetest.get_modpath("afterearth") .. "/craft.lua") + +if afterearth.item_age=="" or afterearth.item_age==nil then + afterearth.item_age=895 +else + afterearth.item_age=afterearth.item_age-5 +end + +minetest.register_on_dieplayer(function(player) + local pos=player:getpos() + pos={x=pos.x,y=pos.y+1.5,z=pos.z} + local def=minetest.registered_nodes[minetest.get_node(pos).name] + if def and def.buildable_to then + minetest.set_node(pos,{name="afterearth:air3"}) + end +end) + +minetest.register_on_joinplayer(function(player) -- set sky for joining players + afterearth.daycircle(player) +end) + +minetest.register_globalstep(function(dtime) -- set sky for players + afterearth.day_timer=afterearth.day_timer+dtime + if afterearth.day_timer0.458 and d<0.58 then + for _,player in ipairs(minetest.get_connected_players()) do + local pos=player:getpos() + local l=minetest.get_node_light(pos) + for i, ob in pairs(minetest.get_objects_inside_radius(pos, 30)) do + local pos2=ob:getpos() + local l=minetest.get_node_light(pos2) + if l and l>=default.LIGHT_MAX then + local n=minetest.registered_nodes[minetest.get_node(pos2).name] + if n and n.buildable_to and not minetest.is_protected(pos,"") then + minetest.set_node(pos2, {name = "fire:basic_flame"}) + end + ob:punch(ob,1,{full_punch_interval=1,damage_groups={fleshy=1}}) + end + end + end + end + if not afterearth.storm.dir and math.random(1,afterearth.storm_chance)==1 then + local d={{x=1,z=0},{x=-1,z=0},{x=0,z=1},{x=0,z=-1}} + local max + local min + d=d[math.random(1,4)] + if d.x==1 then + max={x=-15,z=15} + min={x=-15,z=-15} + elseif d.x==-1 then + max={x=15,z=15} + min={x=15,z=-15} + elseif d.z==1 then + max={x=15,z=-15} + min={x=-15,z=-15} + else --if d.z==-1 then + max={x=15,z=15} + min={x=-15,z=15} + end + afterearth.storm.max=max + afterearth.storm.min=min + afterearth.storm.dir=d + elseif afterearth.storm.dir then + if math.random(1,afterearth.storm_chance_end)==1 then + afterearth.storm={} + return + end + local d=afterearth.storm.dir + local max=afterearth.storm.max + local min=afterearth.storm.min + for _,player in ipairs(minetest.get_connected_players()) do + local pos=player:getpos() + local l=minetest.get_node_light(pos) + if l and l>=default.LIGHT_MAX-1 then + afterearth.new_dust=1 + local e=minetest.add_entity({x=pos.x+math.random(min.x,max.x),y=pos.y+math.random(1,10), z=pos.z+math.random(min.z,max.z)}, "afterearth:duster") + e:setvelocity({x=afterearth.storm.dir.x*5, y=-2, z=afterearth.storm.dir.z*5}) + e:setacceleration({x=afterearth.storm.dir.x*5, y=-2, z=afterearth.storm.dir.z*5}) + afterearth.new_dust=nil + local pos3={x=pos.x+max.x, y=pos.y+5, z=pos.z+max.z} + minetest.add_particlespawner({ + amount = 20, + time=2, + maxpos = {x=pos.x+min.x, y=pos.y, z=pos.z+min.z}, + minpos = pos3, + minvel = {x=d.x*10, y=-1, z=d.z*10}, + maxvel = {x=d.x*20, y=0.5, z=d.z*20}, + minacc = {x=d.x*5, y=-1, z=d.z*5}, + maxacc = {x=d.x*10, y=-10, z=d.z*10}, + minexptime = 0.5, + maxexptime = 2, + minsize = 0.8, + maxsize = 1.3, + texture = "default_dirt.png", + collisiondetection=true, + }) + afterearth.new_dust=1 + for i, ob in pairs(minetest.get_objects_inside_radius(pos, 20)) do + if ob:get_luaentity() and not ob:get_luaentity().dust and afterearth.visiable(ob:getpos(),pos3) then + if ob:get_luaentity().itemstring then + ob:get_luaentity().age=afterearth.item_age + end + minetest.add_entity(ob:getpos(), "afterearth:duster") + end + end + afterearth.new_dust=nil + end + end + end +end + + +afterearth.visiable=function(pos1,pos2) + if not (pos2 and pos2.x and pos1 and pos1.x) then return nil end + local v = {x = pos1.x - pos2.x, y = pos1.y - pos2.y-1, z = pos1.z - pos2.z} + v.y=v.y-1 + local amount = (v.x ^ 2 + v.y ^ 2 + v.z ^ 2) ^ 0.5 + local d=math.sqrt((pos1.x-pos2.x)*(pos1.x-pos2.x) + (pos1.y-pos2.y)*(pos1.y-pos2.y)+(pos1.z-pos2.z)*(pos1.z-pos2.z)) + v.x = (v.x / amount)*-1 + v.y = (v.y / amount)*-1 + v.z = (v.z / amount)*-1 + for i=1,d,1 do + local node=minetest.get_node({x=pos1.x+(v.x*i),y=pos1.y+(v.y*i),z=pos1.z+(v.z*i)}) + if node and node.name and minetest.registered_nodes[node.name] and minetest.registered_nodes[node.name].walkable then + return false + end + end + return true +end + +afterearth.daycircle=function(join) --set sky color and clouds + --[joined player] [time changed by command] [evening or night] [night or morning] + --evening and morning = set timer to 0.2, else 1 + local d=minetest.get_timeofday() + afterearth.weather(d) + if join or (d-0.1>afterearth.currtime or d+0.1=0.75 and d<0.81) or (d>0.19 and d<0.26) then + afterearth.currtime=d + local t=1 + if d>=0.75 and d<0.8 then + t=(0.8-d)*20 + afterearth.timer=0.33 + elseif d>0.8 or d<0.2 then + t=0 + afterearth.timer=1 + elseif d>=0.2 and d<0.25 then + t=(-0.2+d)*20 + afterearth.timer=0.3 + elseif d>0.25 then + t=1 + afterearth.timer=1 + end + if join then + join:set_sky({r=255*t, g=240*t, b=170*t},"plain",{}) + join:set_clouds({ + color={r=255, g=240, b=70, a=200*t}, + ambient={r=255, g=255, b=170, a=100}, + density=0.5, + height=200, + speed=-40 + }) + return + end + for _,player in ipairs(minetest.get_connected_players()) do + player:set_sky({r=255*t, g=240*t, b=170*t},"plain",{}) + player:set_clouds({ + color={r=255, g=240, b=70, a=200*t}, + ambient={r=255, g=255, b=170, a=100}, + density=0.5, + height=200, + speed=-40 + }) + end + else + afterearth.timer=1 + end + afterearth.currtime=d +end + +minetest.register_on_dignode(function(pos, oldnode, digger) + if pos.y<1 then + local a=minetest.find_node_near(pos, 1,"air") + if a then + minetest.set_node(pos, {name = "afterearth:air"}) + end + end +end) + +minetest.register_abm({ + nodenames = {"air","afterearth:air2"}, + neighbors = {"group:sand","group:stone","default:gravel"}, + interval = 10, + chance = 10, + action = function(pos,node) + if node.name=="air" then + local l=minetest.get_node_light(pos) + if l and l>=11 then + minetest.set_node(pos, {name = "afterearth:air2"}) + end + elseif node.name=="afterearth:air2" then + local l=minetest.get_node_light(pos) + if l and l<11 then + minetest.set_node(pos, {name = "air"}) + end + end + end, +}) + +minetest.register_abm({ + nodenames = {"air"}, + interval = 10, + chance = 10, + action = function(pos,node) + if pos.y<-20 then + minetest.set_node(pos, {name = "afterearth:air"}) + end + end, +}) + +minetest.clear_registered_biomes() +minetest.clear_registered_decorations() + + minetest.register_biome({ + name = "land", + --node_dust = "default:sand", + node_top = "afterearth:waste", + depth_top = 10, + node_filler = "default:sand", + depth_filler = 3, + node_stone = "default:stone", + node_water_top = "afterearth:air", + depth_water_top =5 , + node_water = "afterearth:source", + node_river_water = "afterearth:source", + y_min = -31000, + y_max = 400, + heat_point = 50, + humidity_point = 50, + }) + + minetest.register_biome({ + name = "sand", + node_dust = "afterearth:air2", + node_top = "default:sand", + depth_top = 10, + node_filler = "afterearth:waste", + depth_filler = 3, + node_stone = "default:stone", + node_water_top = "afterearth:air", + depth_water_top =1 , + node_water = "afterearth:source", + node_river_water = "afterearth:source", + y_min = 10, + y_max = 400, + heat_point = 25, + humidity_point = 50, + }) + + minetest.register_ore({ + ore_type = "blob", + ore = "afterearth:waste2", + wherein = {"afterearth:waste"}, + clust_scarcity = 16 * 16 * 16, + clust_size = 5, + y_min = -55, + y_max = 400, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.2, + spread = {x = 5, y = 5, z = 5}, + seed = -316, + octaves = 1, + persist = 0.0 + }, + }) + + minetest.register_ore({ + ore_type = "blob", + ore = "afterearth:waste3", + wherein = {"afterearth:waste"}, + clust_scarcity = 50 * 50 * 50, + clust_size = 7, + y_min = -55, + y_max = 20, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.2, + spread = {x = 5, y = 5, z = 5}, + seed = -316, + octaves = 1, + persist = 0.0 + }, + }) + + minetest.register_ore({ + ore_type = "blob", + ore = "afterearth:trash", + wherein = {"afterearth:waste","group:sand"}, + clust_scarcity = 16 * 16 * 16, + clust_size = 5, + y_min = -55, + y_max = 400, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.2, + spread = {x = 5, y = 5, z = 5}, + seed = -316, + octaves = 1, + persist = 0.0 + }, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "afterearth:air", + wherein = "air", + clust_scarcity = 1 * 1 * 1, + clust_num_ores = 2, + clust_size = 2, + y_min = -31000, + y_max = 0, + }) + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"afterearth:waste"}, + sidelen = 16, + noise_params = { + offset = -0.0004, + scale = 0.0008, + spread = {x = 250, y = 250, z = 250}, + seed = 230, + octaves = 2, + persist = 0.5 + }, + biomes = {"land"}, + y_min = 1, + y_max = 400, + decoration = {"default:tree","default:jungletree","default:pine_tree","default:pine_tree","default:acacia_tree","default:aspen_tree"}, + height = 1, + height_max = 5, + }) + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"afterearth:waste"}, + sidelen = 16, + noise_params = { + offset = -0.0004, + scale = 0.0008, + spread = {x = 250, y = 250, z = 250}, + seed = 230, + octaves = 2, + persist = 0.5 + }, + biomes = {"land"}, + y_min = 1, + y_max = 400, + decoration = {"default:tree","default:jungletree","default:pine_tree","default:pine_tree","default:acacia_tree","default:aspen_tree"}, + height = 1, + height_max = 5, + }) + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"afterearth:waste"}, + sidelen = 16, + noise_params = { + offset = 0.001, + scale = 0.0005, + spread = {x = 10, y = 10, z = 10}, + }, + biomes = {"land"}, + y_min = 1, + y_max = 400, + decoration = {"afterearth:tire"}, + height = 1, + height_max = 1, + }) \ No newline at end of file diff --git a/items.lua b/items.lua new file mode 100644 index 0000000..827aea2 --- /dev/null +++ b/items.lua @@ -0,0 +1,627 @@ + + +minetest.after(0, function() +for v, s in pairs(core.registered_items) do + if not (s.groups and s.groups.not_in_creative_inventory==1) and not afterearth.not_in_trash[v] then + local c=minetest.get_craft_recipe(v) + if c.items then + table.insert(afterearth.trashdrops,v) + elseif type(s.drop)=="string" and s.drop~="" and not (afterearth.trashdrops[s.drop] or afterearth.not_in_trash[v]) then + table.insert(afterearth.trashdrops,v) + end + end +end +afterearth.trashdropscount=math.floor(#afterearth.trashdrops/4) +end) + + + + +local drownings={ + "default:torch", + "default:torch_wall", + "default:torch_ceiling", + "default:stone", + "default:cobble", + "default:dirt", + "default:sand", + "default:gravel", +} +for i, s in pairs(drownings) do + if core.registered_items[s] then + minetest.override_item(s,{drowning=1}) + end +end +local eatsbles={ + "default:leaves", + "default:jungleleaves", + "default:acacia_leaves", + "default:aspen_leaves", + "default:bush_leaves", + "default:acacia_bush_leaves", + "default:junglegrass", + "default:grass_1", + "default:grass_2", + "default:grass_3", + "default:grass_4", + "default:grass_5", + "default:dry_grass_1", + "default:dry_grass_2", + "default:dry_grass_3", + "default:dry_grass_4", + "default:dry_grass_5", + "default:bush_leaves", + "default:acacia_bush_leaves", + "default:cactus", + "default:papyrus", + "default:dry_shrub", + "flowers:rose", + "flowers:tulip", + "flowers:dandelion_yellow", + "flowers:geranium", + "flowers:viola", + "flowers:waterlily", + "flowers:dandelion_white" +} +for i, s in pairs(eatsbles) do + if core.registered_items[s] then + minetest.override_item(s,{ + on_use = minetest.item_eat(1), + }) + table.insert(afterearth.trashdrops,s) + end +end + +minetest.register_node("afterearth:rubberblock", { + description = "Rubberblock", + tiles = {"afterearth_rubber.png"}, + groups = {cracky=3,fall_damage_add_percent=-75,bouncy=99}, + drowning=1, + sounds = default.node_sound_wood_defaults(), +}) + + +minetest.register_node("afterearth:tire", { + description = "Tire", + tiles = {"afterearth_rubber.png"}, + groups = {snappy=3,flammable=2,dig_immediate=3,fall_damage_add_percent=-75,bouncy=100}, + drowning=1, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates =true, + selection_box = { + type = "fixed", + fixed = {{-0.5,-0.5,-0.5,0.5,-0.31,0.5}}, + }, + node_box = { + type = "fixed", + fixed = { + {-0.375, -0.5, -0.375, -0.3125, -0.3125, 0.375}, + {-0.4375, -0.5, -0.375, -0.375, -0.3125, 0.375}, + {-0.5, -0.5, -0.25, -0.4375, -0.3125, 0.25}, + {-0.25, -0.5, 0.4375, 0.25, -0.3125, 0.5}, + {-0.375, -0.5, 0.375, 0.375, -0.3125, 0.4375}, + {-0.3125, -0.5, 0.3125, 0.375, -0.3125, 0.375}, + {-0.25, -0.5, -0.5, 0.25, -0.3125, -0.4375}, + {-0.375, -0.5, -0.4375, 0.375, -0.3125, -0.375}, + {-0.3125, -0.5, -0.375, 0.375, -0.3125, -0.3125}, + {0.4375, -0.5, -0.25, 0.5, -0.3125, 0.25}, + {0.375, -0.5, -0.375, 0.4375, -0.3125, 0.375}, + {0.3125, -0.5, -0.3125, 0.375, -0.3125, 0.3125}, + {0.25, -0.5, 0.1875, 0.3125, -0.3125, 0.3125}, + {-0.3125, -0.5, 0.25, -0.1875, -0.3125, 0.3125}, + {-0.3125, -0.5, 0.1875, -0.25, -0.3125, 0.25}, + {0.1875, -0.5, -0.3125, 0.3125, -0.3125, -0.25}, + {0.25, -0.5, -0.25, 0.3125, -0.3125, -0.1875}, + {-0.3125, -0.5, -0.3125, -0.1875, -0.3125, -0.25}, + {-0.3125, -0.5, -0.25, -0.25, -0.3125, -0.1875}, + {0.1875, -0.5, 0.25, 0.25, -0.3125, 0.3125}, + } + }, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("afterearth:bag_empty", { + description = "Empty plastic bag", + stack_max=10, + inventory_image = "afterearth_bag.png", + wield_image = "afterearth_bag.png", + tiles = {"eafterearth_plastic_block.png"}, + groups = {snappy=2,flammable=2,dig_immediate=3}, + drowning=1, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates =true, + walkable=false, + selection_box = { + type = "fixed", + fixed = {{-0.3125, -0.5, -0.1875, 0.25, 0.25, 0.1875}} + }, + node_box = { + type = "fixed", + fixed = { + {0.1875, -0.5, -0.125, 0.25, 0.125, 0.125}, + {-0.3125, -0.5, -0.125, -0.25, 0.125, 0.125}, + {-0.25, -0.5, 0.125, 0.1875, 0.25, 0.1875}, + {-0.25, -0.5, -0.1875, 0.1875, 0.25, -0.125}, + {-0.25, -0.5, -0.125, 0.1875, -0.4375, 0.125}, + {0.1875, 0.1875, -0.125, 0.25, 0.25, 0.125}, + {-0.3125, 0.1875, -0.125, -0.25, 0.25, 0.125}, + } + }, + sounds = default.node_sound_leaves_defaults(), +allow_metadata_inventory_put = function(pos, listname, index, stack, player) + local n=player:get_player_name() + if n~=minetest.get_meta(pos):get_string("owner") and minetest.is_protected(pos,n) then + return 0 + end + return stack:get_count() + end, +allow_metadata_inventory_take = function(pos, listname, index, stack, player) + local n=player:get_player_name() + if n~=minetest.get_meta(pos):get_string("owner") and minetest.is_protected(pos,n) then + return 0 + end + return stack:get_count() + end, +allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + local n=player:get_player_name() + if n~=minetest.get_meta(pos):get_string("owner") and minetest.is_protected(pos,n) then + return 0 + end + return count + end, +can_dig = function(pos, player) + return minetest.get_meta(pos):get_inventory():is_empty("main") + end, +after_place_node = function(pos, placer, itemstack, pointed_thing) + local meta=minetest.get_meta(pos) + meta:set_string("owner", placer:get_player_name()) + meta:set_string("infotext", "Plastic bag") + meta:get_inventory():set_size("main", 4) + meta:set_string("formspec", + "size[8,5]" .. + "list[context;main;2,0;4,1;]" .. + "list[current_player;main;0,1;8,4;]" .. + "listring[current_player;main]" .. + "listring[current_name;main]") +end, +on_use=function(itemstack, user, pointed_thing) + local pos=user:getpos() + pos.y=pos.y+1.5 + local def=minetest.registered_nodes[minetest.get_node(pos).name] + if def and def.drowning==0 then + itemstack:take_item(1) + user:get_inventory():add_item("main", "afterearth:bag") + end + return itemstack +end}) + +minetest.register_craftitem("afterearth:bag", { + description = "Plastic bag", + stack_max=10, + inventory_image = "afterearth_bag.png", + groups={not_in_creative_inventory=1}, +on_use=function(itemstack, user, pointed_thing) + itemstack:take_item(1) + user:get_inventory():add_item("main", "afterearth:bag_empty") + user:set_breath(11) + return itemstack +end}) + +minetest.register_node("afterearth:plastic_block", { + description = "Plastic block", + tiles = {"eafterearth_plastic_block.png"}, + groups = {crumbly = 2,snappy=2,flammable=2}, + drowning=1, + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("afterearth:waste", { + description = "Waste", + tiles = {"afterearth_waste.png"}, + groups = {crumbly = 3}, + sounds = default.node_sound_dirt_defaults(), + drowning=1, +}) + + + +minetest.register_node("afterearth:trash", { + description = "Trash", + drop="", + tiles = {"afterearth_trash.png"}, + groups = {crumbly = 3,snappy=3,flammable=2}, + sounds = default.node_sound_dirt_defaults(), + after_dig_node = function(pos, node, metadata, digger) + local inv=digger:get_inventory() + if not inv or not inv:room_for_item("main", "afterearth:trash") then + minetest.set_node(pos,node) + return + end + for s, v in pairs(afterearth.trashdrops) do + if math.random(1,afterearth.trashdropscount)==1 then + local it=v + if minetest.registered_tools[v] then + it=v .. " 1 " ..(math.random(40,60)*1000) + end + inv:add_item("main", it) + break + end + end + if math.random(1,2)==1 then + inv:add_item("main", "afterearth:bag_empty") + end + local tool=inv:get_stack(digger:get_wield_list(), digger:get_wield_index()):get_name() + if minetest.registered_tools[tool] then return end + local a=0 + if math.random(1,10)<3 then return end + for i=0,20,1 do + if math.random(1,2)==1 then + break + end + a=i + end + digger:punch(digger,a,{full_punch_interval=1,damage_groups={fleshy=4}}) + end +}) + +minetest.register_node("afterearth:waste2", { + description = "Waste", + tiles = {"afterearth_waste.png"}, + groups = {crumbly = 3}, + walkable=false, + drowning=1, + sounds = default.node_sound_dirt_defaults(), + after_dig_node = function(pos) + local a=0 + local c={ + {x=1,z=0}, + {x=-1,z=0}, + {x=0,z=1}, + {x=0,z=-1}, + {x=1,z=1}, + {x=-1,z=-1}, + {x=1,z=-1}, + {x=-1,z=1} + } + minetest.after(1, function(pos,c) + for v, s in pairs(c) do + if minetest.get_node({x=pos.x+s.x,y=pos.y,z=pos.z+s.z}).name=="afterearth:waste2" then + a=a+1 + if a>1 then + minetest.set_node(pos, {name = "afterearth:waste2"}) + return + end + end + end + end,pos,c) + end +}) + +minetest.register_node("afterearth:air", { + description = "Air", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + drawtype = "airlike", + drowning=1, + groups = {not_in_creative_inventory=1}, + paramtype = "light", + sunlight_propagates =true, +}) + +minetest.register_node("afterearth:air2", { + description = "Hot air", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + drawtype = "airlike", + damage_per_second = 1, + drowning=1, + groups = {not_in_creative_inventory=1,igniter=1}, + paramtype = "light", + sunlight_propagates =true, +}) + +minetest.register_node("afterearth:air3", { + description = "Air", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + drawtype = "airlike", + drowning=1, + groups = {not_in_creative_inventory=1}, + paramtype = "light", + sunlight_propagates =true, + post_effect_color = {a=250, r=0,g=0,b=0}, + on_construct = function(pos) + minetest.get_node_timer(pos):start(1) + end, + on_timer = function (pos, elapsed) + for i, ob in pairs(minetest.get_objects_inside_radius(pos, 2)) do + return true + end + minetest.remove_node(pos) + return true + end, +}) + +minetest.register_node("afterearth:waste3", { + description = "Toxic sludge", + drawtype = "liquid", + tiles = {"afterearth_source2.png"}, + paramtype = "light", + walkable = false, + buildable_to = true, + is_ground_content = false, + drowning = 1, + liquidtype = "source", + liquid_range = 1, + damage_per_second = 11, + liquid_alternative_flowing = "afterearth:waste3b", + liquid_alternative_source = "afterearth:waste3", + liquid_viscosity = 15, + post_effect_color = {a=240, r=100,g=120,b=0}, + groups = {liquid = 4,crumbly = 1, sand = 1}, + alpha = 245, + pointable = false, + diggable = false, + sounds = default.node_sound_water_defaults(), +}) + +minetest.register_node("afterearth:waste3b", { + description = "Toxic sludge", + drawtype = "flowingliquid", + tiles = {"afterearth_source2.png"}, + special_tiles = { + { + name = "afterearth_source2.png", + backface_culling = false, + }, + { + name = "afterearth_source2.png", + backface_culling = true, + }, + }, + alpha = 245, + post_effect_color = {a=240, r=100,g=120,b=0}, + paramtype = "light", + pointable = false, + diggable = false, + paramtype2 = "flowingliquid", + walkable = false, + buildable_to = true, + is_ground_content = false, + drop = "", + damage_per_second = 11, + drowning = 1, + liquidtype = "flowing", + liquid_alternative_flowing = "afterearth:waste3b", + liquid_alternative_source = "afterearth:waste3", + liquid_viscosity = 1, + liquid_range = 1, + post_effect_color = {a = 103, r = 30, g = 76, b = 90}, + groups = {liquid = 4, not_in_creative_inventory = 1}, + sounds = default.node_sound_water_defaults(), +}) + + +minetest.register_node("afterearth:source", { + description = "Sludge", + drawtype = "liquid", + tiles = {"afterearth_source.png"}, + paramtype = "light", + walkable = false, + buildable_to = true, + is_ground_content = false, + drowning = 1, + liquidtype = "source", + liquid_range = 2, + liquid_alternative_flowing = "afterearth:source2", + liquid_alternative_source = "afterearth:source", + liquid_viscosity = 15, + post_effect_color = {a=240, r=100,g=120,b=0}, + groups = {liquid = 4,crumbly = 1, sand = 1}, + alpha = 245, + pointable = false, + diggable = false, + sounds = default.node_sound_water_defaults(), +}) + +minetest.register_node("afterearth:source2", { + description = "Sludge", + drawtype = "flowingliquid", + tiles = {"afterearth_source.png"}, + special_tiles = { + { + name = "afterearth_source.png", + backface_culling = false, + }, + { + name = "afterearth_source.png", + backface_culling = true, + }, + }, + alpha = 245, + post_effect_color = {a=240, r=100,g=120,b=0}, + paramtype = "light", + pointable = false, + diggable = false, + paramtype2 = "flowingliquid", + walkable = false, + buildable_to = true, + is_ground_content = false, + drop = "", + drowning = 1, + liquidtype = "flowing", + liquid_alternative_flowing = "afterearth:source2", + liquid_alternative_source = "afterearth:source", + liquid_viscosity = 1, + liquid_range = 2, + post_effect_color = {a = 103, r = 30, g = 76, b = 90}, + groups = {liquid = 4, not_in_creative_inventory = 1}, + sounds = default.node_sound_water_defaults(), +}) + + +afterearth.spawn_dust=function(pos) + if not (pos and afterearth.storm.dir and minetest.is_protected(pos,"")==false) then return end + local drop=minetest.get_node_drops(minetest.get_node(pos).name)[1] + local n=minetest.registered_nodes[minetest.get_node(pos).name] + if not (n and n.walkable) or drop=="" or type(drop)~="string" then return end + local t=n.tiles + if not t[1] then return end + local tx={} + local tt={} + tt.t1=t[1] + tt.t2=t[1] + tt.t3=t[1] + + if t[2] then tt.t2=t[2] tt.t3=t[2] end + if t[3] and t[3].name then tt.t3=t[3].name + elseif t[3] then tt.t3=t[3] + end + if type(tt.t3)=="table" then return end + tx[1]=tt.t1 + tx[2]=tt.t2 + tx[3]=tt.t3 + tx[4]=tt.t3 + tx[5]=tt.t3 + tx[6]=tt.t3 + afterearth.new_dust={t=tx,drop=drop} + local e=minetest.add_entity(pos, "afterearth:dust") + e:setvelocity({x=afterearth.storm.dir.x*5, y=2, z=afterearth.storm.dir.z*5}) + e:setacceleration({x=afterearth.storm.dir.x*5, y=-1, z=afterearth.storm.dir.z*5}) + afterearth.new_dust=nil + minetest.remove_node(pos) +end + +minetest.register_entity("afterearth:duster",{ + hp_max = 1000, + physical =true, + weight = 0, + collisionbox = {-0.1,-0.1,-0.1,0.1,0.1,0.1}, + visual = "sprite", + visual_size = {x=1,y=1}, + pointable=false, + textures ={"afterearth_air.png"}, + spritediv = {x=1, y=1}, + initial_sprite_basepos = {x=0, y=0}, + is_visible = true, + makes_footstep_sound = false, + on_activate=function(self, staticdata) + if not (afterearth.new_dust and afterearth.storm.dir) then + self.object:remove() + return self + end + self.d=afterearth.storm.dir + return self + end, + on_step=function(self, dtime) + self.time=self.time+dtime + self.time2=self.time2+dtime + if self.time2<0.1 then return self end + self.time2=0 + local pos=self.object:getpos() + local pos2={x=pos.x+self.d.x,y=pos.y,z=pos.z+self.d.z} + local u=minetest.registered_nodes[minetest.get_node(pos2).name] + if not self.atta and u and u.walkable and minetest.get_item_group(u.name,"cracky")==0 and not minetest.is_protected(pos2,"") then + afterearth.spawn_dust(pos2) + self.object:remove() + elseif self.time>3 or u and u.walkable then + self.object:remove() + elseif self.atta then + local v=self.object:getvelocity() + local pos2={x=pos.x+self.d.x,y=pos.y-1,z=pos.z+self.d.z} + local u2=minetest.registered_nodes[minetest.get_node(pos2).name] + if (u2 and u2.walkable) or (v.x+v.z==0) then + self.atta:punch(self.atta,4,{full_punch_interval=1,damage_groups={fleshy=4}}) + self.object:remove() + return self + end + elseif not self.atta then + for i, ob in pairs(minetest.get_objects_inside_radius(pos, 1)) do + if not (ob:get_luaentity() and ob:get_luaentity().dust) then + self.object:moveto({x=pos.x,y=pos.y+1,z=pos.z}) + self.object:set_properties({collisionbox={-0.5,-0.5,-0.5,0.5,0.5,0.5}}) + ob:set_attach(self.object, "",{x = 0, y = 0, z = 0}, {x = 0, y =0, z = 0}) + self.atta=ob + self.time=-30 + self.object:setvelocity({x=self.d.x*15, y=1, z=self.d.z*15}) + self.object:setacceleration({x=0, y=-0.2, z=0}) + return self + end + end + + end + return self + end, + time=0, + time2=0, + dust=1, +}) + + + +minetest.register_entity("afterearth:dust",{ + hp_max = 1000, + physical =true, + weight = 0, + collisionbox = {-0.5,-0.5,-0.5,0.5,0.5,0.5}, + visual = "cube", + visual_size = {x=1,y=1}, + textures ={"air.png"}, + spritediv = {x=1, y=1}, + initial_sprite_basepos = {x=0, y=0}, + is_visible = true, + makes_footstep_sound = true, + on_punch2=function(self) + minetest.add_item(self.object:getpos(),self.drop) + self.object:remove() + return self + end, + on_activate=function(self, staticdata) + if not (afterearth.new_dust and afterearth.storm.dir) then self.object:remove() return self end + self.drop=afterearth.new_dust.drop + self.object:set_properties({textures = afterearth.new_dust.t}) + self.d=afterearth.storm.dir + return self + end, + on_step=function(self, dtime) + self.time=self.time+dtime + if self.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 LNkvXXu0mjfi4rU2 literal 0 HcmV?d00001 diff --git a/textures/4444.png b/textures/4444.png new file mode 100644 index 0000000000000000000000000000000000000000..adc7d67c0f98ca8905c68139ec456908d8a4386b GIT binary patch literal 693 zcmV;m0!safP)WFU8GbZ8()Nlj2>E@cM*00J3FL_t(I%O%mtmE1-U zK*66&6@clX-s6oX$Qcm22rr>tlX3cBa%}ZuUh2|OhL*olIFn}iHdMtMGc`$LEw_j zjY9-JHalVM#I+Q(7#qq24k0p`D@ z@{D4Wn7;99Tpqkj7#TDNACfeH5HgjOj#i-`P|NuB)40DUSqIvLSHMF%qb+(RK2119 zIb|_RFd()tvglVL1&<$_DB)`tt^%$++~L0Qo}fcYQ;boYdK!lcAmGLkP}N8`W-Eq0@wS5$rM!cH zY!C;tBtA}-3y=3=Wia$WB=HDp!|4~Usk}b^UiT=T$H9^X2pWRS&37{rW0sQo!e?<>&pI+iC0WYv9|M0El`Nt)5S4_<9c!e0}}%SD+A*rHP+cc OVFpiEKbLh*2~7ZBz8lH_ literal 0 HcmV?d00001 diff --git a/textures/afterearth_bag.png b/textures/afterearth_bag.png new file mode 100644 index 0000000000000000000000000000000000000000..e98c4a8457ca9d129ac9815c6a6e6810e0c75707 GIT binary patch literal 952 zcmV;p14sOcP)WFU8GbZ8()Nlj2>E@cM*00SIJL_t(o!@ZZ!YgAVp z#XsNs?wgs!OnwZL6hjeBz*Xv^i6O3~i|WE%S7z08C!@+RVaj(44N7kNQyINhA}32_v_-#lL?8LH$R*MkN4i?^3J*EzWcrB3Qa;aKLF+i z=oP>K7Nh{~uE_X{X1^z`kuwjBM6DnKc6EDu^U}!3rD`+ZH1UXY{_*4hBF;Isw*I?N zD7;=;S^529M;%ao^)&=DAYX!ff0#VP-rjpQHr6SZO90D3pbOK}voG3qKsA36^bVLG zft$yX*Y%Dbu8Q!(^XI>0;s~%OlbhSX)kbEihF9(FKt%cyiGiSH2UN>Fhsi$;=NzTd zHq~l5npF#2HfHx)O9H}?|NkfsIe;;SAaHdK0BBDT$UxHqj@sTB&N+-ZG7cZq=5i1G z*aBK1j~vKkhRJ5XKtyT_6Dwl8RBA|K322o(LL!l5a4>_l(SYS0sGXSjZZDU6(0gJX zP+cDZ?>;a~8>m(*Y;L}!QrU@`{#Mmzs#J`Thm(`nHvsba$1*;CP3r{wI}G+W;0lP> zj)-!(M4|BdqX<=fAFf|{DB}Kbj==Lg?dx+Z=g-gX)C9bm19uN(m<}KkvAbI(2m&-* z9{Z}g4PdSBthI}yqh}X0nW?uHGz-#8hmcMWVvNWB{vPG>TPl?uMDSI0G?7R#G?c~n zlk@3xKdSjf3mSyWMmnW|Q>W6kdp|*NP`7Of$z+OJNuLKVX@Mo+8{l%>-7zkF-^ceq zRSMJtEgCRift=|yd80iR$bv(pFGTsVHt$*lS?f0WM*$*Z|A1QvJ9LlyNX%(>Q)-s{*ql`p@hfoQbCVyNh{BF; zu0zvtBKe6)Q}typ@K+m7tU`81B>k?XST1s|+J+O$;N}{U$2^$C{V}x|))HB3WP8(R z!^YDgfZTfXrucIvGiF8lcRPMKt#e`uNC8po-U>^(Sq!V{XFVOSPkWFU8GbZ8()Nlj2>E@cM*00C%8L_t(I%UzREuIn%e zL=Rx6Riv(=`(I(3*uedW@Jk<3K4ODsUzyOWuS2=0!Vp{l4V5kW+d znLHj3G$H`jMQd&SyE_0P!g-!#CYedqoaae%cT|u@$k$rq`FtWG%TzV9-uu-;&7ja~d1@a@g}dEF zWFU8GbZ8()Nlj2>E@cM*00J*bL_t(I%PrEqavMnu zh0zZ{cMoSsk+SS^;Ah)(AA92sR2C(X;{0?s;9wjf15oE)`RCtXQIe2cXuwzRT(V&* zI6*OC>wzu%Y$X`7kOUrA(5#9fSb~yaS%XF}WH_3V1(pWWSulYRIGEr8`3z|qgjxer zVX48P2>01JW@T~56wbqbU5+q?^0_(Jxsy#uub++6sN{gr1Ta=}<|Qay2q2#Yk03e- zK}pKXC;%iBY7c4+L}AQ|hJt||;A83ZcV)Z?DTK8JXpjX^(C)BqK?t-B+`+?HnzPj4 z+hE+2^Z9Uc0W)w3#9&H7dMXME#e`X$wL1XEtN=8i#cuTWztc{E8PprxMkiSUTo8ok z!Pq?T2arL5ED!`^q>c{!D%f>V^WF=Dll(B67UHep(y#5kn3YF&K5FM{-Q)dnG*XS=`qg*n`hIhMJ|*TBeBFZoesAQzOmD9e~TIJY}P{VC}(aQc{_O^iXca x=?eNzHW}4}@ck1i^b}lY=MNa}M*k!*a#H{R002ovPDHLkV1hV3E9?LO literal 0 HcmV?d00001 diff --git a/textures/afterearth_source2.png b/textures/afterearth_source2.png new file mode 100644 index 0000000000000000000000000000000000000000..0048f49024315e14062de90156b11113b9ec005a GIT binary patch literal 881 zcmV-%1CIQOP)WFU8GbZ8()Nlj2>E@cM*00PxXL_t(I%O%oHZ<7T8 z0O03+`}SjPH@dCcplluBV0>yOF{m*fBoVI|jz%wf;^aRd`~$E04+x3I19;LH1LA>* ziEa#Gz!)2&TldwjUH7)H2cO^Y1dW@L!s9-k$E15Us$GK@3dA{Bk zg3KVfocV87goRd$sgTPhX37@pnCmfF=EM-ELym1rU78W@6RZZ5N*s<&UoVJsDpcxB zW@yz_(memCWisF4*)I7UUmT&fX|OZK@tE0VkL)R?NWIzEzIN(BL?%rst8k#FZy*-k z-O^oZ*qYta*Ei1L9@9-~q2%9!;dEDjoEEHHmyDoYBX^!uG{WOLgGG|E{pBaxf7Acj zG*hqXZc7>wxg2AWa4%-LPOreLyU4Y5D_yP57Nf7EKbqt{x_9Q88zs&Q=0m|;PLPyE z)ds;tmPTIY?G1aa9pN5*)nS5=dMr+ns-)b%Iq%ph@+F=9 zJ5%6zk$bWA#dT{{A|2dbpnQxEV}?%CUgG{MQrngr9Jxp~9M;-g7d~uiFOfUJbf+Ll zzB`o6&97Mgl@Csmy*R`9ZTi>vt;EJMmm+F8b~o)UB;o-wC)w>1EM1ixes_>m-XAw! z8hy&quV*Mcq=SQ_?BZmDfpLC(t+}uw8s=G%VD}eE-ixyHRZtqxxfuvp=*hxU6- ziw}5Xq`;Xr?~HS+!EWgL+cl}H6R!0~A=M_zWJ}yxV|bs90jbep+1U+2abKz#k+k^a z5Y?{oiydM63C)ccq{peogmtx_ceK8JNu@|5qc=?$U}B0x724ahwvBu`COSHpwR2;S z#YGOb`8Z>wK1sVnbyN3;7y3V+V5-eRho9=yHhHUPwY};;fch#=q>xQU00000NkvXX Hu0mjf7wDCH literal 0 HcmV?d00001 diff --git a/textures/afterearth_stone.png b/textures/afterearth_stone.png new file mode 100644 index 0000000000000000000000000000000000000000..09cc90ad7c8695565d2af74096c3894a56dd446c GIT binary patch literal 831 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 Z^1p(!yPi1F{mK9U002ovPDHLkV1i?ro!9^X literal 0 HcmV?d00001 diff --git a/textures/afterearth_waste.png b/textures/afterearth_waste.png new file mode 100644 index 0000000000000000000000000000000000000000..76f8dd8a674757445ac1137b3a067a6618718f9d GIT binary patch literal 780 zcmV+n1M~ceP)WFU8GbZ8()Nlj2>E@cM*00MAHL_t(I%LTzlV&pay zK*5I(fM94!Y>nCrAH;|88GLUqENMD0A%0hxfBybU_wOge{J|ay>JD_Bn3|HB5?h7i zi*B5-;s||DHU{4;vHT!4SLSiRI7>^O=YJL3C2D9G@eHHq`p2L2p(CkK6=+J%m0;fx zZz3WMwuV$kh?VVYrPac@-m#?+X{hP3-p~ZRG}I_)Mb>?z*+^I_y%ny%-dW~_=Y6HW zj2t=QvLVrUlRzt$`?}EuL$QKf=PUc#`2F=mFbBpP_H*Mpf6$B}uNgfHMk^ZygW&r& zvhjHJ$e!VK8fsBW-btx4Oaryv@m85X7tV50w;xm#OhsZMACWy)xMU5NZf20mx*u2z z$MM3niLO^#ZA^2)4HLUotZD4&JSI3tuW3EMhKGG#S=8s36$!PR!H|17b-3}+%(PLI%-a= zX+`gqZt-9|iAX#Sv@4|jiMw1eVoA=irNrmdBWrq~?Ibv*lM8S2NP66fn#qS_mI0Rx zQY_{Bg-?d%ZQ=d)&SriibLh~f;0G`UvSJjpowTthPo8#0OslwMp?I*h;tu8N7F>Eo z^waT-Pe$93{DmZib&o7=p`AP3^#iA#*bI-?zw~uv?mHfj7ykp*T7CtTYM;^o0000< KMNUMnLSTZ{ep-V7 literal 0 HcmV?d00001 diff --git a/textures/eafterearth_plastic_block.png b/textures/eafterearth_plastic_block.png new file mode 100644 index 0000000000000000000000000000000000000000..972eb85a0df4e549854b0ec6a188d07bebeb1c15 GIT binary patch literal 683 zcmV;c0#yBpP)WFU8GbZ8()Nlj2>E@cM*00Iw5L_t(I%Vm?xZo@bX zMUNy(RvkAfinRa#eMM2AjpIn79<#{Uz+eb)C6c;0mozD*v92q|7`APrl!B_VEDN<( zthG$jgtZn`4>c<EU5ZJ>QL(ZAs-(S{s z#d}XF1%MbM-h0ftt|RA+F$U+{F<{#^YOSa$-h0Lv7-LXXK0ZG9`}=z`YOOKGAf<#c z=6JYVE`$*9-qTvcdk=t!@b&dYN{Ld+bHL;AKtvd0@c#aebM7c8rO;ZVltM}gRV9Rg zs?vMM)>@D0F-DwohzP36>2#v^j;bCo0q*xZ)>=da^YimFT5AA!@Bi1lOWtiOr63|t z3$4W-QvTh8d7cpw9*+mLR&KW&-g{z%huguuG4^xnDMZioo; zJOkjIJM7z4SZkjj&-2XbbfUFJ2!Z?kPD%-D?Xd^O7^Z1LL=M;@^5l?n=6pVLzu&2~ z(puwuJ`-a^L=Fd>bBBUmr7;HSy_0jM)_O45i&d3*p2<1?hm&&-?>#x^Cj$}Ta=8Go zt}7vg!;QUg-%Mi+y?3^4