]> git.lizzy.rs Git - Crafter.git/commitdiff
Beds that respawn players to them
authorOilboi <oil.boi.minetest@gmail.com>
Sun, 16 Feb 2020 04:37:31 +0000 (23:37 -0500)
committerOilboi <oil.boi.minetest@gmail.com>
Sun, 16 Feb 2020 04:37:31 +0000 (23:37 -0500)
mods/bed/init.lua [new file with mode: 0644]
mods/bed/textures/bed.png [new file with mode: 0755]
mods/bed/textures/bed_end.png [new file with mode: 0755]
mods/bed/textures/bed_front.png [new file with mode: 0755]
mods/bed/textures/bed_side.png [new file with mode: 0755]
mods/bed/textures/bed_side_end.png [new file with mode: 0755]
mods/bed/textures/bed_top.png [new file with mode: 0755]
mods/bed/textures/bed_top_end.png [new file with mode: 0755]
mods/tnt/init.lua [new file with mode: 0644]
mods/utility/furnace.lua
todo.txt

diff --git a/mods/bed/init.lua b/mods/bed/init.lua
new file mode 100644 (file)
index 0000000..bb6e9ab
--- /dev/null
@@ -0,0 +1,140 @@
+--remember to delete spawnpoint when bed removed
+
+local mod_storage = minetest.get_mod_storage()
+local time_night = {19500,4750}
+
+--node boxes are from mineclone2
+local function create_spawnpoint(pos,clicker)
+       local name = clicker:get_player_name()
+       local string_pos = minetest.pos_to_string(pos)
+       mod_storage:set_string(name, string_pos)
+       minetest.chat_send_player(name, "YOUR RESPAWN POINT HAS BEEN SET!")
+end
+
+--delete player spawnpoint if remove bed
+local function remove_spawnpoint(pos,clicker)
+       local name = clicker:get_player_name()
+       local string_pos = mod_storage:get_string(name)
+       if string_pos ~= "" then
+               local pos2 = minetest.string_to_pos(string_pos)
+               if vector.equals(pos,pos2) then
+                       mod_storage:set_string(name, "")
+                       minetest.chat_send_player(name, "YOUR RESPAWN POINT HAS BEEN REMOVED!")
+               end
+       end
+end
+
+--try to send the player to their bed
+minetest.register_on_respawnplayer(function(player)
+       local name = player:get_player_name()
+       local string_pos = mod_storage:get_string(name)
+       if string_pos ~= "" then
+               local pos = minetest.string_to_pos(string_pos)
+               player:setpos(pos)
+               return(true)
+       end
+end)
+--these are beds
+minetest.register_node("bed:bed", {
+    description = "Bed",
+    inventory_image = "bed.png",
+    wield_image = "bed.png",
+    paramtype2 = "facedir",
+    tiles = {"bed_top.png^[transform1","wood.png","bed_side.png","bed_side.png^[transform4","bed_front.png","nothing.png"},
+    groups = {wood = 1, hard = 1, axe = 1, hand = 3, instant=1},
+    sounds = main.woodSound(),
+    drawtype = "nodebox",
+       node_placement_prediction = "",
+       on_construct = function(pos)
+               
+               local param2 = minetest.get_node(pos).param2
+               local facedir = minetest.facedir_to_dir(param2)
+               
+               --cancel if not air
+               if minetest.get_node(vector.add(pos,facedir)).name ~= "air" then
+                       minetest.remove_node(pos)
+                       local obj = minetest.add_item(pos, "bed:bed")
+                       obj:get_luaentity().collection_timer = 2
+                       return
+               end
+               
+               
+               facedir = vector.multiply(facedir,-1)
+               param2 = minetest.dir_to_facedir(facedir, false)
+               
+               
+               minetest.add_node(pos,{name="bed:bed_front", param2=param2})
+                       
+               facedir = vector.multiply(facedir,-1)
+               minetest.add_node(vector.add(pos,facedir),{name="bed:bed_back", param2=param2})
+       end,
+})
+
+minetest.register_node("bed:bed_front", {
+    description = "Bed",
+    paramtype = "light",
+    paramtype2 = "facedir",
+    tiles = {"bed_top.png^[transform1","wood.png","bed_side.png","bed_side.png^[transform4","bed_front.png","nothing.png"},
+    groups = {wood = 1, hard = 1, axe = 1, hand = 3, instant=1,bouncy=50},
+    sounds = main.woodSound(),
+    drawtype = "nodebox",
+    node_box = {
+               type = "fixed",
+               fixed = {
+                               {-0.5, -5/16, -0.5, 0.5, 0.06, 0.5},
+                               {-0.5, -0.5, 0.5, -5/16, -5/16, 5/16},
+                               {0.5, -0.5, 0.5, 5/16, -5/16, 5/16},
+                       },
+               },
+       node_placement_prediction = "",
+       drop = "bed:bed",
+       on_dig = function(pos, node, digger)
+               local param2 = minetest.get_node(pos).param2
+               local facedir = minetest.facedir_to_dir(param2) 
+               facedir = vector.multiply(facedir,-1)
+               local obj = minetest.add_item(pos, "bed:bed")
+               obj:get_luaentity().collection_timer = 2
+               minetest.remove_node(pos)
+               minetest.remove_node(vector.add(pos,facedir))
+               remove_spawnpoint(pos,digger)
+               remove_spawnpoint(vector.add(pos,facedir),digger)
+       end,
+       on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
+               create_spawnpoint(pos,clicker)
+       end,
+})
+
+minetest.register_node("bed:bed_back", {
+    description = "Bed",
+    paramtype = "light",
+    paramtype2 = "facedir",
+    tiles = {"bed_top_end.png^[transform1","wood.png","bed_side_end.png","bed_side_end.png^[transform4","nothing.png","bed_end.png"},
+    groups = {wood = 1, hard = 1, axe = 1, hand = 3, instant=1,bouncy=50},
+    sounds = main.woodSound(),
+    drawtype = "nodebox",
+    node_placement_prediction = "",
+    node_box = {
+               type = "fixed",
+               fixed = {
+                               {-0.5, -5/16, -0.5, 0.5, 0.06, 0.5},
+                               {-0.5, -0.5, -0.5, -5/16, -5/16, -5/16},
+                               {0.5, -0.5, -0.5, 5/16, -5/16, -5/16},
+                       },
+               },
+       drop = "bed:bed",
+       on_dig = function(pos, node, digger)
+               local param2 = minetest.get_node(pos).param2
+               local facedir = minetest.facedir_to_dir(param2) 
+               local obj = minetest.add_item(pos, "bed:bed")
+               obj:get_luaentity().collection_timer = 2
+               minetest.remove_node(pos)
+               minetest.remove_node(vector.add(pos,facedir))
+               remove_spawnpoint(pos,digger)
+               remove_spawnpoint(vector.add(pos,facedir),digger)               
+       end,
+       on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
+               local param2 = minetest.get_node(pos).param2
+               local facedir = minetest.facedir_to_dir(param2) 
+               create_spawnpoint(vector.add(pos,facedir),clicker)
+       end,
+})
diff --git a/mods/bed/textures/bed.png b/mods/bed/textures/bed.png
new file mode 100755 (executable)
index 0000000..20fcd7c
Binary files /dev/null and b/mods/bed/textures/bed.png differ
diff --git a/mods/bed/textures/bed_end.png b/mods/bed/textures/bed_end.png
new file mode 100755 (executable)
index 0000000..103570e
Binary files /dev/null and b/mods/bed/textures/bed_end.png differ
diff --git a/mods/bed/textures/bed_front.png b/mods/bed/textures/bed_front.png
new file mode 100755 (executable)
index 0000000..39fb8c5
Binary files /dev/null and b/mods/bed/textures/bed_front.png differ
diff --git a/mods/bed/textures/bed_side.png b/mods/bed/textures/bed_side.png
new file mode 100755 (executable)
index 0000000..638bdd5
Binary files /dev/null and b/mods/bed/textures/bed_side.png differ
diff --git a/mods/bed/textures/bed_side_end.png b/mods/bed/textures/bed_side_end.png
new file mode 100755 (executable)
index 0000000..b324086
Binary files /dev/null and b/mods/bed/textures/bed_side_end.png differ
diff --git a/mods/bed/textures/bed_top.png b/mods/bed/textures/bed_top.png
new file mode 100755 (executable)
index 0000000..a418835
Binary files /dev/null and b/mods/bed/textures/bed_top.png differ
diff --git a/mods/bed/textures/bed_top_end.png b/mods/bed/textures/bed_top_end.png
new file mode 100755 (executable)
index 0000000..77668f2
Binary files /dev/null and b/mods/bed/textures/bed_top_end.png differ
diff --git a/mods/tnt/init.lua b/mods/tnt/init.lua
new file mode 100644 (file)
index 0000000..d677232
--- /dev/null
@@ -0,0 +1 @@
+--minetest.bulk_set_node({pos1, pos2, pos3, ...}, node) --use to create easy explosions!!
index eba57c9fe338462e543b1f06129a2b2f225482c2..875c373856d884ef55699f72457b8eeb4608d520 100644 (file)
@@ -452,7 +452,7 @@ minetest.register_entity("utility:fuel", {
                        if fuel ~= 0 then
                                local cookie = self.check_cook(self)
                                if cookie ~= 0 then
-                                       print("starting timer")
+                                       --print("starting timer")
                                        self.spawn_particles(self,fuel)
                                        self.cooking_timer = cookie
                                        self.cooking = true
@@ -500,7 +500,7 @@ minetest.register_entity("utility:fuel", {
                        
                        --reset timer
                        if self.cooking == true then
-                               print("resetting timer")
+                               --print("resetting timer")
                                local time = minetest.get_craft_result({method =  "fuel", width = 1, items = {ItemStack(self.itemstring)}}).time
                                self.fuel_timer = time
                        end
index 8d8d4e845c5694a04f7ff967d7e98665a04140d3..a33e60f8f8cc1513781e30e533ec3da3ec35e848 100644 (file)
--- a/todo.txt
+++ b/todo.txt
 --vignette
 --furnace
 --add signs with vanessae's sign library
-crafting recipes
-make trees drop items on treecapitator
+--crafting recipes
+beds - set respawn point
+make treecapitator cut down whole tree if using axe - make trees drop items on treecapitator
 crafting bench
 make a mob?
 fishing
 bows
-beds - set respawn point
 3d character