diff --git a/antigrav.lua b/antigrav.lua new file mode 100644 index 0000000..0a2c727 --- /dev/null +++ b/antigrav.lua @@ -0,0 +1,156 @@ +minetest.register_node("ufowreck:alien_antigrav_off", { + description = "Alien Antigrav OFF", + tiles = { + "alien_ag_top_off.png", + "alien_ag_bottom.png", + "alien_ag_side_off.png", + "alien_ag_side_off.png", + "alien_ag_side_off.png", + "alien_ag_side_off.png", + }, + groups = {cracky=2, technic_machine = 1, technic_hv = 1}, + connect_sides = {"bottom"}, + sounds = default.node_sound_metal_defaults(), + drop = "ufowreck:alien_antigrav", + on_rightclick = function(pos, node, clicker) + local meta = minetest.get_meta(pos) + minetest.swap_node(pos,{name = "ufowreck:alien_antigrav"}) + meta:set_int("HV_EU_demand", 2000) + meta:set_string("infotext", "Alien Antigrav") + pos.y = pos.y + 1 + local yi + if meta:get_int("HV_EU_input") < 2000 then + minetest.sound_play("ag_on",{max_hear_distance = 16,pos = pos,gain = 1.0}) + for yi = 0, 100 do + if (minetest.get_node(pos)).name == "air" then + minetest.set_node(pos,{name = "ufowreck:ag_beam"}) + else + break + end + pos.y = pos.y + 1 + end + end + end, +}) + +minetest.register_node("ufowreck:alien_antigrav", { + description = "Alien Antigrav", + tiles = { + {name="alien_ag_top.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.00},}, + "alien_ag_bottom.png", + {name="alien_ag_side.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.00},}, + {name="alien_ag_side.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.00},}, + {name="alien_ag_side.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.00},}, + {name="alien_ag_side.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.00},}, + }, + light_source = 5, + groups = {cracky=2, technic_machine = 1, technic_hv = 1}, + connect_sides = {"bottom"}, + sounds = default.node_sound_metal_defaults(), + drop = "ufowreck:alien_antigrav", + after_place_node = function(pos,placer,itemstack) + local meta = minetest.get_meta(pos) + meta:set_string("infotext", "Alien Antigrav") + meta:set_int("HV_EU_demand", 2000) + pos.y = pos.y + 1 + local yi + if meta:get_int("HV_EU_input") < 2000 then + for yi = 0, 100 do + if (minetest.get_node(pos)).name == "air" then + minetest.set_node(pos,{name = "ufowreck:ag_beam"}) + else + break + end + pos.y = pos.y + 1 + end + end + end, + after_dig_node = function(pos) + pos.y = pos.y + 1 + local yi + for yi = 0, 100 do + if (minetest.get_node(pos)).name == "ufowreck:ag_beam" then + minetest.set_node(pos,{name = "air"}) + end + pos.y = pos.y + 1 + end + end, + on_rightclick = function(pos, node, clicker) + local meta = minetest.get_meta(pos) + minetest.swap_node(pos,{name = "ufowreck:alien_antigrav_off"}) + meta:set_int("HV_EU_demand", 0) + meta:set_string("infotext", "Alien Antigrav Off") + pos.y = pos.y + 1 + local yi + for yi = 0, 100 do + if (minetest.get_node(pos)).name == "ufowreck:ag_beam" then + minetest.set_node(pos,{name = "air"}) + end + pos.y = pos.y + 1 + end + end, +}) + +technic.register_machine("HV", "ufowreck:alien_antigrav", technic.receiver) +technic.register_machine("HV", "ufowreck:alien_antigrav_off", technic.receiver) + +minetest.register_node("ufowreck:ag_beam", { + description = "antigrav beam", + paramtype = "light", + tiles = { + "alien_ag_beam.png", + }, + drawtype = "nodebox", + paramtype = "light", + use_texture_alpha = true, + light_source = 14, + sunlight_propagates = true, + pointable = false, + diggable = false, + buildable_to = true, + walkable = false, + climbable = true, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_int("life", 12) + end, +}) + +minetest.register_abm({ + nodenames = {"ufowreck:alien_antigrav"}, + interval = 10, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local meta = minetest.get_meta(pos) + pos.y = pos.y + 1 + if meta:get_int("HV_EU_input") < 2000 then + local yi + for yi = 0, 100 do + if (minetest.get_node(pos)).name == "ufowreck:ag_beam" then + minetest.set_node(pos,{name = "air"}) + end + pos.y = pos.y + 1 + end + + else + + for yi = 0, 100 do + if (minetest.get_node(pos)).name == "air" then + minetest.set_node(pos,{name = "ufowreck:ag_beam"}) + else + break + end + pos.y = pos.y + 1 + end + end + end +}) + +minetest.register_craft({ + output = "ufowreck:alien_antigrav", + recipe = { + {"technic:copper_coil", "technic:silver_wire", "technic:copper_coil"}, + {"ufowreck:alien_control", "technic:hv_transformer", "ufowreck:alien_control"}, + {"ufowreck:alien_metal", "technic:hv_cable", "ufowreck:alien_metal"} + } +}) diff --git a/base.lua b/base.lua index 37ba5e8..9484d80 100644 --- a/base.lua +++ b/base.lua @@ -346,11 +346,12 @@ minetest.register_decoration({ deco_type = "schematic", place_on = {"default:stone", "default:dirt_with_coniferous_litter", "default:dirt_with_rainforest_litter", "default:dirt_with_snow", "default:snow", "default:permafrost_with_stones", "default:sand", "default:dirt_with_grass"}, - biomes = {"sandstone_desert_ocean", "desert_ocean", - "icesheet_ocean", "tundra_ocean", "taiga_ocean", "snowy_grassland_ocean", "grassland_ocean", "coniferous_forest_ocean", "deciduous_forest_ocean", "cold_desert_ocean", "savanna_ocean", - "rainforest_ocean", "underground", "floatland_coniferous_forest", "floatland_coniferous_forest_ocean"}, + biomes = {--"sandstone_desert_ocean", "desert_ocean", + --"tundra_ocean", "taiga_ocean", "snowy_grassland_ocean", "grassland_ocean", "coniferous_forest_ocean", "deciduous_forest_ocean", "cold_desert_ocean", "savanna_ocean", + --"rainforest_ocean", "underground", "floatland_coniferous_forest", "floatland_coniferous_forest_ocean", + "icesheet_ocean"}, sidelen = 5, - fill_ratio = 0.0000000000000000001, + fill_ratio = 0.00000000000000000001, schematic = ufowreck_base, rotation = rotx, y_min = -31000, diff --git a/init.lua b/init.lua index 61dfac4..50299db 100644 --- a/init.lua +++ b/init.lua @@ -7,6 +7,8 @@ dofile(modpath.."/tools.lua") dofile(modpath.."/miniufo.lua") dofile(modpath.."/lighter.lua") dofile(modpath.."/base.lua") +dofile(modpath.."/antigrav.lua") +dofile(modpath.."/teleport.lua") local _ = { name = "air", @@ -352,4 +354,4 @@ minetest.register_decoration({ y_min = -20, y_max = 31000, flags = {place_center_z = true, place_center_x = true}, -}) \ No newline at end of file +}) diff --git a/invader.lua b/invader.lua index 7afa3fc..e537070 100644 --- a/invader.lua +++ b/invader.lua @@ -28,8 +28,6 @@ mobs:register_mob("ufowreck:floob", { visual_size = {x=4, y=4}, makes_footstep_sound = true, sounds = { --- random = "amcaw_floob", --- damage = "amcaw_floobhurt", shoot_attack = "blaster_long", death = "amcaw_floobdeath", }, diff --git a/nodes.lua b/nodes.lua index 6d710eb..0cd7ff7 100644 --- a/nodes.lua +++ b/nodes.lua @@ -641,146 +641,6 @@ minetest.register_node("ufowreck:glow_plant", { light_source = 14, }) -minetest.register_node("ufowreck:pad", { - description = "Alien Teleport", - tiles = { - "scifi_nodes_pad.png", - "scifi_nodes_pad.png", - "scifi_nodes_pad.png", - "scifi_nodes_pad.png", - "scifi_nodes_pad.png", - "scifi_nodes_pad.png" - }, - drawtype = "nodebox", - paramtype = "light", - groups = {cracky=1, oddly_breakable_by_hand=1}, - light_source = 5, - on_construct = function(pos, node, placer) - local meta = minetest.get_meta(pos) - if position1 == nil then - position1 = pos - meta:set_int("type", 1) - elseif position2 == nil then - position2 = pos - meta:set_int("type", 2) --- else --- minetest.chat_send_player(placer:get_player_name(), "There can only be two teleportation pads at a time!") --- placer:get_player_name() get nil all time - end - end, - on_rightclick = function(pos, node, clicker) - local meta = minetest.get_meta(pos) - if meta:get_int("type") == 1 and position2 ~= nil and position1 ~= nil then - minetest.add_particlespawner( - 25, --amount - 1.5, --time - {x=pos.x-0.9, y=pos.y-0.3, z=pos.z-0.9}, --minpos - {x=pos.x+0.9, y=pos.y-0.3, z=pos.z+0.9}, --maxpos - {x=0, y=0, z=0}, --minvel - {x=0, y=0, z=0}, --maxvel - {x=-0,y=1,z=-0}, --minacc - {x=0,y=2,z=0}, --maxacc - 0.5, --minexptime - 1, --maxexptime - 2, --minsize - 5, --maxsize - false, --collisiondetection - "scifi_nodes_tp_part.png" --texture - ) - minetest.after(1, function() - local ppos = clicker:getpos() - if minetest.get_node({x=ppos.x, y=ppos.y, z=ppos.z}).name == "ufowreck:pad" then - clicker:setpos(position2) - end - local objs = minetest.env:get_objects_inside_radius(pos, 3) - for _, obj in pairs(objs) do - if obj:get_luaentity() and not obj:is_player() then - if obj:get_luaentity().name == "__builtin:item" then - local item1 = obj:get_luaentity().itemstring - local obj2 = minetest.env:add_entity(position2, "__builtin:item") - obj2:get_luaentity():set_item(item1) - obj:remove() - end - end - end - end) - elseif meta:get_int("type") == 2 and position1 ~= nil and position2 ~= nil then - minetest.add_particlespawner( - 25, --amount - 1.5, --time - {x=pos.x-0.9, y=pos.y-0.3, z=pos.z-0.9}, --minpos - {x=pos.x+0.9, y=pos.y-0.3, z=pos.z+0.9}, --maxpos - {x=0, y=0, z=0}, --minvel - {x=0, y=0, z=0}, --maxvel - {x=-0,y=1,z=-0}, --minacc - {x=0,y=2,z=0}, --maxacc - 0.5, --minexptime - 1, --maxexptime - 2, --minsize - 5, --maxsize - false, --collisiondetection - "scifi_nodes_tp_part.png" --texture - ) - minetest.after(1, function() - local ppos = clicker:getpos() - if minetest.get_node({x=ppos.x, y=ppos.y, z=ppos.z}).name == "ufowreck:pad" then - clicker:setpos(position1) - end - local objs = minetest.env:get_objects_inside_radius(pos, 3) - for _, obj in pairs(objs) do - if obj:get_luaentity() and not obj:is_player() then - if obj:get_luaentity().name == "__builtin:item" then - local item1 = obj:get_luaentity().itemstring - local obj2 = minetest.env:add_entity(position1, "__builtin:item") - obj2:get_luaentity():set_item(item1) - obj:remove() - end - end - end - end) - elseif position1 == nil and meta:get_int("type") ~= 2 then - position1 = pos - meta:set_int("type", 1) - minetest.chat_send_player(clicker:get_player_name(), "Teleporter 1 connected at "..minetest.pos_to_string(pos)) - elseif position2 == nil and meta:get_int("type") ~= 1 then - position2 = pos - meta:set_int("type", 2) - minetest.chat_send_player(clicker:get_player_name(), "Teleporter 2 connected at "..minetest.pos_to_string(pos)) - else - minetest.chat_send_player(clicker:get_player_name(), "Teleporter error!") - end - end, - on_destruct = function(pos, oldnode, placer) - local meta = minetest.get_meta(pos) - if meta:get_int("type") == 1 then - position1 = nil - meta:set_int("type", 0) - elseif meta:get_int("type") == 2 then - position2 = nil - meta:set_int("type", 0) - end - end, - node_box = { - type = "fixed", - fixed = { - {-0.9375, -0.5, -0.75, 0.875, -0.375, 0.75}, -- NodeBox1 - {-0.8125, -0.5, -0.875, 0.75, -0.375, 0.875}, -- NodeBox2 - {-0.875, -0.5, -0.8125, 0.8125, -0.375, 0.8125}, -- NodeBox3 - {-0.8125, -0.5, -0.75, 0.75, -0.3125, 0.75}, -- NodeBox4 - }, - sounds = default.node_sound_metal_defaults(), - } -}) - -minetest.register_craft({ - output = "ufowreck:pad", - recipe = { - {"ufowreck:alien_metal", "ufowreck:alien_metal", "ufowreck:alien_metal"}, - {"ufowreck:alien_metal", "ufowreck:alien_control", "ufowreck:alien_metal"}, - {"ufowreck:alien_metal", "ufowreck:alien_metal", "ufowreck:alien_metal"} - } -}) - minetest.register_node("ufowreck:powered_stand", { description = "Powered Stand", tiles = { diff --git a/sounds/ag_on.ogg b/sounds/ag_on.ogg new file mode 100644 index 0000000..f9ea2e2 Binary files /dev/null and b/sounds/ag_on.ogg differ diff --git a/sounds/amcaw_floob.1.ogg b/sounds/amcaw_floob.1.ogg deleted file mode 100644 index abe7832..0000000 Binary files a/sounds/amcaw_floob.1.ogg and /dev/null differ diff --git a/sounds/amcaw_floob.2.ogg b/sounds/amcaw_floob.2.ogg deleted file mode 100644 index f5678e9..0000000 Binary files a/sounds/amcaw_floob.2.ogg and /dev/null differ diff --git a/sounds/amcaw_floob.3.ogg b/sounds/amcaw_floob.3.ogg deleted file mode 100644 index 33b374c..0000000 Binary files a/sounds/amcaw_floob.3.ogg and /dev/null differ diff --git a/sounds/amcaw_floob.4.ogg b/sounds/amcaw_floob.4.ogg deleted file mode 100644 index d31b2f6..0000000 Binary files a/sounds/amcaw_floob.4.ogg and /dev/null differ diff --git a/sounds/amcaw_floob.5.ogg b/sounds/amcaw_floob.5.ogg deleted file mode 100644 index 5b57a7c..0000000 Binary files a/sounds/amcaw_floob.5.ogg and /dev/null differ diff --git a/sounds/amcaw_floob.6.ogg b/sounds/amcaw_floob.6.ogg deleted file mode 100644 index 664828c..0000000 Binary files a/sounds/amcaw_floob.6.ogg and /dev/null differ diff --git a/sounds/amcaw_floobhurt.1.ogg b/sounds/amcaw_floobhurt.1.ogg deleted file mode 100644 index deae1b0..0000000 Binary files a/sounds/amcaw_floobhurt.1.ogg and /dev/null differ diff --git a/sounds/amcaw_floobhurt.2.ogg b/sounds/amcaw_floobhurt.2.ogg deleted file mode 100644 index 9fed530..0000000 Binary files a/sounds/amcaw_floobhurt.2.ogg and /dev/null differ diff --git a/sounds/amcaw_floobhurt.3.ogg b/sounds/amcaw_floobhurt.3.ogg deleted file mode 100644 index 8ec12c1..0000000 Binary files a/sounds/amcaw_floobhurt.3.ogg and /dev/null differ diff --git a/sounds/amcaw_floobhurt.4.ogg b/sounds/amcaw_floobhurt.4.ogg deleted file mode 100644 index f63edbb..0000000 Binary files a/sounds/amcaw_floobhurt.4.ogg and /dev/null differ diff --git a/sounds/amcaw_floobhurt.5.ogg b/sounds/amcaw_floobhurt.5.ogg deleted file mode 100644 index c240be9..0000000 Binary files a/sounds/amcaw_floobhurt.5.ogg and /dev/null differ diff --git a/sounds/scifi_nodes_access_granted.ogg b/sounds/scifi_nodes_access_granted.ogg deleted file mode 100644 index ef5d541..0000000 Binary files a/sounds/scifi_nodes_access_granted.ogg and /dev/null differ diff --git a/sounds/scifi_nodes_access_refused.ogg b/sounds/scifi_nodes_access_refused.ogg deleted file mode 100644 index 2a4083c..0000000 Binary files a/sounds/scifi_nodes_access_refused.ogg and /dev/null differ diff --git a/sounds/scifi_nodes_digicode.ogg b/sounds/scifi_nodes_digicode.ogg deleted file mode 100644 index 4b5d4e4..0000000 Binary files a/sounds/scifi_nodes_digicode.ogg and /dev/null differ diff --git a/sounds/scifi_nodes_digicode_granted.ogg b/sounds/scifi_nodes_digicode_granted.ogg deleted file mode 100644 index c3c2579..0000000 Binary files a/sounds/scifi_nodes_digicode_granted.ogg and /dev/null differ diff --git a/sounds/scifi_nodes_digicode_refused.ogg b/sounds/scifi_nodes_digicode_refused.ogg deleted file mode 100644 index 92816e9..0000000 Binary files a/sounds/scifi_nodes_digicode_refused.ogg and /dev/null differ diff --git a/sounds/scifi_nodes_scanner_granted.ogg b/sounds/scifi_nodes_scanner_granted.ogg deleted file mode 100644 index 195a216..0000000 Binary files a/sounds/scifi_nodes_scanner_granted.ogg and /dev/null differ diff --git a/sounds/scifi_nodes_scanner_refused.ogg b/sounds/scifi_nodes_scanner_refused.ogg deleted file mode 100644 index d6c8363..0000000 Binary files a/sounds/scifi_nodes_scanner_refused.ogg and /dev/null differ diff --git a/sounds/scifi_nodes_switch.ogg b/sounds/scifi_nodes_switch.ogg deleted file mode 100644 index b1f9efc..0000000 Binary files a/sounds/scifi_nodes_switch.ogg and /dev/null differ diff --git a/sounds/scifi_nodes_wrong.ogg b/sounds/scifi_nodes_wrong.ogg deleted file mode 100644 index 2a4083c..0000000 Binary files a/sounds/scifi_nodes_wrong.ogg and /dev/null differ diff --git a/sounds/travelnet_travel.ogg b/sounds/travelnet_travel.ogg new file mode 100644 index 0000000..b39be8f Binary files /dev/null and b/sounds/travelnet_travel.ogg differ diff --git a/teleport.lua b/teleport.lua new file mode 100644 index 0000000..ec324ab --- /dev/null +++ b/teleport.lua @@ -0,0 +1,56 @@ +minetest.register_node("ufowreck:pad", { + description = "Alien Teleport", + tiles = { + "scifi_nodes_pad.png", + "scifi_nodes_pad.png", + "scifi_nodes_pad.png", + "scifi_nodes_pad.png", + "scifi_nodes_pad.png", + "scifi_nodes_pad.png" + }, + drawtype = "nodebox", + paramtype = "light", + groups = {cracky=1, oddly_breakable_by_hand=1}, + light_source = 5, + on_rightclick = function(pos, node, clicker) + minetest.add_particlespawner( + 25, --amount + 1.5, --time + {x=pos.x-0.9, y=pos.y-0.3, z=pos.z-0.9}, --minpos + {x=pos.x+0.9, y=pos.y-0.3, z=pos.z+0.9}, --maxpos + {x=0, y=0, z=0}, --minvel + {x=0, y=0, z=0}, --maxvel + {x=-0,y=1,z=-0}, --minacc + {x=0,y=2,z=0}, --maxacc + 0.5, --minexptime + 1, --maxexptime + 2, --minsize + 5, --maxsize + false, --collisiondetection + "scifi_nodes_tp_part.png" --texture + ) + minetest.after(1, function() + minetest.sound_play("travelnet_travel", {pos = pos, gain = 0.75, max_hear_distance = 10,}); + clicker:setpos({ x = pos.x + math.random(-1,1)*1000, y = pos.y, z = pos.z + math.random(-1,1)*1000}) + end) + end, + node_box = { + type = "fixed", + fixed = { + {-0.9375, -0.5, -0.75, 0.875, -0.375, 0.75}, -- NodeBox1 + {-0.8125, -0.5, -0.875, 0.75, -0.375, 0.875}, -- NodeBox2 + {-0.875, -0.5, -0.8125, 0.8125, -0.375, 0.8125}, -- NodeBox3 + {-0.8125, -0.5, -0.75, 0.75, -0.3125, 0.75}, -- NodeBox4 + }, + sounds = default.node_sound_metal_defaults(), + } +}) + +minetest.register_craft({ + output = "ufowreck:pad", + recipe = { + {"ufowreck:alien_metal", "ufowreck:alien_metal", "ufowreck:alien_metal"}, + {"ufowreck:alien_metal", "ufowreck:alien_control", "ufowreck:alien_metal"}, + {"ufowreck:alien_metal", "ufowreck:alien_metal", "ufowreck:alien_metal"} + } +}) diff --git a/textures/alien_ag_beam.png b/textures/alien_ag_beam.png new file mode 100644 index 0000000..7d531c3 Binary files /dev/null and b/textures/alien_ag_beam.png differ diff --git a/textures/alien_ag_bottom.png b/textures/alien_ag_bottom.png new file mode 100644 index 0000000..b01b7d5 Binary files /dev/null and b/textures/alien_ag_bottom.png differ diff --git a/textures/alien_ag_side.png b/textures/alien_ag_side.png new file mode 100644 index 0000000..8d1cdde Binary files /dev/null and b/textures/alien_ag_side.png differ diff --git a/textures/alien_ag_side_off.png b/textures/alien_ag_side_off.png new file mode 100644 index 0000000..82cbe31 Binary files /dev/null and b/textures/alien_ag_side_off.png differ diff --git a/textures/alien_ag_top.png b/textures/alien_ag_top.png new file mode 100644 index 0000000..e2645ae Binary files /dev/null and b/textures/alien_ag_top.png differ diff --git a/textures/alien_ag_top_off.png b/textures/alien_ag_top_off.png new file mode 100644 index 0000000..8032bc2 Binary files /dev/null and b/textures/alien_ag_top_off.png differ