From c2d57c6cb49ce23f8485708f435c325f132742bb Mon Sep 17 00:00:00 2001 From: Jordach Date: Thu, 23 Jul 2015 14:02:51 +0100 Subject: [PATCH] add forcefields, size is 31k, can be configured. --- mods/mapgen/forcefields.lua | 53 ++++++++++++++++++++++++++ mods/mapgen/init.lua | 17 ++------- mods/mapgen/textures/mapgen_force.png | Bin 231 -> 188 bytes 3 files changed, 56 insertions(+), 14 deletions(-) create mode 100644 mods/mapgen/forcefields.lua diff --git a/mods/mapgen/forcefields.lua b/mods/mapgen/forcefields.lua new file mode 100644 index 0000000..e6851de --- /dev/null +++ b/mods/mapgen/forcefields.lua @@ -0,0 +1,53 @@ +--forcefields, used to limit the world size. Once the walls have been assembled you can disable the mod by commenting out line 13 for mapgen/init.lua + +-- configure world size here - max = 30000, min = 32 (can be smaller, spawn might be outside of area.) + +-- note: default settings are 31000 + +-- Warning: you will have to set all six dimensions. + +x_pos_position = 31000 +x_nega_position = -31000 + +y_pos_position = 31000 +y_nega_position = -31000 + +z_pos_position = 31000 +z_nega_position = -31000 + +minetest.register_node("mapgen:force_field", { + description = "Alien Forcefield", + tiles = {"mapgen_force.png"}, + sunlight_propagates = true, + paramtype = "light", + drawtype = "glasslike", + inventory_image = minetest.inventorycube("mapgen_force_inv_wield.png"), + wield_image = minetest.inventorycube("mapgen_force_inv_wield.png"), + is_ground_content = true, + groups = {not_in_creative_inventory=1}, +}) + +-- sorry, inefficient code - can't do any better yet. not unless a contributor wants to improve it. + +minetest.register_abm({ + nodenames = {"air"}, + interval = 2, + chance = 1, + action = function(pos, node) + if x_nega_position == pos.x then + minetest.set_node(pos, {name="mapgen:force_field"}) + elseif x_pos_position == pos.x then + minetest.set_node(pos, {name="mapgen:force_field"}) + elseif y_nega_position == pos.y then + minetest.set_node(pos, {name="mapgen:force_field"}) + elseif y_pos_position == pos.y then + minetest.set_node(pos, {name="mapgen:force_field"}) + elseif z_nega_position == pos.z then + minetest.set_node(pos, {name="mapgen:force_field"}) + elseif z_pos_position == pos.z then + minetest.set_node(pos, {name="mapgen:force_field"}) + else + --no forcefields constructed. + end + end, +}) \ No newline at end of file diff --git a/mods/mapgen/init.lua b/mods/mapgen/init.lua index ccd90a4..770654d 100644 --- a/mods/mapgen/init.lua +++ b/mods/mapgen/init.lua @@ -9,6 +9,9 @@ dofile(minetest.get_modpath("mapgen").."/nodes.lua") dofile(minetest.get_modpath("mapgen").."/flowers.lua") dofile(minetest.get_modpath("mapgen").."/functions.lua") +-- enable forcefields (useful for server admins +dofile(minetest.get_modpath("mapgen").."/forcefields.lua") + minetest.register_alias("mapgen_stair_cobble", "stairs:stair_cobble") minetest.register_alias("mapgen_water_source", "mapgen:water_source") minetest.register_alias("mapgen_lava_source", "mapgen:lava_source") @@ -860,18 +863,4 @@ minetest.register_node(":base:leaves", { drop = 'mapgen:dirt', groups = {crumbly=3, soil=1, not_in_creative_inventory=1}, sounds = default.node_sound_dirt_defaults(), -}) - -minetest.register_node("mapgen:force_field", { - description = "Alien Forcefield", - tiles = { - {name="mapgen_force.png", animation={type="vertical_frames", aspect_w=128, aspect_h=128, length=1.5}}, - }, - sunlight_propagates = true, - paramtype = "light", - drawtype = "glasslike", - inventory_image = minetest.inventorycube("mapgen_force_inv_wield.png"), - wield_image = minetest.inventorycube("mapgen_force_inv_wield.png"), - is_ground_content = true, - groups = {not_in_creative_inventory=1}, }) \ No newline at end of file diff --git a/mods/mapgen/textures/mapgen_force.png b/mods/mapgen/textures/mapgen_force.png index cf6f0f23104f57d0d8c74de779230c857901a2cf..a3459e347a54ebec89682d529662dcf77b751fd8 100644 GIT binary patch delta 114 zcmV-&0FD3W0lWc_7YYyv1^@s6AM^iVks&@^2Nw)DIT6x&`v3p{JV``BR5;6HU|9d0 z0R@oCM+Q#&{}Zj*Y5#vz`GM0+)i9vUupz2>_=N#xBEhX0Bk_@?875DWW=g{V07BDv UzpeHadH?_b07*qoM6N<$f`fi4tZM1T87LGWovfkL(z;Z9ozN|g*Yd@FUTiyHS-7jg-VOa61Lcu6OAnC#fehB@A zpQV$rnW6buy@Cgi#0!w<0{aW{974>08~-^>kZ6(e*)96;KTo=v9MDQm22WQ%mvv4F FO#pwcINAUJ