From 5f730ac860fe2c330a07948d2a54b5cb82c71403 Mon Sep 17 00:00:00 2001 From: paramat Date: Mon, 16 May 2016 05:08:33 +0100 Subject: [PATCH] Add storage unit. Add photovoltaic panel. Make some nodes dig immediate --- functions.lua | 2 +- init.lua | 7 +- nodes.lua | 88 +++++++++++++++++++++-- textures/moonrealm_photovoltaic_base.png | Bin 0 -> 142 bytes textures/moonrealm_photovoltaic_side.png | Bin 0 -> 203 bytes textures/moonrealm_photovoltaic_top.png | Bin 0 -> 145 bytes textures/moonrealm_storage_front.png | Bin 0 -> 180 bytes textures/moonrealm_storage_side.png | Bin 0 -> 142 bytes 8 files changed, 89 insertions(+), 8 deletions(-) create mode 100644 textures/moonrealm_photovoltaic_base.png create mode 100644 textures/moonrealm_photovoltaic_side.png create mode 100644 textures/moonrealm_photovoltaic_top.png create mode 100644 textures/moonrealm_storage_front.png create mode 100644 textures/moonrealm_storage_side.png diff --git a/functions.lua b/functions.lua index 082d002..af779d6 100644 --- a/functions.lua +++ b/functions.lua @@ -135,7 +135,7 @@ end) minetest.register_abm({ nodenames = {"moonrealm:air"}, neighbors = {"moonrealm:vacuum"}, - interval = 2, + interval = 4, chance = 64, catch_up = false, action = function(pos, node, active_object_count, active_object_count_wider) diff --git a/init.lua b/init.lua index 58d8f0e..b766e5e 100644 --- a/init.lua +++ b/init.lua @@ -532,11 +532,15 @@ minetest.register_on_newplayer(function(player) inv:add_item("main", "default:shovel_diamond 4") inv:add_item("main", "default:axe_diamond 4") inv:add_item("main", "default:apple 64") + inv:add_item("main", "moonrealm:photovoltaic 16") + inv:add_item("main", "moonrealm:light 4") + inv:add_item("main", "moonrealm:glass 4") + inv:add_item("main", "moonrealm:storage 4") inv:add_item("main", "moonrealm:airlock 4") inv:add_item("main", "moonrealm:airgen 4") inv:add_item("main", "moonrealm:hlsource 4") inv:add_item("main", "moonrealm:sapling 4") - inv:add_item("main", "moonrealm:spacesuit 2") + inv:add_item("main", "moonrealm:spacesuit 4") -- create spawn egg local vm = minetest.get_voxel_manip() @@ -588,6 +592,7 @@ minetest.register_on_respawnplayer(function(player) local inv = player:get_inventory() inv:add_item("main", "default:pick_diamond") + inv:add_item("main", "default:shovel_diamond 4") inv:add_item("main", "default:apple 16") inv:add_item("main", "moonrealm:spacesuit") diff --git a/nodes.lua b/nodes.lua index 300cc72..201ccc9 100644 --- a/nodes.lua +++ b/nodes.lua @@ -119,7 +119,7 @@ minetest.register_node("moonrealm:airgen", { description = "Air Generator", tiles = {"moonrealm_airgen.png"}, is_ground_content = false, - groups = {cracky = 3}, + groups = {dig_immediate = 3}, sounds = default.node_sound_stone_defaults(), on_construct = function(pos) local px = pos.x @@ -185,7 +185,7 @@ minetest.register_node("moonrealm:airgen_empty", { description = "Air Generator Empty", tiles = {"moonrealm_airgen_empty.png"}, is_ground_content = false, - groups = {cracky = 3}, + groups = {dig_immediate = 3}, sounds = default.node_sound_stone_defaults(), }) @@ -269,7 +269,7 @@ minetest.register_node("moonrealm:airlock", { light_source = 14, is_ground_content = false, walkable = false, - groups = {cracky = 3}, + groups = {dig_immediate = 3}, sounds = default.node_sound_stone_defaults(), }) @@ -294,7 +294,7 @@ minetest.register_node("moonrealm:sapling", { paramtype = "light", is_ground_content = false, walkable = false, - groups = {snappy = 2, dig_immediate = 3, flammable = 2}, + groups = {dig_immediate = 3}, sounds = default.node_sound_defaults(), }) @@ -322,7 +322,7 @@ minetest.register_node("moonrealm:light", { paramtype = "light", light_source = 14, is_ground_content = false, - groups = {cracky = 3, dig_immediate = 3}, + groups = {dig_immediate = 3}, sounds = default.node_sound_glass_defaults(), }) @@ -388,10 +388,86 @@ minetest.register_node("moonrealm:shell", { description = "Spawn Shell", tiles = {"moonrealm_shell.png"}, is_ground_content = false, - groups = {cracky = 3}, + groups = {dig_immediate = 3}, + drop = "", sounds = default.node_sound_stone_defaults(), }) +minetest.register_node("moonrealm:photovoltaic", { + description = "Photovoltaic Panel", + tiles = {"moonrealm_photovoltaic_top.png", + "moonrealm_photovoltaic_base.png", + "moonrealm_photovoltaic_side.png"}, + is_ground_content = false, + groups = {dig_immediate = 3}, + sounds = default.node_sound_glass_defaults(), +}) + +-- Storage + +local chest_formspec = + "size[8,9]" .. + default.gui_bg .. + default.gui_bg_img .. + default.gui_slots .. + "list[current_name;main;0,0.3;8,4;]" .. + "list[current_player;main;0,4.85;8,1;]" .. + "list[current_player;main;0,6.08;8,3;8]" .. + "listring[current_name;main]" .. + "listring[current_player;main]" .. + default.get_hotbar_bg(0,4.85) + +minetest.register_node("moonrealm:storage", { + description = "Storage", + tiles = {"moonrealm_storage_side.png", "moonrealm_storage_side.png", + "moonrealm_storage_side.png", "moonrealm_storage_side.png", + "moonrealm_storage_side.png", "moonrealm_storage_front.png"}, + paramtype2 = "facedir", + groups = {dig_immediate = 3}, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), + + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", chest_formspec) + meta:set_string("infotext", "Storage") + local inv = meta:get_inventory() + inv:set_size("main", 8 * 4) + end, + + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end, + + on_metadata_inventory_move = function(pos, from_list, from_index, + to_list, to_index, count, player) + minetest.log("action", player:get_player_name() .. + " moves stuff in storage at " .. minetest.pos_to_string(pos)) + end, + + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name() .. + " moves " .. stack:get_name() .. + " to storage at " .. minetest.pos_to_string(pos)) + end, + + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name() .. + " takes " .. stack:get_name() .. + " from storage at " .. minetest.pos_to_string(pos)) + end, + + on_blast = function(pos) + local drops = {} + default.get_inventory_drops(pos, "main", drops) + drops[#drops + 1] = "moonrealm:storage" + minetest.remove_node(pos) + return drops + end, +}) + -- Items minetest.register_craftitem("moonrealm:spacesuit", { diff --git a/textures/moonrealm_photovoltaic_base.png b/textures/moonrealm_photovoltaic_base.png new file mode 100644 index 0000000000000000000000000000000000000000..e6f289d54907e23151b835d0a201b497720ef9ee GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|oCO|{#S9F5M?jcysy3fAP>{XE z)7O>#0jmJBiRApep2a{RT~8Os5RLQ6d+Pt&F>5xoHa0%IwKdyim0i^r4PoZagpk84 j*s?McX4+Ppc}g)nPvK0yBD>83sFA_b)z4*}Q$iB}@dqaw literal 0 HcmV?d00001 diff --git a/textures/moonrealm_photovoltaic_side.png b/textures/moonrealm_photovoltaic_side.png new file mode 100644 index 0000000000000000000000000000000000000000..855d68d5acaed98938ff2cea1464b6644f7d2497 GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|oCO|{#S9F5M?jcysy3fAP>{XE z)7O>#0jmJBj`r0>u2n#xEKe855RLQ6PbRKUR$w*AySr5)#XzkL6nz&)v{= v#^8ORy5N{XE z)7O>#0jmJBu7TT~z1M+42A(dCAsXkCpG;hze1KuTyvZl6E5-@TIvejr9F;8SG@g{j nEX>^5kixsTPU0&w9|MDVzxc+6h8@3wdKo-j{an^LB{Ts5U+gE- literal 0 HcmV?d00001 diff --git a/textures/moonrealm_storage_front.png b/textures/moonrealm_storage_front.png new file mode 100644 index 0000000000000000000000000000000000000000..8a6b3dd9ea6f5a1c46c5a4588a999cd0c42c7fe2 GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|oCO|{#S9F5M?jcysy3fAP>{XE z)7O>#0jmJBfcpC91?zx9!JaOTAsXkC_tgKlW7ceFZESpaYiqX4D!ZyL8r*YS1GaA6 zYI=n&#ZGRsB99uI5MvjcuCDGSlLTfxd=CCl# XnIM|Ibn6-gpz#czu6{1-oD!M literal 0 HcmV?d00001 diff --git a/textures/moonrealm_storage_side.png b/textures/moonrealm_storage_side.png new file mode 100644 index 0000000000000000000000000000000000000000..9adc6f0797bc80dc97573351a126d16c4e683eb4 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|oCO|{#S9F5M?jcysy3fAP>{XE z)7O>#0jmJBpwVr`r7S=pT~8Os5RLQ6d+Pt&F>5xoHa0%IwKdyim0i^r4PoZagpk84 j*s?McX4+Ppc}g)nPvK0yBD>83sFA_b)z4*}Q$iB}#OWq^ literal 0 HcmV?d00001