From 145e617ba007db98517f7ac9ff7cdea97ba76ad6 Mon Sep 17 00:00:00 2001 From: Maksim Gamarnik Date: Sun, 7 Feb 2016 03:27:04 +0200 Subject: [PATCH] subgame update | part 2/2 Very big update! =) --- .../default/files/3d_armor/armor.conf.example | 37 - games/default/files/DOM/watch/depends.txt | 3 +- games/default/files/boats/init.lua | 55 +- .../files/bonusbox/textures/chest_bottom.png | Bin 853 -> 848 bytes games/default/files/builtin_item/README.md | 25 - games/default/files/builtin_item/depends.txt | 2 - games/default/files/builtin_item/init.lua | 415 ----------- .../builtin_item/sounds/builtin_item_lava.ogg | Bin 37367 -> 0 bytes .../files/builtin_item/textures/tnt_smoke.png | Bin 170 -> 0 bytes games/default/files/compass/depends.txt | 2 - .../files/craftingpack/crafting/init.lua | 4 +- games/default/files/creative/depends.txt | 2 - games/default/files/creative/init.lua | 20 +- games/default/files/default/functions.lua | 46 +- games/default/files/default/mapgen.lua | 22 +- games/default/files/default/nodes.lua | 65 +- .../files/default/schematics/apple_tree.mts | Bin 163 -> 165 bytes .../schematics/apple_tree_from_sapling.mts | Bin 165 -> 167 bytes .../files/default/textures/compass_0.png | Bin 205 -> 0 bytes .../files/default/textures/compass_1.png | Bin 208 -> 0 bytes .../files/default/textures/compass_10.png | Bin 208 -> 0 bytes .../files/default/textures/compass_11.png | Bin 207 -> 0 bytes .../files/default/textures/compass_2.png | Bin 337 -> 0 bytes .../files/default/textures/compass_3.png | Bin 332 -> 0 bytes .../files/default/textures/compass_4.png | Bin 207 -> 0 bytes .../files/default/textures/compass_5.png | Bin 206 -> 0 bytes .../files/default/textures/compass_6.png | Bin 206 -> 0 bytes .../files/default/textures/compass_7.png | Bin 209 -> 0 bytes .../files/default/textures/compass_8.png | Bin 208 -> 0 bytes .../files/default/textures/compass_9.png | Bin 206 -> 0 bytes .../textures/crafting_formspec_furnace.png | Bin 1973 -> 1841 bytes .../textures/crafting_formspec_workbench.png | Bin 2018 -> 1924 bytes .../textures/default_furnace_fire_bg.png | Bin 183 -> 171 bytes .../textures/default_furnace_fire_fg.png | Bin 283 -> 273 bytes .../textures/default_torch_animated.png | Bin 535 -> 0 bytes .../default_torch_on_ceiling_animated.png | Bin 226 -> 0 bytes .../default_torch_on_floor_animated.png | Bin 223 -> 0 bytes .../files/default/textures/dye_black.png | Bin 281 -> 0 bytes .../files/default/textures/dye_blue.png | Bin 314 -> 0 bytes .../files/default/textures/dye_brown.png | Bin 285 -> 0 bytes .../files/default/textures/dye_cyan.png | Bin 298 -> 0 bytes .../files/default/textures/dye_dark_green.png | Bin 285 -> 0 bytes .../files/default/textures/dye_dark_grey.png | Bin 246 -> 0 bytes .../files/default/textures/dye_green.png | Bin 246 -> 0 bytes .../files/default/textures/dye_grey.png | Bin 271 -> 0 bytes .../files/default/textures/dye_lightblue.png | Bin 249 -> 0 bytes .../files/default/textures/dye_magenta.png | Bin 243 -> 0 bytes .../files/default/textures/dye_orange.png | Bin 283 -> 0 bytes .../files/default/textures/dye_pink.png | Bin 246 -> 0 bytes .../files/default/textures/dye_red.png | Bin 289 -> 0 bytes .../files/default/textures/dye_violet.png | Bin 246 -> 0 bytes .../files/default/textures/dye_white.png | Bin 340 -> 0 bytes .../files/default/textures/dye_yellow.png | Bin 318 -> 0 bytes .../files/default/textures/watch_a0.png | Bin 294 -> 0 bytes .../files/default/textures/watch_a1.png | Bin 301 -> 0 bytes .../files/default/textures/watch_a10.png | Bin 297 -> 0 bytes .../files/default/textures/watch_a11.png | Bin 297 -> 0 bytes .../files/default/textures/watch_a2.png | Bin 297 -> 0 bytes .../files/default/textures/watch_a3.png | Bin 295 -> 0 bytes .../files/default/textures/watch_a4.png | Bin 295 -> 0 bytes .../files/default/textures/watch_a5.png | Bin 295 -> 0 bytes .../files/default/textures/watch_a6.png | Bin 289 -> 0 bytes .../files/default/textures/watch_a7.png | Bin 294 -> 0 bytes .../files/default/textures/watch_a8.png | Bin 297 -> 0 bytes .../files/default/textures/watch_a9.png | Bin 297 -> 0 bytes .../files/default/textures/wieldhand.png | Bin 833 -> 33886 bytes .../files/default/textures/wool_black.png | Bin 562 -> 0 bytes .../files/default/textures/wool_blue.png | Bin 676 -> 0 bytes .../files/default/textures/wool_brown.png | Bin 588 -> 0 bytes .../files/default/textures/wool_cyan.png | Bin 650 -> 0 bytes .../default/textures/wool_dark_green.png | Bin 573 -> 0 bytes .../files/default/textures/wool_dark_grey.png | Bin 578 -> 0 bytes .../files/default/textures/wool_green.png | Bin 691 -> 0 bytes .../files/default/textures/wool_grey.png | Bin 650 -> 0 bytes .../files/default/textures/wool_magenta.png | Bin 693 -> 0 bytes .../files/default/textures/wool_orange.png | Bin 602 -> 0 bytes .../files/default/textures/wool_pink.png | Bin 718 -> 0 bytes .../files/default/textures/wool_red.png | Bin 666 -> 0 bytes .../files/default/textures/wool_violet.png | Bin 696 -> 0 bytes .../files/default/textures/wool_white.png | Bin 625 -> 0 bytes .../files/default/textures/wool_yellow.png | Bin 680 -> 0 bytes games/default/files/default/tools.lua | 4 +- games/default/files/dropondie/init.lua | 19 +- games/default/files/dye/README.txt | 4 +- games/default/files/dye/depends.txt | 2 - games/default/files/dye/init.lua | 194 ++---- games/default/files/fire/README.txt | 8 +- .../fire/sounds/fire_extinguish_flame.ogg | Bin 6499 -> 0 bytes games/default/files/flowers/init.lua | 164 ++--- .../flowers_mushroom_spores_brown.png | Bin 94 -> 0 bytes .../textures/flowers_mushroom_spores_red.png | Bin 92 -> 0 bytes .../files/give_initial_stuff/depends.txt | 3 - .../default/files/give_initial_stuff/init.lua | 5 +- games/default/files/hud/LICENSE.txt | 659 +++++------------- games/default/files/hud/README.txt | 4 +- games/default/files/hud/builtin.lua | 8 +- .../default/files/hud/textures/hud_air_fg.png | Bin 713 -> 359 bytes .../files/hud/textures/hud_armor_bg.png | Bin 305 -> 212 bytes .../files/hud/textures/hud_armor_fg.png | Bin 666 -> 346 bytes .../files/hud/textures/hud_heart_bg.png | Bin 386 -> 249 bytes .../files/hud/textures/hud_heart_fg.png | Bin 681 -> 362 bytes .../files/hud/textures/hud_hunger_bg.png | Bin 392 -> 266 bytes .../files/hud/textures/hud_hunger_fg.png | Bin 788 -> 392 bytes games/default/files/hunger/LICENSE.txt | 659 +++++------------- games/default/files/hunger/README.txt | 4 +- games/default/files/item_drop/README.txt | 5 +- games/default/files/item_drop/init.lua | 435 +++++++++++- games/default/files/lightcorrect/README.txt | 4 +- games/default/files/lightcorrect/init.lua | 4 +- games/default/files/mobs/api.lua | 14 +- games/default/files/mobs/bunny.lua | 7 +- games/default/files/mobs/crafts.lua | 23 +- games/default/files/mobs/dog.lua | 2 +- games/default/files/mobs/init.lua | 1 + games/default/files/mobs/pig.lua | 7 +- games/default/files/mobs/rat.lua | 8 +- games/default/files/mobs/sheep.lua | 1 + games/default/files/mobs/spider.lua | 2 +- .../files/mobs/textures/mobs_blood.png | Bin 155 -> 205 bytes .../files/mobs/textures/mobs_sheep_black.png | Bin 693 -> 1491 bytes .../files/mobs/textures/mobs_sheep_blue.png | Bin 733 -> 1504 bytes .../files/mobs/textures/mobs_sheep_brown.png | Bin 692 -> 1504 bytes .../files/mobs/textures/mobs_sheep_cyan.png | Bin 768 -> 1504 bytes .../mobs/textures/mobs_sheep_dark_green.png | Bin 787 -> 1500 bytes .../mobs/textures/mobs_sheep_dark_grey.png | Bin 732 -> 1504 bytes .../files/mobs/textures/mobs_sheep_green.png | Bin 731 -> 1504 bytes .../files/mobs/textures/mobs_sheep_grey.png | Bin 707 -> 1504 bytes .../mobs/textures/mobs_sheep_magenta.png | Bin 738 -> 1504 bytes .../files/mobs/textures/mobs_sheep_orange.png | Bin 701 -> 1504 bytes .../files/mobs/textures/mobs_sheep_pink.png | Bin 720 -> 1504 bytes .../files/mobs/textures/mobs_sheep_red.png | Bin 721 -> 1504 bytes .../files/mobs/textures/mobs_sheep_shaved.png | Bin 1122 -> 1420 bytes .../files/mobs/textures/mobs_sheep_violet.png | Bin 747 -> 1504 bytes .../files/mobs/textures/mobs_sheep_white.png | Bin 1207 -> 1401 bytes .../files/mobs/textures/mobs_sheep_yellow.png | Bin 721 -> 1504 bytes .../files/mobs/textures/mobs_skeleton.png | Bin 1828 -> 478 bytes .../files/mobs/textures/mobs_zombie.png | Bin 3163 -> 1118 bytes games/default/files/mobs/zombie.lua | 4 +- games/default/files/playerplus/README | 15 - games/default/files/playerplus/init.lua | 150 ++-- games/default/files/tnt/init.lua | 2 +- games/default/files/wool/README.txt | 15 - games/default/files/wool/credit.txt | 1 - games/default/files/wool/depends.txt | 1 - games/default/files/wool/init.lua | 123 ++-- games/default/game.conf | 2 +- games/default/multicraft.conf | 3 +- 147 files changed, 1246 insertions(+), 2018 deletions(-) delete mode 100644 games/default/files/3d_armor/armor.conf.example delete mode 100644 games/default/files/builtin_item/README.md delete mode 100644 games/default/files/builtin_item/depends.txt delete mode 100644 games/default/files/builtin_item/init.lua delete mode 100644 games/default/files/builtin_item/sounds/builtin_item_lava.ogg delete mode 100644 games/default/files/builtin_item/textures/tnt_smoke.png delete mode 100644 games/default/files/compass/depends.txt delete mode 100644 games/default/files/creative/depends.txt delete mode 100644 games/default/files/default/textures/compass_0.png delete mode 100644 games/default/files/default/textures/compass_1.png delete mode 100644 games/default/files/default/textures/compass_10.png delete mode 100644 games/default/files/default/textures/compass_11.png delete mode 100644 games/default/files/default/textures/compass_2.png delete mode 100644 games/default/files/default/textures/compass_3.png delete mode 100644 games/default/files/default/textures/compass_4.png delete mode 100644 games/default/files/default/textures/compass_5.png delete mode 100644 games/default/files/default/textures/compass_6.png delete mode 100644 games/default/files/default/textures/compass_7.png delete mode 100644 games/default/files/default/textures/compass_8.png delete mode 100644 games/default/files/default/textures/compass_9.png delete mode 100644 games/default/files/default/textures/default_torch_animated.png delete mode 100644 games/default/files/default/textures/default_torch_on_ceiling_animated.png delete mode 100644 games/default/files/default/textures/default_torch_on_floor_animated.png delete mode 100644 games/default/files/default/textures/dye_black.png delete mode 100644 games/default/files/default/textures/dye_blue.png delete mode 100644 games/default/files/default/textures/dye_brown.png delete mode 100644 games/default/files/default/textures/dye_cyan.png delete mode 100644 games/default/files/default/textures/dye_dark_green.png delete mode 100644 games/default/files/default/textures/dye_dark_grey.png delete mode 100644 games/default/files/default/textures/dye_green.png delete mode 100644 games/default/files/default/textures/dye_grey.png delete mode 100644 games/default/files/default/textures/dye_lightblue.png delete mode 100644 games/default/files/default/textures/dye_magenta.png delete mode 100644 games/default/files/default/textures/dye_orange.png delete mode 100644 games/default/files/default/textures/dye_pink.png delete mode 100644 games/default/files/default/textures/dye_red.png delete mode 100644 games/default/files/default/textures/dye_violet.png delete mode 100644 games/default/files/default/textures/dye_white.png delete mode 100644 games/default/files/default/textures/dye_yellow.png delete mode 100644 games/default/files/default/textures/watch_a0.png delete mode 100644 games/default/files/default/textures/watch_a1.png delete mode 100644 games/default/files/default/textures/watch_a10.png delete mode 100644 games/default/files/default/textures/watch_a11.png delete mode 100644 games/default/files/default/textures/watch_a2.png delete mode 100644 games/default/files/default/textures/watch_a3.png delete mode 100644 games/default/files/default/textures/watch_a4.png delete mode 100644 games/default/files/default/textures/watch_a5.png delete mode 100644 games/default/files/default/textures/watch_a6.png delete mode 100644 games/default/files/default/textures/watch_a7.png delete mode 100644 games/default/files/default/textures/watch_a8.png delete mode 100644 games/default/files/default/textures/watch_a9.png delete mode 100644 games/default/files/default/textures/wool_black.png delete mode 100644 games/default/files/default/textures/wool_blue.png delete mode 100644 games/default/files/default/textures/wool_brown.png delete mode 100644 games/default/files/default/textures/wool_cyan.png delete mode 100644 games/default/files/default/textures/wool_dark_green.png delete mode 100644 games/default/files/default/textures/wool_dark_grey.png delete mode 100644 games/default/files/default/textures/wool_green.png delete mode 100644 games/default/files/default/textures/wool_grey.png delete mode 100644 games/default/files/default/textures/wool_magenta.png delete mode 100644 games/default/files/default/textures/wool_orange.png delete mode 100644 games/default/files/default/textures/wool_pink.png delete mode 100644 games/default/files/default/textures/wool_red.png delete mode 100644 games/default/files/default/textures/wool_violet.png delete mode 100644 games/default/files/default/textures/wool_white.png delete mode 100644 games/default/files/default/textures/wool_yellow.png delete mode 100644 games/default/files/fire/sounds/fire_extinguish_flame.ogg delete mode 100644 games/default/files/flowers/textures/flowers_mushroom_spores_brown.png delete mode 100644 games/default/files/flowers/textures/flowers_mushroom_spores_red.png delete mode 100644 games/default/files/give_initial_stuff/depends.txt delete mode 100644 games/default/files/playerplus/README delete mode 100644 games/default/files/wool/README.txt delete mode 100644 games/default/files/wool/credit.txt diff --git a/games/default/files/3d_armor/armor.conf.example b/games/default/files/3d_armor/armor.conf.example deleted file mode 100644 index aa01084f3..000000000 --- a/games/default/files/3d_armor/armor.conf.example +++ /dev/null @@ -1,37 +0,0 @@ --- Armor Configuration (defaults) - --- Increase this if you get initialization glitches when a player first joins. -ARMOR_INIT_DELAY = 1 - --- Number of initialization attempts. --- Use in conjunction with ARMOR_INIT_DELAY if initialization problems persist. -ARMOR_INIT_TIMES = 1 - --- Increase this if armor is not getting into bones due to server lag. -ARMOR_BONES_DELAY = 1 - --- How often player armor/wield items are updated. -ARMOR_UPDATE_TIME = 1 - --- Drop armor when a player dies. --- Uses bones mod if present, otherwise items are dropped around the player. -ARMOR_DROP = true - --- Pulverise armor when a player dies, overrides ARMOR_DROP. -ARMOR_DESTROY = false - --- You can use this to increase or decrease overall armor effectiveness, --- eg: ARMOR_LEVEL_MULTIPLIER = 0.5 will reduce armor level by half. -ARMOR_LEVEL_MULTIPLIER = 1 - --- You can use this to increase or decrease overall armor healing, --- eg: ARMOR_HEAL_MULTIPLIER = 0 will disable healing altogether. -ARMOR_HEAL_MULTIPLIER = 1 - --- You can also use this file to execute arbitary lua code --- eg: Dumb the armor down if using Simple Mobs -if minetest.get_modpath("mobs") then - ARMOR_LEVEL_MULTIPLIER = 0.5 - ARMOR_HEAL_MULTIPLIER = 0 -end - diff --git a/games/default/files/DOM/watch/depends.txt b/games/default/files/DOM/watch/depends.txt index 4dd8fd7dc..0b6757adc 100644 --- a/games/default/files/DOM/watch/depends.txt +++ b/games/default/files/DOM/watch/depends.txt @@ -1,3 +1,2 @@ - default -domb +domb \ No newline at end of file diff --git a/games/default/files/boats/init.lua b/games/default/files/boats/init.lua index 3f15f1818..7d6ee9f3b 100644 --- a/games/default/files/boats/init.lua +++ b/games/default/files/boats/init.lua @@ -9,10 +9,12 @@ end) -- local function is_water(pos) + return minetest.get_item_group(minetest.get_node(pos).name, "water") ~= 0 end local function get_sign(i) + if i == 0 then return 0 else @@ -21,13 +23,18 @@ local function get_sign(i) end local function get_velocity(v, yaw, y) + local x = -math.sin(yaw) * v local z = math.cos(yaw) * v + return {x = x, y = y, z = z} end +local square = math.sqrt + local function get_v(v) - return math.sqrt(v.x ^ 2 + v.z ^ 2) + + return square(v.x *v.x + v.z *v.z) end -- @@ -47,32 +54,47 @@ local boat = { } function boat.on_rightclick(self, clicker) + if not clicker or not clicker:is_player() then return end + local name = clicker:get_player_name() + if self.driver and clicker == self.driver then + handlers[name] = nil self.driver = nil + clicker:set_detach() + default.player_attached[name] = false default.player_set_animation(clicker, "stand" , 30) + local pos = clicker:getpos() + minetest.after(0.1, function() clicker:setpos({x=pos.x, y=pos.y+0.2, z=pos.z}) end) + elseif not self.driver then + if handlers[name] and handlers[name].driver then handlers[name].driver = nil end + handlers[name] = self.object:get_luaentity() self.driver = clicker + clicker:set_attach(self.object, "", {x = 0, y = 11, z = -3}, {x = 0, y = 0, z = 0}) + default.player_attached[name] = true + minetest.after(0.2, function() default.player_set_animation(clicker, "sit" , 30) end) + self.object:setyaw(clicker:get_look_yaw() - math.pi / 2) end end @@ -106,15 +128,20 @@ function boat.on_punch(self, puncher) end if not self.driver then + self.removed = true + if not minetest.setting_getbool("creative_mode") then + local inv = puncher:get_inventory() + if inv:room_for_item("main", "boats:boat") then inv:add_item("main", "boats:boat") else minetest.add_item(self.object:getpos(), "boats:boat") end end + self.object:remove() end end @@ -123,6 +150,7 @@ function boat.on_step(self, dtime) -- after 10 seconds remove boat and drop as item if not boarded self.count = self.count + dtime + if self.count > 10 then minetest.add_item(self.object:getpos(), "boats:boat") self.object:remove() @@ -132,7 +160,9 @@ function boat.on_step(self, dtime) self.v = get_v(self.object:getvelocity()) * get_sign(self.v) if self.driver then + self.count = 0 + local ctrl = self.driver:get_player_control() local yaw = self.object:getyaw() @@ -143,12 +173,15 @@ function boat.on_step(self, dtime) end if ctrl.left then + if self.v < 0 then self.object:setyaw(yaw - (1 + dtime) * 0.08) -- 0.03 changed to speed up turning else self.object:setyaw(yaw + (1 + dtime) * 0.08) -- 0.03 end + elseif ctrl.right then + if self.v < 0 then self.object:setyaw(yaw + (1 + dtime) * 0.08) -- 0.03 else @@ -158,6 +191,7 @@ function boat.on_step(self, dtime) end local velo = self.object:getvelocity() + if self.v == 0 and velo.x == 0 and velo.y == 0 and velo.z == 0 then --self.object:setpos(self.object:getpos()) return @@ -167,8 +201,10 @@ function boat.on_step(self, dtime) self.v = self.v - 0.02 * s if s ~= get_sign(self.v) then + self.object:setvelocity({x = 0, y = 0, z = 0}) self.v = 0 + return end @@ -179,22 +215,29 @@ function boat.on_step(self, dtime) local p = self.object:getpos() local new_velo = {x = 0, y = 0, z = 0} local new_acce = {x = 0, y = 0, z = 0} + p.y = p.y - 0.5 if not is_water(p) then + local nodedef = minetest.registered_nodes[minetest.get_node(p).name] + if (not nodedef) or nodedef.walkable then self.v = 0 new_acce = {x = 0, y = 0, z = 0} -- y was 1 else new_acce = {x = 0, y = -9.8, z = 0} end + new_velo = get_velocity(self.v, self.object:getyaw(), self.object:getvelocity().y) --self.object:setpos(self.object:getpos()) else p.y = p.y + 1 + if is_water(p) then + local y = self.object:getvelocity().y + if y >= 4.5 then y = 4.5 elseif y < 0 then @@ -202,10 +245,12 @@ function boat.on_step(self, dtime) else new_acce = {x = 0, y = 5, z = 0} end + new_velo = get_velocity(self.v, self.object:getyaw(), y) --self.object:setpos(self.object:getpos()) else new_acce = {x = 0, y = 0, z = 0} + if math.abs(self.object:getvelocity().y) < 1 then local pos = self.object:getpos() pos.y = math.floor(pos.y) + 0.5 @@ -223,6 +268,7 @@ function boat.on_step(self, dtime) -- if boat comes to sudden stop then it has crashed, destroy boat and drop 3x wood if self.v2 - self.v >= 3 then + if self.driver then --print ("Crash! with driver", self.v2 - self.v) self.driver:set_detach() @@ -233,7 +279,9 @@ function boat.on_step(self, dtime) end minetest.add_item(self.object:getpos(), "default:wood 3") + self.object:remove() + return end @@ -251,15 +299,20 @@ minetest.register_craftitem("boats:boat", { liquids_pointable = true, on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" or not is_water(pointed_thing.under) then return end + pointed_thing.under.y = pointed_thing.under.y + 0.5 + minetest.add_entity(pointed_thing.under, "boats:boat") + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack end, }) diff --git a/games/default/files/bonusbox/textures/chest_bottom.png b/games/default/files/bonusbox/textures/chest_bottom.png index c2d34235ece7fc191be2665bea5a25c3aa707163..d711862f7af8e5301128f0330cd0f3400d10e714 100644 GIT binary patch delta 670 zcmV;P0%85t2G9nOTz@?OC7nq;x+c$H1pUs^4LTF=1=0wQRmT8=g~6j&{+TJ zHul^f@6tB^H~Qc=|KxN3?3@4cH15p)_8{%*@QpjQ{^v z?Bb;Es%=iB_QO8pQ5C6vqxa6f^R;!fO6utAoSDsL?>yo)wl$ugkhTK5_6Q*+vmM9b zUg7ESesN~{xbyU&zoWHf@bly4d7-PhfBkT*cWr$H4c;4uR{Q!2;7!dU;|##E?L1>1 z1lUYG9bB;?z_cvOWYEN#%q)9rK!f4Yo!!0t?)K*8mC4Pm?SYooj-`pC&Wp>do7O!qmE4wJTg34~B91Nhr zcenI{C`kw<@fo0jLM<6^>i-I6e*jU9WaRHfl3U=aU2-0O7dQ>NEJD^&8x5W3?wNjDJdym!5wmNiHHWq000002uVdwM6N<$ Ef`{&3fB*mh delta 675 zcmV;U0$lyj2Gs_TTz@i_%~|KJ|! z%r^GhHul^$|KvCM-#7Z;H~-`~{NW@2;veqNAMVj9|Kl;}&NArDL;vPa;>%Iz(NgEp zGV9P-|LIx(=^yXXGwsqd?$b2u(Ov!MH15Z)9honv_v?MC@$BENyHa~_W94-uBJtqr&_AVrZILz~XpNIXg zUp~#x&OB?qczoVFJHGYj_xEo{`+MCde_InPs~afrYp}N5>GUC-o?B@Ul);I4zc=+g`ySKQsd*|-Go5yFp$*HHU*Kgjw|8V#j zJns7dz+A6}!YkVi$=ooqc0Q6-JD41BI0KZL&2vil?3Ra8&fdW9Ned&K3emWTX9; ztR-1wXFKM*=U5JKYz1AIE07dU>=y01x4OIXD002ov JPDHLkV1k86QM3R6 diff --git a/games/default/files/builtin_item/README.md b/games/default/files/builtin_item/README.md deleted file mode 100644 index b1e70fc87..000000000 --- a/games/default/files/builtin_item/README.md +++ /dev/null @@ -1,25 +0,0 @@ -item_entity.lua - -edited by TenPlus1 - -Features: -- Items are destroyed by lava -- Items are moved along by flowing water (new routine) -- Items are removed after 120 seconds or the time that is specified by - remove_items in minetest.conf (-1 disables it) -- Particle effects added - - - DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE - Version 2, December 2004 - - Copyright (C) 2004 Sam Hocevar - - Everyone is permitted to copy and distribute verbatim or modified - copies of this license document, and changing it is allowed as long - as the name is changed. - - DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. You just DO WHAT THE FUCK YOU WANT TO. diff --git a/games/default/files/builtin_item/depends.txt b/games/default/files/builtin_item/depends.txt deleted file mode 100644 index 7c506cfbe..000000000 --- a/games/default/files/builtin_item/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -default -mobs? \ No newline at end of file diff --git a/games/default/files/builtin_item/init.lua b/games/default/files/builtin_item/init.lua deleted file mode 100644 index c42dcb45b..000000000 --- a/games/default/files/builtin_item/init.lua +++ /dev/null @@ -1,415 +0,0 @@ --- Minetest: builtin/item_entity.lua (5th October 2015) - --- water flow functions by QwertyMine3 and edited by TenPlus1 -local function to_unit_vector(dir_vector) - local inv_roots = { - [0] = 1, [1] = 1, [2] = 0.70710678118655, [4] = 0.5, - [5] = 0.44721359549996, [8] = 0.35355339059327 - } - local sum = dir_vector.x * dir_vector.x + dir_vector.z * dir_vector.z - return { - x = dir_vector.x * inv_roots[sum], - y = dir_vector.y, - z = dir_vector.z * inv_roots[sum] - } -end - -local function is_touching(realpos, nodepos, radius) - return (math.abs(realpos - nodepos) > (0.5 - radius)) -end - -local function node_ok(pos) -- added by TenPlus1 - local node = minetest.get_node_or_nil(pos) - if not node then - return minetest.registered_nodes["default:dirt"] - end - local nodef = minetest.registered_nodes[node.name] - if nodef then - return node - end - return minetest.registered_nodes["default:dirt"] -end - - -local function is_water(pos) - return (minetest.get_item_group( - node_ok({x=pos.x,y=pos.y,z=pos.z}).name, "water") ~= 0) -end - -local function is_liquid(pos) - return (minetest.get_item_group( - node_ok({x=pos.x,y=pos.y,z=pos.z}).name, "liquid") ~= 0) -end - -local function node_is_liquid(node) - return (minetest.get_item_group(node.name, "liquid") ~= 0) -end - -local function quick_flow_logic(node, pos_testing, direction) - - local nodef = minetest.registered_nodes[node.name] - - if minetest.registered_nodes[node.name].liquidtype == "source" then - - local node_testing = node_ok(pos_testing) - local param2_testing = node_testing.param2 - - if minetest.registered_nodes[node_testing.name].liquidtype ~= "flowing" then - return 0 - else - return direction - end - - elseif minetest.registered_nodes[node.name].liquidtype == "flowing" then - - local node_testing = node_ok(pos_testing) - local param2_testing = node_testing.param2 - - if minetest.registered_nodes[node_testing.name].liquidtype == "source" then - return -direction - - elseif minetest.registered_nodes[node_testing.name].liquidtype == "flowing" then - - if param2_testing < node.param2 then - if (node.param2 - param2_testing) > 6 then - return -direction - else - return direction - end - - elseif param2_testing > node.param2 then - if (param2_testing - node.param2) > 6 then - return direction - else - return -direction - end - end - end - end - return 0 -end - -local function quick_flow(pos, node) - local x, z = 0, 0 - - if not node_is_liquid(node) then - return {x = 0, y = 0, z = 0} - end - - x = x + quick_flow_logic(node, {x = pos.x - 1, y = pos.y, z = pos.z},-1) - x = x + quick_flow_logic(node, {x = pos.x + 1, y = pos.y, z = pos.z}, 1) - z = z + quick_flow_logic(node, {x = pos.x, y = pos.y, z = pos.z - 1},-1) - z = z + quick_flow_logic(node, {x = pos.x, y = pos.y, z = pos.z + 1}, 1) - - return to_unit_vector({x = x, y = 0, z = z}) -end - ---if not in water but touching, move centre to touching block ---x has higher precedence than z -- if pos changes with x, it affects z -local function move_centre(pos, realpos, node, radius) - - if is_touching(realpos.x, pos.x, radius) then - - if is_liquid({x = pos.x - 1, y = pos.y, z = pos.z}) then - pos = {x = pos.x - 1, y = pos.y, z = pos.z} - node = node_ok(pos) - - elseif is_liquid({x = pos.x + 1, y = pos.y, z = pos.z}) then - pos = {x = pos.x + 1, y = pos.y, z = pos.z} - node = node_ok(pos) - end - end - - if is_touching(realpos.z, pos.z, radius) then - - if is_liquid({x = pos.x, y = pos.y, z = pos.z - 1}) then - pos = {x = pos.x, y = pos.y, z = pos.z - 1} - node = node_ok(pos) - - elseif is_liquid({x = pos.x, y = pos.y, z = pos.z + 1}) then - pos = {x = pos.x, y = pos.y, z = pos.z + 1} - node = node_ok(pos) - end - end - - return pos, node -end --- END water flow functions - -function core.spawn_item(pos, item) - -- take item in any format - local stack = ItemStack(item) - local obj = core.add_entity(pos, "__builtin:item") - -- Don't use obj if it couldn't be added to the map. - if obj then - obj:get_luaentity():set_item(stack:to_string()) - end - return obj -end - --- if item_entity_ttl is not set, enity will have default life time --- setting to -1 disables the feature -local time_to_live = tonumber(core.setting_get("item_entity_ttl")) or 900 - --- if destroy_item is 1 then dropped items will burn inside lava -local destroy_item = tonumber(core.setting_get("destroy_item")) or 1 - --- particle effects for when item is destroyed -local function add_effects(pos) - minetest.add_particlespawner({ - amount = 1, - time = 0.25, - minpos = pos, - maxpos = pos, - minvel = {x = -1, y = 2, z = -1}, - maxvel = {x = 1, y = 5, z = 1}, - minacc = {x = -4, y = -4, z = -4}, - maxacc = {x = 4, y = 4, z = 4}, - minexptime = 1, - maxexptime = 3, - minsize = 1, - maxsize = 4, - texture = "tnt_smoke.png", - }) -end - --- check if within map limits (-30911 to 30927) -local function within_limits(pos) - if pos.x > -30913 - and pos.x < 30928 - and pos.y > -30913 - and pos.y < 30928 - and pos.z > -30913 - and pos.z < 30928 then - return true -- within limits - end - return false -- beyond limits -end - -core.register_entity(":__builtin:item", { - initial_properties = { - hp_max = 1, - physical = true, - collide_with_objects = false, - collisionbox = {-0.3, -0.3, -0.3, 0.3, 0.3, 0.3}, - visual = "wielditem", - visual_size = {x = 0.4, y = 0.4}, - textures = {""}, - spritediv = {x = 1, y = 1}, - initial_sprite_basepos = {x = 0, y = 0}, - is_visible = false, - }, - - itemstring = "", - physical_state = true, - age = 0, - - set_item = function(self, itemstring) - self.itemstring = itemstring - local stack = ItemStack(itemstring) - local count = stack:get_count() - local max_count = stack:get_stack_max() - if count > max_count then - count = max_count - self.itemstring = stack:get_name().." "..max_count - end - local s = 0.2 + 0.1 * (count / max_count) - local c = s - local itemtable = stack:to_table() - local itemname = itemtable and itemtable.name - local prop = { - is_visible = true, - visual = "wielditem", - textures = {itemname}, - visual_size = {x = s, y = s}, - collisionbox = {-c, -c, -c, c, c, c}, - --automatic_rotate = math.pi * 0.5, - automatic_rotate = 1, - } - self.object:set_properties(prop) - end, - - get_staticdata = function(self) - return core.serialize({ - itemstring = self.itemstring, - age = self.age - }) - end, - - on_activate = function(self, staticdata, dtime_s) - - -- special function to fast remove entities (xanadu only) - if mobs and mobs.entity and mobs.entity == false then - self.object:remove() - return - end - - if string.sub(staticdata, 1, string.len("return")) == "return" then - local data = core.deserialize(staticdata) - if data and type(data) == "table" then - self.itemstring = data.itemstring - if data.age then - self.age = data.age + dtime_s - else - self.age = dtime_s - end - end - else - self.itemstring = staticdata - end - self.object:set_armor_groups({immortal = 1}) - self.object:setvelocity({x = 0, y = 2, z = 0}) - self.object:setacceleration({x = 0, y = -10, z = 0}) - self:set_item(self.itemstring) - end, - - try_merge_with = function(self, own_stack, object, obj) - local stack = ItemStack(obj.itemstring) - if own_stack:get_name() == stack:get_name() - and stack:get_free_space() > 0 then - local overflow = false - local count = stack:get_count() + own_stack:get_count() - local max_count = stack:get_stack_max() - if count > max_count then - overflow = true - count = count - max_count - else - self.itemstring = "" - end - local pos = object:getpos() - pos.y = pos.y + (count - stack:get_count()) / max_count * 0.15 - object:moveto(pos, false) - local s, c - local max_count = stack:get_stack_max() - local name = stack:get_name() - if not overflow then - obj.itemstring = name .. " " .. count - s = 0.2 + 0.1 * (count / max_count) - c = s - object:set_properties({ - visual_size = {x = s, y = s}, - collisionbox = {-c, -c, -c, c, c, c} - }) - self.object:remove() - return true -- merging succeeded - else - s = 0.4 - c = 0.3 - object:set_properties({ - visual_size = {x = s, y = s}, - collisionbox = {-c, -c, -c, c, c, c} - }) - obj.itemstring = name .. " " .. max_count - s = 0.2 + 0.1 * (count / max_count) - c = s - self.object:set_properties({ - visual_size = {x = s, y = s}, - collisionbox = {-c, -c, -c, c, c, c} - }) - self.itemstring = name .. " " .. count - end - end - return false -- merging didn't succeed - end, - - on_step = function(self, dtime) - self.age = self.age + dtime - local p = self.object:getpos() - - -- remove item if old enough or outside map limits - if (time_to_live > 0 and self.age > time_to_live) - or not within_limits(p) then - self.itemstring = "" - self.object:remove() - return - end - - p.y = p.y - 0.5 - local node = core.get_node_or_nil(p) - if not node then - -- don't infinetly fall into unloaded map - self.object:setvelocity({x = 0, y = 0, z = 0}) - self.object:setacceleration({x = 0, y = 0, z = 0}) - self.physical_state = false - self.object:set_properties({physical = false}) - return - end - local nn = node.name - - -- destroy item when dropped into lava (if enabled) - if destroy_item > 0 and minetest.get_item_group(nn, "lava") > 0 then - minetest.sound_play("builtin_item_lava", { - pos = p, - max_hear_distance = 6, - gain = 0.5 - }) - add_effects(p) - self.object:remove() - return - end - - -- flowing water pushes item along (by QwertyMine3) - local nod = node_ok({x = p.x, y = p.y + 0.5, z = p.z}) - if minetest.registered_nodes[nod.name].liquidtype == "flowing" then - - local vec = quick_flow(self.object:getpos(), - node_ok(self.object:getpos())) - - if vec then - local v = self.object:getvelocity() - self.object:setvelocity( - {x = vec.x, y = v.y, z = vec.z}) - self.object:setacceleration( - {x = 0, y = -10, z = 0}) - self.physical_state = true - self.object:set_properties({ - physical = true - }) - end - - return - end - - -- if node is not registered or walkably solid - local v = self.object:getvelocity() - if not core.registered_nodes[nn] or core.registered_nodes[nn].walkable and v.y == 0 then - if self.physical_state then - local own_stack = ItemStack(self.object:get_luaentity().itemstring) - -- merge with close entities of the same item - for _, object in ipairs(core.get_objects_inside_radius(p, 0.8)) do - local obj = object:get_luaentity() - if obj and obj.name == "__builtin:item" - and obj.physical_state == false then - if self:try_merge_with(own_stack, object, obj) then - return - end - end - end - self.object:setvelocity({x = 0, y = 0, z = 0}) - self.object:setacceleration({x = 0, y = 0, z = 0}) - self.physical_state = false - self.object:set_properties({physical = false}) - end - else - if not self.physical_state then - self.object:setvelocity({x = 0, y = 0, z = 0}) - self.object:setacceleration({x = 0, y = -10, z = 0}) - self.physical_state = true - self.object:set_properties({physical = true}) - end - end - end, - - on_punch = function(self, puncher) - local inv = puncher:get_inventory() - if inv and self.itemstring ~= '' then - local left = inv:add_item("main", self.itemstring) - if left and not left:is_empty() then - self.itemstring = left:to_string() - return - end - end - self.itemstring = "" - self.object:remove() - end, -}) \ No newline at end of file diff --git a/games/default/files/builtin_item/sounds/builtin_item_lava.ogg b/games/default/files/builtin_item/sounds/builtin_item_lava.ogg deleted file mode 100644 index 5c293fe9b4f694ede253f328c8283b69b3ebfad0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37367 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 n{VaahsQJ$ysm9P%1Mf8IBl@9S&I_%q5mjy5Z Pjbre1^>bP0l+XkKq^CS= diff --git a/games/default/files/compass/depends.txt b/games/default/files/compass/depends.txt deleted file mode 100644 index 3a7daa1d7..000000000 --- a/games/default/files/compass/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -default - diff --git a/games/default/files/craftingpack/crafting/init.lua b/games/default/files/craftingpack/crafting/init.lua index 9c9daf201..8badf08bf 100644 --- a/games/default/files/craftingpack/crafting/init.lua +++ b/games/default/files/craftingpack/crafting/init.lua @@ -164,10 +164,10 @@ minetest.register_on_joinplayer(function(player) set_inventory(player) --set hotbar size if player.hud_set_hotbar_itemcount then - minetest.after(0.5, player.hud_set_hotbar_itemcount, player, 8) + minetest.after(0, player.hud_set_hotbar_itemcount, player, 8) end --add hotbar images - minetest.after(0.5,function() + minetest.after(0,function() player:hud_set_hotbar_image("crafting_hotbar.png") player:hud_set_hotbar_selected_image("crafting_hotbar_selected.png") diff --git a/games/default/files/creative/depends.txt b/games/default/files/creative/depends.txt deleted file mode 100644 index 8035d8078..000000000 --- a/games/default/files/creative/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ - -default diff --git a/games/default/files/creative/init.lua b/games/default/files/creative/init.lua index 8e4f5235a..651f5460f 100644 --- a/games/default/files/creative/init.lua +++ b/games/default/files/creative/init.lua @@ -1,19 +1,12 @@ creative = {} - -creative.set_creative_formspec = function() - -end - -minetest.register_on_player_receive_fields(function(player, formname, fields) - -end) +local player_inventory = {} if minetest.setting_getbool("creative_mode") then local digtime = 1 minetest.register_item(":", { type = "none", wield_image = "wieldhand.png", - wield_scale = {x=1,y=1,z=0.3}, + wield_scale = {x=0.7,y=2,z=0.0001}, range = 10, tool_capabilities = { full_punch_interval = 0.5, @@ -25,21 +18,21 @@ if minetest.setting_getbool("creative_mode") then choppy = {times={[1]=digtime, [2]=digtime, [3]=digtime}, uses=0, maxlevel=3}, oddly_breakable_by_hand = {times={[1]=digtime, [2]=digtime, [3]=digtime}, uses=0, maxlevel=3}, }, - damage_groups = {fleshy = 1}, + damage_groups = {fleshy = 10}, } }) - + minetest.register_on_placenode(function(pos, newnode, placer, oldnode, itemstack) return true end) - + function minetest.handle_node_drops(pos, drops, digger) if not digger or not digger:is_player() then return end local inv = digger:get_inventory() if inv then - for _,item in ipairs(drops) do + for _, item in ipairs(drops) do item = ItemStack(item):get_name() if not inv:contains_item("main", item) then inv:add_item("main", item) @@ -47,5 +40,4 @@ if minetest.setting_getbool("creative_mode") then end end end - end \ No newline at end of file diff --git a/games/default/files/default/functions.lua b/games/default/files/default/functions.lua index cfa962516..81ae093d2 100644 --- a/games/default/files/default/functions.lua +++ b/games/default/files/default/functions.lua @@ -333,6 +333,50 @@ minetest.register_abm({ }) +-- +-- Snowballs +-- + +snowball_GRAVITY=9 +snowball_VELOCITY=19 + +--Shoot snowball. +snow_shoot_snowball=function (item, player, pointed_thing) + local playerpos=player:getpos() + local obj=minetest.add_entity({x=playerpos.x,y=playerpos.y+1.5,z=playerpos.z}, "default:snowball_entity") + local dir=player:get_look_dir() + obj:setvelocity({x=dir.x*snowball_VELOCITY, y=dir.y*snowball_VELOCITY, z=dir.z*snowball_VELOCITY}) + obj:setacceleration({x=dir.x*-3, y=-snowball_GRAVITY, z=dir.z*-3}) + item:take_item() + return item +end + +--The snowball Entity +snowball_ENTITY={ + physical = false, + timer=0, + textures = {"default_snowball.png"}, + lastpos={}, + collisionbox = {0,0,0,0,0,0}, +} + +--Snowball_entity.on_step()--> called when snowball is moving. +snowball_ENTITY.on_step = function(self, dtime) + self.timer=self.timer+dtime + local pos = self.object:getpos() + local node = minetest.get_node(pos) + + --Become item when hitting a node. + if self.lastpos.x~=nil then --If there is no lastpos for some reason. + if node.name ~= "air" then + self.object:remove() + end + end + self.lastpos={x=pos.x, y=pos.y, z=pos.z} -- Set lastpos-->Node will be added at last pos outside the node +end + +minetest.register_entity("default:snowball_entity", snowball_ENTITY) + -- -- Grass and dry grass removed in darkness -- @@ -378,7 +422,7 @@ function AddGlass(desc, recipeitem, color) minetest.register_node("default:glass"..color, { description = desc, drawtype = "glasslike", - tile_images = {"xpanes_pane_glass"..color..".png"}, + tiles = {"xpanes_pane_glass"..color..".png"}, inventory_image = minetest.inventorycube("xpanes_pane_glass"..color..".png"), paramtype = "light", use_texture_alpha = true, diff --git a/games/default/files/default/mapgen.lua b/games/default/files/default/mapgen.lua index 813b3bc13..21683af68 100644 --- a/games/default/files/default/mapgen.lua +++ b/games/default/files/default/mapgen.lua @@ -419,6 +419,24 @@ function default.register_biomes() heat_point = 15, humidity_point = 35, }) + + minetest.register_biome({ + name = "tundra_beach", + --node_dust = "", + node_top = "default:gravel", + depth_top = 1, + node_filler = "default:gravel", + depth_filler = 2, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + y_min = -3, + y_max = 1, + heat_point = 15, + humidity_point = 35, + }) minetest.register_biome({ name = "tundra_ocean", @@ -433,7 +451,7 @@ function default.register_biomes() --node_water = "", --node_river_water = "", y_min = -112, - y_max = 1, + y_max = -4, heat_point = 15, humidity_point = 35, }) @@ -1218,7 +1236,7 @@ if mg_params.mgname == "v6" then default.register_ores() default.register_mgv6_decorations() elseif mg_params.mgname ~= "singlenode" then - default.register_ores() default.register_biomes() + default.register_ores() default.register_decorations() end \ No newline at end of file diff --git a/games/default/files/default/nodes.lua b/games/default/files/default/nodes.lua index 973870aeb..1879b7eb4 100644 --- a/games/default/files/default/nodes.lua +++ b/games/default/files/default/nodes.lua @@ -1291,37 +1291,46 @@ minetest.register_node("default:lava_flowing", { not_in_creative_inventory = 1}, }) + + minetest.register_node("default:torch", { - description = "Torch", - drawtype = "torchlike", - --tiles = {"default_torch_on_floor.png", "default_torch_on_ceiling.png", "default_torch.png"}, - tiles = { - {name="default_torch_on_floor_animated.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=3.0}}, - {name="default_torch_on_ceiling_animated.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=3.0}}, - {name="default_torch_animated.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=3.0}} - }, - inventory_image = "default_torch_on_floor.png", - wield_image = "default_torch_on_floor.png", - paramtype = "light", - paramtype2 = "wallmounted", - sunlight_propagates = true, - walkable = false, - light_source = default.LIGHT_MAX-1, - selection_box = { - type = "wallmounted", - wall_top = {-0.1, 0.5-0.6, -0.1, 0.1, 0.5, 0.1}, - wall_bottom = {-0.1, -0.5, -0.1, 0.1, -0.5+0.6, 0.1}, - wall_side = {-0.5, -0.3, -0.1, -0.5+0.3, 0.3, 0.1}, - }, - stack_max = 64, - groups = {choppy=2,dig_immediate=3,flammable=1,attached_node=1, decorative = 1}, - legacy_wallmounted = true, - sounds = default.node_sound_defaults(), - action = function(pos) - add_fire(pos) - end + inventory_image = "default_torch_on_floor.png", + wield_image = "default_torch_on_floor.png", + tiles = { + "default_torch_on_floor_top.png", + "default_torch_on_floor_bottom.png", + "default_torch_on_floor.png", + "default_torch_on_floor.png", + "default_torch_on_floor.png", + "default_torch_on_floor.png" + }, + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + is_ground_content = false, + walkable = false, + light_source = default.LIGHT_MAX - 1, + groups = {choppy = 2, dig_immediate = 3, flammable = 1, attached_node = 1}, + legacy_wallmounted = true, + sounds = default.node_sound_defaults(), + liquids_pointable = false, + drawtype = "nodebox", + paramtype = "light", + node_box = { + type = "fixed", + fixed = { + {-0.0625, -0.5, -0.0625, 0.0625, 0.125, 0.0625}, -- NodeBox1 + } + }, + selection_box = { + type = "wallmounted", + wall_top = {-0.1, 0.5 - 0.6, -0.1, 0.1, 0.5, 0.1}, + wall_bottom = {-0.1, -0.5, -0.1, 0.1, -0.5 + 0.6, 0.1}, + wall_side = {-0.5, -0.3, -0.1, -0.5 + 0.3, 0.3, 0.1}, + }, }) + local function get_chest_neighborpos(pos, param2, side) if side == "right" then if param2 == 0 then diff --git a/games/default/files/default/schematics/apple_tree.mts b/games/default/files/default/schematics/apple_tree.mts index 540295a873fd6c951619b6e9be2488ed65f6260a..161b27bb3efe01114c1b5d75235106da32c5072a 100644 GIT binary patch delta 114 zcmV-&0FD2n0i^*GO;l4&00aO900;mDe}6xJe}6xb5myKg800M~&jQT>-P8vpn0jB{IO;l4&00aO900;mDe}6xJe}6xb5eSJOyP#sX99whpo0mcFn`SSJh UFeUZ*#F;{tTLv)z09n5q5taZdw*UYD diff --git a/games/default/files/default/textures/compass_0.png b/games/default/files/default/textures/compass_0.png deleted file mode 100644 index 5dc5fa1bd745f3295389029798c92b5a69cfe0e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa3-AeX1=3<-Vsavk`uh6j=H|)C z$tfu*_4V}!4jlL|BJ!ZbH>V^!D=ZGUapOjS$cYsiA|fKZ zp$Q2WH1zfPd6{M%UJ@54$0EY8Y08ua6Ey|~`*tA*;d^gi0PSM%boFyt=akR{0Pf*I AL;wH) diff --git a/games/default/files/default/textures/compass_10.png b/games/default/files/default/textures/compass_10.png deleted file mode 100644 index f68ee2558774b3584b53f3cea5cd702acbc0cec1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFv4DbnY1=3<-Vsavk`uh6j=H|)C z$tfu*_4V}!4jecwCG}rKgr{tMCQuP$NswPKgTu2MX+Tb_r;B4qMO^X$wuqP*nFCw0 zD=RrWo=WB94>{yl0P%2}cIsgTe~DWM4f<;gxq diff --git a/games/default/files/default/textures/compass_11.png b/games/default/files/default/textures/compass_11.png deleted file mode 100644 index 72ebc122f37e67e7757943a706a6183c11ca0d4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa3-AeX1=3<-Vsavk`uh6j=H|)C z$tfu*_4V}!4jlL|BJ!Zi3=9qdLJo@~w#5LgV(@hJb6Mw<&;$Uk-#f?v diff --git a/games/default/files/default/textures/compass_2.png b/games/default/files/default/textures/compass_2.png deleted file mode 100644 index c5900cfe42931a3a921c541ab490daf770076df9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 337 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}W`IwKE0A`uw*LSBxRZ^IftJ3l zg{6zVoxP=%yOV>Tr)z+Zdw7sfM2K%(WI#qrL{@5KS#eT*b>`-c{l|~aJ9}o)rHjjM z-dO$j&rvHAGjnruIT6O>t=+ip&-#kJT@&)E2bT&j0p$>Ha21 z8{43&d;EXJ!>+Tu-&D|H-f)yDjxF6l++Rw>D5ok}kSnqKzRdll8Zzn=Mn$Gkg6U&zTr)z+Zdw7sfM2K%(WI#qrL{@5KS#eT*b>`-c{l|~aJ9}o)rHjjM z-dO$j&rvHAGjnruIT6O>;D%KnfB2dWRqk`kRQlq?7-iD zsy$Gq#?!?yq#`c0|2UtMArH&t7kf8vo6P?I|745V%tB{!-8!G}&W*UX`>GOK`>ek2 zbL6-G)!~beGdfXuZo;~TDE5k7$Av@Uk4XIqW-Lt*I>hFzCdSVmu-yFP2G_s)R>*O! zsah2FRUq-KR^VGjl}xu6dqPrJ78Z946b-`jQ{Y~pZF7$Nub6Mw<&;$S^ CKXP3F diff --git a/games/default/files/default/textures/compass_4.png b/games/default/files/default/textures/compass_4.png deleted file mode 100644 index 5c550a48fb657e5478914038e428fc0b49d9f3d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFv4DbnY1=3<-Vsavk`uh6j=H|)C z$tfu*_4V}!4jecwCG}rKgr{tMCQuP$NswPKgTu2MX+Tblr;B4qMO^X$wuqP*nFCw0 zD=RrWo=WB9Is>(`%0EQDmK}?rsFfiEt7Aj57-MIy54}+(xpUXO@geCy3`9A0X diff --git a/games/default/files/default/textures/compass_5.png b/games/default/files/default/textures/compass_5.png deleted file mode 100644 index 634533b9bacde200919fbcfce81830bd4381fef6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFv4DbnY1=3<-Vsavk`uh6j=H|)C z$tfu*_4V}!4jecwCG}rKgr{tMCQuP$NswPKgTu2MX+Tc2r;B4qMO^X$wuqP*nFCw0 zD=RrWo=WB9=>#e)UK9`zU=q^U x=(u>#9vc&m48F-#m6ZYk3@3tum@ds=U{L=jWX|aEwhL$tgQu&X%Q~loCIEDpJ{bT2 diff --git a/games/default/files/default/textures/compass_6.png b/games/default/files/default/textures/compass_6.png deleted file mode 100644 index 54df264e5974c3b8b5b246d5fb1ea27b981944c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa3-AeX1=3<-Vsavk`uh6j=H|)C z$tfu*_4V}!4jlL|BJ!Z_nrf7V(@hJb6Mw<&;$To-9Wzp diff --git a/games/default/files/default/textures/compass_7.png b/games/default/files/default/textures/compass_7.png deleted file mode 100644 index d0d1b5cef310627528ad6024082db59851fe8009..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFv4DbnY1=3<-Vsavk`uh6j=H|)C z$tfu*_4V}!4jecwCG}rKgr{tMCQuP$NswPKgTu2MX+Tb#r;B4qMO^X$wuqP*nFCw0 zD=RrWo=WB9Cy}a26Hi?#GS@5;Xs=hJYD@<);T3K0RW0> BKh6LE diff --git a/games/default/files/default/textures/compass_8.png b/games/default/files/default/textures/compass_8.png deleted file mode 100644 index deea312a6a5275b960031c0d44f22759adcf129b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFv4DbnY1=3<-Vsavk`uh6j=H|)C z$tfu*_4V}!4jecwCG}rKgr{tMCQuP$NswPKgTu2MX+Tb_r;B4qMO^X$wuqP*nFCw0 zD=RrWo=WB9TAy4etP6vuHPdSzd7G3@2;x9XOnNb-sx%2=gGAov0baJ)J@;7J|F7-w^Zjh z&;b^2Ump4L-}u5WpVHks)IzuK-3M~X%j9*QXSc5c3je+O_Lb=VUvsw9B^A|e0=fs` z;NKZ?83#S*B&9Zj-7KVD2($s_DWH##xgb9x$-=#i8UjEEf}8}Cg>rfK|Lpr)W8t+t zQsMWK8|H1X@84+5T~?{^8(|wv2U>`N3;??K>y|l_Eo9$2-BkAz>zZ7P;zXXn;Z&i{nAD35?uWGyW~WDBrlr;rE}<>DJ%Q+I3#u?fY4F_j9Nl zVLpJF0?`IH6wC#MAjA$h7ZlvMLtol;-%&O7!Y+`R_Tc5tFIQ;Y9r_syTd4gm!-}~*ZXQEyt;Jq=Sh$uAb)XLpJmqNSuVTH|M1^E z(^-w?RNSzulv5-vkl}%Y7FIwmI9H=2@mHrZ#ZDAFO8jkdqjuJ_MzG!U+&iFZmt6Dv z?7)3Ev;FPm0{i!=jXdgd+x!vID6tRD;;6AtP89Ddng#JUZ`pico&woD`MDs>Pb;@x zwz+Vq;1 pi(J9@rS_}MqbKcE_kO;R?<%)8z8SJ17+AA0c)I$ztaD0e0sxh3XyO0> literal 1973 zcmc&#eN0nV6n{{JT4i9rB$#$sF$I*t7>tLESqxB`%?GngViYq349((3WljPHM3`Gq zGNjuu<`vkWt2LAex;WxMEG=b@&lECXwk!{ZLt(mwj}5`@yoW$>V3zEUrD@K)=bn$> z`JHp`Rm5XrSB578K@e9-Y}7skp<(cMccOuYVEBZ9;K#q25Dii+7N@7D%VaW@N>x== z)!p4aIXP*w*Ia4Snys=+EVjyvY1V@2eh@gE& z2_A%V)R$1>~-w-)>X$I{}U?bl(YrI0g!4+cb z$ZhjLga~KA2TRjWPYf5>8V5Il5n+&hhALRXrMzQZwY;AK+4^|4Dqparq0KS1I-s=^ z@pUZKS{t@yco$wZ#VE~(akS3{p&}g!I4ywMgB7}@GB?S?j+>sxA9rRphc&Q3aR}5IhKa#-7Lh6 z+5ikMGJk}s+vZvqzKhX@8SolO>QpH6wqbaC2&__ngH>Z7hL8JaLOK=6`cCe+Q<(Q6C7cY}_`FgF9%g%Kz_EuwMiKnq2YI)Ux zbeaP@BEc(kY`tT-+Qi)+7|Ygun4Ul5z{}X*^tqp=VkW!71U@9s1dOZ!M)ujI`M{Fe zezxsKZh6#oJNvdEx?bO{RO5);Ok%Q(rl&iuzZrTz5q3~_H_QqpYHiFilSXJu8+f++B*LMcC7P zgTpHm{x=K@u;B6{>!2tg8v{rM8{SnIQ&ebD*o>u^!UcU8Hpn>Kh`OvMme8&5Nys8e zPkB>bH1k&${qJ~K69WYcCX(WkY6ElykWTttFQAKd8>@<3@?IvYYV+Qlmt94UCJq|53t5N)`_mJAl@<->@JVt(E4wrupo?cvMtZ@N>Pc$|5~w) z>ZbYs7!NahFw&{g4&6-}6VMeVCr!Ml_YjP8xIYIBWl-mA`K?(z$9Bb=SG*47QDuGY zB2-WG)R7Nji>PZ)*$Lm0`iT~9n$s{(4|8bq%{lE7 RPLG(RSrUy!)$V!c%-_+HaiRbK diff --git a/games/default/files/default/textures/crafting_formspec_workbench.png b/games/default/files/default/textures/crafting_formspec_workbench.png index 0a976af392f86ee2f1a2646c98853e5f08a4d873..9ea86e2bcdb87e09ec64f0e6d748521b7dee9d5e 100644 GIT binary patch literal 1924 zcmeAS@N?(olHy`uVBq!ia0y~yVD$z|}_s75dr>%O- z9cuYktLuI1uG`oBwV=O~{2m?goO1-k{iOLo#cvLf zXOVfs@9Cl}$r(|3b@%^i{RRnbEw{S+Jk<&ELN-&B;9LQp`QO z2xRw_OS-FmZY`1DV-ke=R9i+ zd&^&Z$zaYW2hKK2h`+(E19=M(3}BrIE+|xxWMP2>G7~AxKwKe^Qz1cEy7Fgd?H@yt z<&g_m4u8vxc&ctD+jV&f$CZB@Y9WCQao>^?n^RVQYq!jl@SB)^Qi!J*NfOlwdQk^G z=gfQW1Pl+cuF18V0_Ggayul3&`bZ7GZ<#Aje?IYl^-^H8o&VSZ48>jdrTre2TzmEA z>h@9~caGnjHN#e0~*g;J@*YBZ(Oc7;hvH(V=~)A6HTVA_Gh4} z1LVY#i70`YeAe&H+FGII>fE;5ci%P#2Ls7r1`9$^(gQjUnG1>mNB~#y`Aw`hH9lyd z&U;Ani+;v76lWpQFi1JJ=sCH(0VBPG)h>BwJ+*t)Q%U({Hm~)YGk)BEo4zq6<8k6{Wh?N2^edg{}v+0CDq#N2tmr`G!N zo!#H=$L}wD>;q2EYpv&gl3n#{rqg-xTfh{u#B9!{v%D*Iar?@@^ZD7C?)TO3+~1Sj z;B=n(yLQRp%S$ci=9TSxT~gC!`hLH?)&5P!ex?xV|00?5CR_ih{r>OEk2Bw7Zq>)F zuX%I_?Al$+CjXucayBRlij>V_kCODW&YAz~cd0&qip9qbwVy1Uu%%qWCzjpkI`u=`pzU(HqFaAy14$;Sm@ zMH}uk04^w@)EUdb) k`(wtJPt8{MeqWS-;TI67SCqI1SXnZ7y85}Sb4q9e01fMq{{R30 literal 2018 zcmeAS@N?(olHy`uVBq!ia0y~yVD#YBPST}L-)?}^WG^Y}h1^5*fsS6-Iw{MRe2?lb2|=VXgcVf8{Q zJHJOqJmFj+bs)D>c)4lZ+1}{Swad%v}NI{K2%9yxS%O#Rrf0`XFDCi>pU9 zEecn42NygF5nuk`$jki}N4G--wuq?TxAmJd2WaRfb71K1WdjDpo!!Ncp2SM1``yzm z28z|2LV}urokc!Z%xWeB6#;Eg2f66-MyR{4yWBLdnGKZr_S91BF;Jqc@Rs$!h4+-? zMfV>5ef%ZydY*wq$3lZHy{r>$PT%*pWVQM)QI*vfd9L(%2G1GB&xa9d8S0giMA?~mIm&0rfIss`r0GgtSkmjvp*vc5by@AS;n^T$`(R;A6F!v)Si zH*(H=-X&G|sKf$jXXcj2BEo)iRsn-ec=^UOslSg*Y(={-p9SWTC-&1Mp3IQF|833t zMDBfRUEuhU)v0?FA`djX#17^<3tLqW7LKL!9|az5wx8!F%6wzDvvNbC1V@wUj^$ex z%nK=-u~2zQkInBNH;klTJo!?iU!7#A?w91Z|M;9Eb1XV7J1q-^fC-^<@(hp_Kp~*X z&yIMW@jQbj1WbfrjY$Yq5FwB$Kr?`*05u{B0mBqz2FPHbMzE?boi(ar{iTmep57@p z_dC`(xzNaOPLJ^N(1L zDT%rpE7k}v*M7clH`ra13m>J-u~>U(k-FIV@<&e=-rC;=3nXZ`2^HUZjOuCP!U2~X zAkMM?#fZu?a5MmY4035)YncG!i{%v|A0PBD4?N27?Og=0iePY^&XLTX$v{&u((t1xES(GszXaQ?s`zmH@`@ye-(@*W3=9Vp-uz!*?IyTscj~r} z_TbpuH4w>TmXmb{1Cr~i%N>BOYcN=|`meKubIaaCOn;tA>w&Tvq>h4A3Uh$D5?p1$ zxS3KI9zXQu!ICYuR@)dESdt`OM84Rh#~QS)_J)$j&ST6!YCrAd3~%DMn|h$SRa>&- ee+W~-o+O5AO-C2#&iJ1T3TIDOKbLh*2~7a42#0EGXm0k;8=Lv&wBL_t(|UQNoe4TLZdMA45Nm|(>;fCMF6c!9+>MnI{QKuF-= z)&~+KPhX>9rh^X&zI}#bg3$&rv#24eNI`C-tL|-;HmbB!r-lco=bgh-)Dl$}y;)rw d#l`>p@B?pzAB|AfQ62yQ002ovPDHLkV1j>3G&ukO diff --git a/games/default/files/default/textures/default_furnace_fire_fg.png b/games/default/files/default/textures/default_furnace_fire_fg.png index bd30fa7c66ab6ebbad913858b71ddbaf4ebb08e9..0508901344ae019ae01c49965f194a27821089bd 100644 GIT binary patch delta 202 zcmV;*05$)c0+9lcPk*gRL_t&-83n-6ZB#)F1<+$}{<*J%DFF%k7bVa^wgSclK#Vv5 zn$`eLv>Y6C(W=onq5V!ssISrf6$<&Jbs-_4ouHa(S`~gJl4uY7Ej+XYjVc;AfR7$1 z+|7KPy?DNHwXSFBrT#FF6$=3P4+oe)WiX9dk^lez07*qoM6N<$ Eg5lj)lmGw# delta 212 zcmV;_04x8I0-FMmPk*;bL_t(|UR92P4Z<)C1Wn2S=?2AF0BSD)bvB6iUxojQR>ji4 za!USVkwuOvG(Ax(Y~?jo8qs*Y%ZSqor`k(6R!=eFz-^(38o*GB*gEiz@PI^|$l%zB zk?;b{I8hHQPH(_qwVDAPIpcmUP*^&0JfT>tXbu>wqd)lf2Te~#09kCI@Z9l^9F=`=2kC*(#y*F4Hgo O0000YbD`!l7juGrYv`2YVY7mt_P8Y0`u~4Z{=ZM?EpRQ3v&jfH%Lp-bvsCMP^g0sgMBS1g zzhDMgHMjMD)>-_%(4799mFGkFq=Q=jwD(O7W&Fg;`ZTlQlJxI2&WzXd_`l3DNYp-E z{1T|K+tbA{q$2L_DQBj`3=Av>e1mRpn|f>8+kgL+{~o+|+mgR-jzZH1FRrCrEx)cw zX0iy}s@}PfdExxE>)4bz)rz->Eakt5%>12x>!SifOFuanei`D|92l%7HV|-@WuAzhpYdLs;@sN zP*@$kBDASvGMhs)=amFLiv!CXo7tj!YS_gtFlICy_{z5?!Ek{{IV1Bo_8p9oe;Bu< TKJ_mFn$O_r>gTe~DWM4f1xHc_ diff --git a/games/default/files/default/textures/dye_black.png b/games/default/files/default/textures/dye_black.png deleted file mode 100644 index 338f1c378c0e809f7b2edffb91aded0a115d691b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 281 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv^#Gp`*Z=?j1DP^1N>)}bUJhPi zVJXSU#VJu~h3Ul=o)(p1B(#3f|pY*`Z}nym=DCriKY!n*}#9Bv0%%+|;lj!*jEt6ZhhTj0)Gy zf-wz&CMJt&T{j!~Gz99Hnrz8#oosZ5XXBO&7eZH0v(R>AmAHIqQ`p+5B}q9fr4ow^ zqpq*Ikf5r<__*&vK(gwNnLJL%6c#LD`OdX?!lsQICr(m2G`FYel$TeNhMlm8NXi0r a28J7#m7{iDV|)#CD}$%2pUXO@geCyn^k_H$ diff --git a/games/default/files/default/textures/dye_blue.png b/games/default/files/default/textures/dye_blue.png deleted file mode 100644 index 6334011e9dd02dd47ef6d57cedea204b120da6a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 314 zcmV-A0mc4_P)A#g24?Zp1&kZ0FSf?-Bh=@LX^Gt{R5sy#azA$<(umO9LkrbZ(f9Uy zuK_%y3LoQ_!@pv(3}RF+@Ug?*T`@!v+El7xNwB`k6Pp`@y0j z_*?B0tHL|ZQ)mA6H>kD?ed{>Bzq{<2_))^Gn6(tYWNS<}_$N;_4gW(!9| zcHLQd;m+zK#hSBzO#2|UY2JYwH@&J>F0T;X<I_Sd6-|rn6E3(GVQ<#DWDG+JYD@<);T3K0RZ%MZ@K^g diff --git a/games/default/files/default/textures/dye_cyan.png b/games/default/files/default/textures/dye_cyan.png deleted file mode 100644 index c133ef4bd99dcdff8aaad7eb62fefc5c13531f84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 298 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvi2$DvS0K&n93>G~C6&^ooZqio zGuNhXgZKP{lXD8JfO3o_L4Lsu4$p3+0XYXeT^vIy;*MU}$k${b(wbPo>>={q>Bh#k zxkVotdA6SusM;mnczye_(9X@B>3=>iJ(>IE@X?duC))HGycX%6Qp2dpX|l&W*rX)jwO$COY|w|v?y0V4;8ptG@08NXzRiy7RhNZ1+EtGD*$ z-V@KdnI*3K{VaIUZCWL%`&97^laGbti4QAY^v*k{UOJ_dU$$Iq)l?(?<8L||4z<22 s?b5z7X^jkrYHeG|Z^xCs3wX>V zc(Z=$vBMSDu75gKFF)Pp-|Tl{^PY+=Xo*kIjOlY?aQzYU&Y3mZj`Ibd*h?t`vxB;y zMVCl>Sah(nHwCO{W1GUh*{+OtkCBFJ-_pij-!!2Q4AWRkX8qn+!nbW{6KD7)WsbvA z!ZW(qQ#Z`K;4_JxZKl!N2AhU!4OU)<9t(P!9j;z`zmdKI;Vst0PR3)uK)l5 diff --git a/games/default/files/default/textures/dye_dark_grey.png b/games/default/files/default/textures/dye_dark_grey.png deleted file mode 100644 index 0cf69a954d13453b1430555e323cbe4513f0fa97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvp#Yx{*Z=?jJ32bX#l@ACm9@0A zOrJh|p7hghpe$oakY6x^!?PP{K+Ysj7srr_xU&-;iXKwnX?e@`VGFZ>TE@D$3lbTh zev3aEu;EvX!~6TS?a8~?hyY#3;OXk;vd$@?2>|emW$OR{ diff --git a/games/default/files/default/textures/dye_green.png b/games/default/files/default/textures/dye_green.png deleted file mode 100644 index 8ba69c707aa13e77a12e944f664508e380b9a80b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvp#Yx{*Z=?j+vYMv&EiO1!&!Dr zp!tf7*t(fUKv~9;AirP+hi5m^fSgI5E{-7;ac3ty6g{NC)AE+>!xm-%wTyLh7bG%1 z{T6>TV8gE%hxhku-%sL>`R9G{YvS?~Sz?D@rZ0Yb;fvB{QRC((sVu85dfjD}vNEuG zob4;=Jo6M?%H+m z#EBC(Z{D1D_V-Gl1Y=2%UoeBivm0qZ&I(T#$B>G+qZ1st4jG8JyyX>I@=o>)WUM}9U^$1yKvd&Js7)X18Yhn_M;7+naXc%t zS;QcXEjHd}w)g~(xr^gio_>h)c;-59wyU7g)z#-C8W}R|&N^kSPdWQ;ekDVStoowQ TZA|t+H#2y;`njxgN@xNA@IGw2 diff --git a/games/default/files/default/textures/dye_lightblue.png b/games/default/files/default/textures/dye_lightblue.png deleted file mode 100644 index dbef01a844c75fcabccc72096011e89ffd5bce55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv(Ey(i*Z=?j>xXnC_nod-bhl~E z^ZuP*c3%7c<9)$NpaRB{AirP+hi5m^fSgI5E{-7;ac9praxyFOv_9O`7$mdceL=(N z+Y4?mMxAA1-}Rq^SE8@1$xLBFfBeDI_5NNL&mFh>Dky`(66E-PuRD~ueFLHhv9IC)p w*Y523LwMSZfSm0IR1c~hUH|{~`+Cd#i7#Yt&3~oq2Xq~Sr>mdKI;Vst0D6gLeErwzvl(8hpFPOpM*^M+Hr{B}XF{C2y?1hJdhZJ~NACxigkYhISahT_KVMD{G zZ}CSJB5cJkeD8mMPgQ){f3Gh!2c&MENwT=#xrKSxew9d5V-LN}2i#V_708(3pnlKv zbc0Kok*KEdDrfmczZ;$rdG7!Jc-n^Hy|uD;djJ3c diff --git a/games/default/files/default/textures/dye_orange.png b/games/default/files/default/textures/dye_orange.png deleted file mode 100644 index 4dbb068a4106d6e824c3186e0e0b42e1f013a9f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv(Ey(iS0FvfjpuNM?73>C+ud5v z=9zriY`?joC=MvWSQ6wH%;50sMjDW_#nZ(xq#|zbgoA?33IeXa?6V5@q%SsM;9cR( zxadApPtJc;7UirR>6?z5=l^d%TW7vq$=^{mSF2-9C0AJ866pl3F6|fZ33G(KRcObH!E^AaO^NIW1q@C<^J_xEexPvVaG=Y8>O;_?$&VuxR*FMfOBi_&IMqV$MwImaI-1ZTW?Mf0lJRC)78&qol`;+0PNUi2><{9 diff --git a/games/default/files/default/textures/dye_red.png b/games/default/files/default/textures/dye_red.png deleted file mode 100644 index 2e5a07e131145537bbef32ced04fc15d4c1c2704..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 289 zcmV++0p9+JP) zoH8nh0ktT5vxUK;FCdNqbwP`CC@vBvQ!pie00I+C+{y`HRYBx%r%<+t$Uc_F19T>` z1QXu4fJxU^P(eM7QH?XWS%d?Sy%?T%Z*yPP=AM}RI+wq<0H)o8Zg5^V^wZX5<+{J= nb7RWFrF0L^xnF@j)j#tFQXwo2($)R700000NkvXXu0mjf;2?AX diff --git a/games/default/files/default/textures/dye_violet.png b/games/default/files/default/textures/dye_violet.png deleted file mode 100644 index e710f22f9272f6f6699b897179f6e9a1bd2c9da8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvp#Yx{S0EiIRoG;(smF59lHhY2 zQf_=m%ijzXWh@Eu3ubV5b|VeQndIr>7*Y{;cEUr^Lkc`CZ`nR0lL0#Wz3g)$H#CB)8tU6Z~n%;dBNe stFSE{!e=LZsf%S{F|7H2T>mQzH=9zu_2vW-pz9bsUHx3vIVCg!0CVwV9{>OV diff --git a/games/default/files/default/textures/dye_white.png b/games/default/files/default/textures/dye_white.png deleted file mode 100644 index beb71079d62f27657962643c1ef740213ff3135f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 340 zcmV-a0jvIrP)gxah|8vRW%>V!Z0d!JMQvg8b*k%9#0PRUcK~#8Njm|-mgCGz_ zVYmS)iTj|%UYQ(#_Rs7s>DiA%`u;~4MKx7frI#PCnpU5Ueuvt;1=1DKF9=2K5!O#$ zMI*jos(+3B9*-5wqvS}!W`{7=K7pP))PKE~c>zvwgV2(A1|@8u`<$Hc)Pk%zexdvb zCurfHIS(D^2D1m^5SsR85jRM)I2U@s0q}wld>(cHNyZv<+hte-3`P)c-+Rfau;1 zo}lm3$jTjC3qFlIRY9!-ISxLVV++g3^=2Gg2b5QX|WXlj^H8 zH?Hs7ys`iI(RpXjEV^)h>7|RyZr)h^=FLubCkI~-S6d6qG}$LQK%1CKg8YCsmrXuv z0p#U+x;TbZ#HIFo@-aE`FxyUjceB0r{?GsFf (A9PC#PE{R$b@NJ@n*Y@8;Td|b z)4%S0?|z`+@DIkHEzIAVRc;G5O!fS_mf?Batl)+#UbBTZOc4|D?0<2<`Vsd(Rhxo- m16K2|y1Xa1|5^9R>gTbF{gkQGkCiCxvXMq zcfoGG?UO(5wPR$Hk=OfW>{&3wdy}o+9TTEGdXpc$$OODLb?{C%Li(AY3Y1apP3838!p00i_>zopr09wU%O8@`> diff --git a/games/default/files/default/textures/watch_a10.png b/games/default/files/default/textures/watch_a10.png deleted file mode 100644 index 29bd5652919b78f7bbadbebf371fe96197361f67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 297 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}T7XZ8E08wO(*OVeIFS7L^RR=p zwUdpFpQr2JKS#|BO~QkGB0_xQA_L;1g3^=2txU{Z?Ck=4+})iVGEyS4QX|WXlj^H8 zH?Hs7ys`iI(RpXjEV^)h>7|RyZr)h^=FLuD4_A9jD_aZ8FM`EcK%1CKg8YCsmrXuv z0pt~Ux;TbZ#HIEh=Q|w0b2#KzYTvuPzyI6c1FI?Y7E(vKYi!1(OSuNMrMhV)uEPSB|(REUJA=rxYr!q o-@^V*aGB4tjZ0O2PCI(b^&e9gYsj|}agf~%p00i_>zopr07}$#-2eap diff --git a/games/default/files/default/textures/watch_a11.png b/games/default/files/default/textures/watch_a11.png deleted file mode 100644 index 6e7b0d0c6d82841848eba50e12b0f1c091a6c9d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 297 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}T7XZ8E08wO(*OVeIFS7L^YGt4 zM;)xKoosCUJYCb1!!Mj)YG!B>9^?}d;_L3@kdYFRl^R)AoK#<(xp95p=8gR>_I8&p zF1vYS^_w?4txU{pEi40k-0dx`d_7#_A_I;eop<)kqWGvF=H<*XK%1CKg8YCsmrXuv z0pt~Ux;TbZ#HIGT3mrD#VSc#u&fHtoKmV&6FEp8`c2oMB1JkdBw@>fI`gX30lwEL7 z|6J&q&+G{Y%APN(oWwGFvPyJynPYxXwayU(FJV8Cg_EZ(eV}?)gTs9PL`k>*lU}~P p-F!pY{OIgwx~7V`KVyHNmwv&;s$$gR$qBTZ!PC{xWt~$(69CQ7a{d4S diff --git a/games/default/files/default/textures/watch_a2.png b/games/default/files/default/textures/watch_a2.png deleted file mode 100644 index d0836a8b7d8f0cc28193f309c5b4e95e8c1c7039..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 297 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}T7XZ8E08wO(*OVeIFS7L^YGt4 zM;)xKoosCUJYB7|RyZr)h^=FLuD4_8|YOM6Qz5&6x_fi^Lf1o;7NE}MMT z0>~@yba4!+h)eB1&UZL~=Wxic)ROmm|NmE?Ez%^YU?pjDVv1VqqM5q4^1m#v3Xq>4 zVEawJ`K>6&gH1o1f3-0_FJ*t^!c?Ycx}I^z`X!odf&o!469gD^mRdGXDKC4__or$9 p683K%!5da?4-v_iTr2yOowa~9>V4C}dqBGxJYD@<);T3K0RR>BarpoM diff --git a/games/default/files/default/textures/watch_a3.png b/games/default/files/default/textures/watch_a3.png deleted file mode 100644 index 207661b93fe14c73888c24fe0f1d933d2dda0657..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}T7XZ8E08wO(*OVeIFS7L^YGt4 zM;)xK{XAWrY;0WY?E-wZ>z1uJ7BtvERzX z%*@cl-O1tj(RpXjEV^)h>7|RyZr)h^=FLufODkUwS6d6qztctU0&QX{3GxHlTsHZv z1(28L>Eakt5trKU&c|%X!@N^DU-#wS=l|#P^l&syJmXuuz$0~y^s{f7MXS<^+kb7V z3cvrmgpKFM_fsa~F&nHsHt8xx%(`OBRcPy_-0HD*OWDN6R+GR9aT6QUkBI;A{&Jw& nCHTX#eM{ATPP@PLe+|ROkE|AkhL1M`ZD#Ov^>bP0l+XkKB0_xQA_Lr=99-<};-iAnlfyGoBC=8=%Zih%Ow4R8EX@o} zHm>j6ys`iI(RpXjEV^)h>7|RyZr)h^=FLufODkUw*ZS&A?(^5@0BvF_3GxHlTsHZv z1(28L>Eakt5trKU&c|%X!@N_ux;pFq)Bp2%gt!kWJ@hSJ(Dv)dth^j~HUH53yb0@9 z$A-SU$!YMw;(ybx9%jC1&u>Z$-jiqjW{LS0be?5NSd_I!iXyK-$CnB9M?wicEdDG^zz zk#Ug$@lip?kIp-LW|6Ol>!pj!Zr)h^=FLufODlILhwvbuLnrnX0BvF_3GxHlTsHZv z1(28L>Eakt5tn-2o$s&%k8|L!?3l~d`QP`aOo$L@X|dkh>hMbVwOISJ#7`k_f3f{7 z-M;qN?@A_~8NT~2%qvW=nx4YUctx%BJIm~)Uz8j(m(;TLUD9&id4!+mf1-2Ktwrqj nlxG>4_3GLl-Tr6Y-}BNBwONI$X6!Ww+RWhT>gTe~DWM4f*|BuN diff --git a/games/default/files/default/textures/watch_a6.png b/games/default/files/default/textures/watch_a6.png deleted file mode 100644 index d6001484e83ab2c0ec25aa05fee19392f945a6fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 289 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}T7XZ8E08wO(*OVeIFS7L^YGt4 zNBulqoosAe?Csp09DF@o%?wQfeB8r>d?G@8<01p%qk__t!!uGMvQi@*tgSb1>_2{V z-q|yYE}UO_>Eg1RH&$DjnAuubmK7(xd9%~r(yG2XbL09xSw5H3K%1CKg8YCsmrXuv z0pw+Px;TbZ#HF4;&UZvXfH~ke^OEoL-v0kTd9}cnZj*f<`I>u;Cxxx8=5(6$vT#C~ z{JWE1&xucRDmrK5qs{!Gm{}qJU&CI8m&Q$NS+d*`WDJfS;LAudXx+82{-Ui@@ULb6 gb*HK21ZIcszopr0L*u9T>t<8 diff --git a/games/default/files/default/textures/watch_a7.png b/games/default/files/default/textures/watch_a7.png deleted file mode 100644 index 2335933541be61d63ab32862d7cbc34418bce519..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}T7XZ8E08wO(*OVeIFS7L^RSbR zji0A$dUCjfwe{aWN9(IIH?Hq9Gc<{h3i9=E4e)V4duGvv^Goe5tuj&~HgD`desrFd ziJ6PNox78Rt%YTHkWW@>Eu$4|5&>Gw;OXk;vd$@?2>=ccaR>ka diff --git a/games/default/files/default/textures/watch_a8.png b/games/default/files/default/textures/watch_a8.png deleted file mode 100644 index 62320348a6563c36277ce82520bd595bd888778a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 297 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}T7XZ8E08wO(*OVeIFS7L^YGt4 zM;)xKoosCUJYC}=1LC8C!h?JwLVN>!+|3M4tW3;Y?Csp09MY4+Gg2b5QX|WXlj^H8 zH?Hs7ys`iI(RpXjEV^)h>7|RyZr)h^=FLuD4_8|YOM6SJjr@Csfi^Lf1o;7NE}MMT z0>~@yba4!+h)eBv=R0h`!(#5dbJ_QM|Nfu6A?V2QVcrSLoQpXVOi!=-d#fUg`Aza-#qM diff --git a/games/default/files/default/textures/watch_a9.png b/games/default/files/default/textures/watch_a9.png deleted file mode 100644 index e1a8b3aaee341add075d2aeb5724a86ea21bf800..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 297 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}T7XZ8E08wO(*OVeIFS7L^RR=p zwUdpFpQr2JKS!-h%mRGe!-ISxLVV*Q1LC8C(v!n8QX7|RyZr)h^=FLuD4_A9jD|aUc4wJG&K%1CKg8YCsmrXuv z0pt~Ux;TbZ#HIGT^BpnZVcw~1om&0=>;L(8ECg7XXHGU?@4Aw6VAju7f1@lzUF`NQ zsLtcpt1~~)@VZXqXCJrTUxhb59A;{!@4alwE;V^A3A1Vvm5B8A*1Du_^r7cRQ+=mg nMSlj@y(`;GRPGx^T0i7x5@roL<{F3d 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 literal 833 zcmV-H1HSx;P)b%9 zmq|oHRCr#k)QfInF$@IIgm%UW(C5B)|NlR0*>XZ4x#jMzrHYDbPRACPl>c%56YzL5 z?QQD#uUo*w^(gA^lTS}4TGL&C|L3-cl&{~O3kW!&0C_KvGobJl0}}oMn2^@MC|F#iuvGvEa34^_D+EB^ z3z#4(paCK50YWHf6|e+yKHQu!0Kgys8vtPYU00A=K{yl@(hR`s`+HU4a9P0sfbb!x zGY9bc<$V5Gc?rZ7e1`zA0Lu6C`Ij)|*%{*qbYu=3YpnvdOLm|P0I>v)M*;H;(1|AG zv;m47b)?(?Do8b_19=LF?w~*#0I#6Sl~{$q3aC0W0Nz9S0-&scafRFfixpRNFg>D` z)jXJ*KsYdrB69%tw*dOX(12(m1>g+u3bvpFBwBBAK+Hp#0e%E20c2W%4zw4{f#O#* zKnY*q0)PRq-&RM|yod`u-vMXTzzPt18dRX=ahWf@0FWmD{RY*qOv?uVyP-1zfJ?w1 z2QO{$4yb1mU^`BM5dLAeAR5-;uu1W{lFh6;VE z0+zGQtvv`brx}o*167F-Ey zASMdj5Dmzm1F{8hy8(gzIT(fe0ne|5ZGcx#^iE(bQ0qjX3)?{CO}MW@8aMFz2AHr9 zkTp;~2M|Dv3p;`1IC3K_fxf{ukahv%6?OsZD{KSDzXz}eWcvsolA%UJlv;PM00000 LNkvXXu0mjfeWG8U diff --git a/games/default/files/default/textures/wool_black.png b/games/default/files/default/textures/wool_black.png deleted file mode 100644 index 17e06615afac43fb35906087ac9fe96a489e2cc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 562 zcmV-20?qx2P)=7!(v478V;97aSNE9T^!O8yg@T93dSYA|4(iARr|nAr_VaHvj+uz)3_w zR2UfrKtF3!Q4~M;cMkdmJc)u%lJl@om(cesO$>2qFBJp_r5910d~kz;LmJ^|Y8D5* zi%T<SxeR2m{10w5Kpt=}<=1s#c}25A%Iq^vhW8RP{p1qBjTZ!|mJ0)zKgY zvK#&gJsZWuXpweF&HA;Tze{Ib!QKngb0gMzCOGiryv@Yt}c#s7}FKyR{k8*rcS62I-f#);tLZZ||h(!Vv~_Qk?{WkLBc3AV$4Vjk65Bs2T(5 zh!OM<0Qiy-CRJ|TPyw*QTkCBm7<7nDk!wmuQ%zXy9uQx2GX4F`-1_r~LM$~!)fi?@ ztyl_C^|*Gdknn=roO(#vl$A zll5+r7RsbM)sL{}KxP=3^i^t2Ob%i+48z;KmTDDr=s);kPsc z)?6;cvg`!$*g$ueWH}Ny!(++%UpCNvDH8Vo1D875ImO$bTmS$707*qoM6N<$f?y`; AW&i*H diff --git a/games/default/files/default/textures/wool_blue.png b/games/default/files/default/textures/wool_blue.png deleted file mode 100644 index e23b36af3400b60ff7d0798ffad9a9e6ba8ffd50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 676 zcmV;V0$crwP)Oop(;41BruUBF_I-QlqNEjCNh^NG@K(YiX$$JDK?@iH>D&mjVwB^EjzL%GnpYP zf-50NWdv(c zM@&c}3bLJENGaW&go?BgOfD))R(wic@urB|?bcBqL6qQA(fH1rLRg=v1xsJKF-tkf z*h@~bXtj#qOKFxMu!jv|(~NPh?)h96+QmX%mF)MvLeD0~l45FDpQt%nQKm2U^h=r$ zG}P)-MHOlexbF>^wW5YvZQT;^ap#WCIBN;7QsiyP!YvJSi%-#}@{8s!N@i~^79^dH zKg^EMD1@!XAgf>yN}cyI>TuMEJtANbZVZ-5$H4}nVnJ|}iL|a-1G8ttNql+H;|P($ zl@T-l>j;s5_)j*A%h9Zucx33Y5%Dj73s?e$M}{67LaC6=&-5;y-YibG7~O1Sk%`pZ zV9CpZt>KEAvJwi9{Nzucvh3NJTQu6aT8QuyJ_&#uaD}i?+Tn+w*6S2{)%XJMcTvd~ zKdNd~-snIzf_Ifr%TN3&+ruti(gW8!)0GW}zbJBaSqbGqo0~SenoXv#;o!U$qWpmA zL~hK!`4Fyw>MB|ZQTAXuku@{E`M3$8#5`G*d+YDPP$r=sm&)NhRSChhR8%SA6>7Ei z(xi?7?wUeHcrtLQMRyasi%Ak&b4Bh&Iu|09!tP?CG>_sWTlft(lih5hj>``K0000< KMNUMnLSTYawkgs8 diff --git a/games/default/files/default/textures/wool_brown.png b/games/default/files/default/textures/wool_brown.png deleted file mode 100644 index 30899a8b3a1b63cc735c83cc38510a80067d8509..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 588 zcmV-S0<-;zP)hV>=*XIv++V z7f34?UpO9!dbOMY00GEJL_t&-83n-!f~z(Z05Cn<&ynnhxyaoAmPh?G+DpZI`cgF`P?4xx-Qc}_y~ zg5MrG{zzWBZdQnXl22N8xDkD!u-q9V3{?Bs z80x?WXR+ZTO9rZ49;ld4PK@$JCa!K9>y>J6U&cD?hT@mHNp41~Ri&v$p27}Q5r6BN z#Q-_)(<=8PKJjCJql?Cd9yl?nfta@pTHCFSnvah@Fky5m1E?O241o#;>l0VpT{@86Yrh+ zW#aW9HD<2)L+t}^RAS;~A(B2JW_op)EYdf~yJQkcH;I|99+)hLNP*T(c^V&UKeiz1 zra!;KSc9$)NtS5AoB4&dlXM`$# zp&?;>D}kmhg{mQBfFNLdD}baTWq~Y$rz2^GD0i78Y>S%qD+T}n0qaRbK~xwS1;C3= z;z|Gj&@(fA0xIf)H~atpwuwfA(3ZBeotw}m^gLT^!bsr#%K@Di(aOtTBpVvCcUhNn z-uqP~hSrm0lz8xBo_B)+d-u33i*NM=Y9-8;%7w*4vAaC9#$72K+ z(PV?b2ka3V1$l~OJNjI$n=_w9(M|>hk1`WCDtZ-h`=sC=SwmD3<*lTs0|VCDjKN7% z5@m6v#%*OqB@a%7qqO5+$+LV*tk1pKzVXYw5G8|u9-g^bt?X5LxNC%yNnujJs46YG z-K;@xC*F|&qv}qf9W-?I2nSjwy-Z})3MMvZ!yp!gJ9>x&Eg2i1c7((ev)Lw=i_%i? z!fndva=F<1C%ghE+53Z6>s%x&x>F2m! ziZ{lEIIyStAf#BUB|nZW?SXmtvi^S9Cb@?P)(^czez+vR2Ufr!3$!XI1~Ud`PrCHrkmdXl5ICB0~qW|X-&9E9+Px}^%Cf+ zFu0+ZFvIH7BciyJ#QDRc8`m(VtkSpL0`_>G$CvyUR1La!@;|pjDF^*eQbey9{nUk* z z1YidSq$(Q-Z`qJ#NpGL67oG$>f%-->+_7YF)~00000 LNkvXXu0mjfuSEC; diff --git a/games/default/files/default/textures/wool_dark_grey.png b/games/default/files/default/textures/wool_dark_grey.png deleted file mode 100644 index c37b544ca037f57037742ccac15840329b6e3e3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 578 zcmV-I0=@l-P)-t@RCe)tlXZp6a-7W z5{1&s5Ot|YMi5AA`*_$npi_W=G2Nm>n1DJpkrTEgzI4pa0+Pc=?~vrV9jZ}d45*b$ zivAkf;}?fq?K1Gv%3g{$JX-SLD8PpJkSq3;#+Y*yNSi+V+Ud?!TD{5nK!Bi8_g&+ho@#O zH3?3e2|Z`9j)uG?T!dUwVt#NtmA)?}GR&0y#2k8QYh%8w9x%{ME>V^hDe2ecZwij` zK@{DoQ(Hw;A--~?vQ2cI>`Ct&#OP`rK_Y+2c4wUf@-%6z?>D8C5K9J{y0T^L3BlDr zPr{wQk3qGHMWbl?z`~9}HO51&M3ZN^=NKG{5T%GnOU4WfoWb*bcdWgJI4#Cd3uw|b zPW`Nzk@PXXEl(}1ld+ne;l!`YKd}&3@^7u!oA6M-h-QeA4>flE)uVAIgw8JH@9cH( zVrxDT@j4;oAMAU)v|rv6O>+~$;shhRHLfd4&pu7iK{Kc+F`+0jr6@VN zEjha`I=wDM&N({1FE+9(OV2xr z!bPA2^D!M$T}5?hME8T#G7^8Y&K3x4T20a`DL-;9YK3Z0~v8P#mirRZu z4x=bbK6F-$8V%1T9UMey>|&nXU#oVSrYfc}nmNW`?8mXoDZ~!H0h9B{QJXa!EfFeO zf|EjIX6@+8ci z6NExfjMO?DueZemt6 Z{s5*z=8VOKF9!es002ovPDHLkV1oOtFwp=2 diff --git a/games/default/files/default/textures/wool_grey.png b/games/default/files/default/textures/wool_grey.png deleted file mode 100644 index 909a90688c608a37e5ef9814100c97c765ce2c8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 650 zcmV;50(Jd~P))~t+ce4prD$ep`4?mpQfgenVFNEoTsj?m7boUr>D5Ry`7|_ij$Lzl$5Ko zvV)9_u(!9hy1Ipqj(~}YuC=v?kdU&sw~UpQqN%Bonwnh3<{JP20qaRbK~xwS1;C3= z;z|Gj&@(fA0xIf)H~atpwuwfA(3ZBeotw}m^gLT^!bsr#%K@Di(aOtTBpVvCcUhNn z-uqP~hSrm0lz8xBo_B)+d-u33i*NM=Y9-8;%7w*4vAaC9#$72K+ z(PV?b2ka3V1$l~OJNjI$n=_w9(M|>hk1`WCDtZ-h`=sC=SwmD3<*lTs0|VCDjKN7% z5@m6v#%*OqB@a%7qqO5+$+LV*tk1pKzVXYw5G8|u9-g^bt?X5LxNC%yNnujJs46YG z-K;@xC*F|&qv}qf9W-?I2nSjwy-Z})3MMvZ!yp!gJ9>x&Eg2i1c7((ev)Lw=i_%i? z!fndva=F<1C%ghE+53Z6>s%x&x>F2m! ziZ{lEIIyStAf#BUB|nZW?SXmtvi^S9CNy~}IVze&owJ;uda zJur|BOXw$$;%E)5TwKu?~GqA!>%&9c9$z;*WXVR@TxXWtOr!%s-ImE|c(ZyNL zHmO_<00066NklrUHN007|c9AA<+u|p_?iNTM)|3g(;H?;+cKpZ>qeG1=y zA}2SvsXhrDS_^`$=#_^G(G7Pj4z9vDj)O)>nO>YFKBc4-Oin7al6ZfA?_bpoL?cX^ z+?iG)9ZzI`g3PvwNSZ{07oCeqbU5rlD=}NamS-ptjy_n$j>VR#3CYTyug%AyH;E)x z+#zQY=zM*BZ8%{HLC)ygXGWIfoUoZpm=&U&(KmNn61)XgTVupDf3B z(fUqJH;77qDHM)WUM)PD-Jp{Qj|!>ZGPnwb(mzSGK`j?gI0LRiO0Ae|I4coS4)kgZ zyTxp!7rEGplUNi^s9{H^C&z`0nGo60T5IguXc4!RoLl!=5f=(Kv_PZe+`88iQqf|0 zp;mi%v&<^o3`&*A%v3EO*6(lW~bUd!15*20qvVE zSF_2qU2}Hc3(@j7>WMZtd-hA{xAeW8wIoni>WNk|Q}CE3NV4GJ-QrQt00000NkvXXu0mjfZo5PC diff --git a/games/default/files/default/textures/wool_orange.png b/games/default/files/default/textures/wool_orange.png deleted file mode 100644 index b4726c990f01ece2cd6656d544de791b1c178e08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 602 zcmV-g0;T3cBgbtdY7H|v8u>3J;cg+S|uLhFP+?2S$7cPi&@9O!c+?21R`YZvX0 zPUvqP=WH14iACyxIry5mX8-^J&`Cr=R2Ufr!3lEWH~;{^)@5S|B&n(W{|k3QxQs2! zn(lC(F|kOxn#rVDKz9^Pgg3H|jZISZec!v6kV(bhEqL)kt-VF`SYjh0|%|&g*@Fu+w;Y`>$B+7 zw{A7jO)_W621il&z^-dhl`N{Q`NpD(Z$v;pN4~gM84&|fzyR#NxK|nS+b-!Bn!Er0SGrTDIvTAak#VeW z=1<||=YbcGRfzuZB6yi>E}qOq&~-tC7rdAOGteOv$pwE=L{U|xaE5CVC2sr;;TS3r zqyVm(+&5?S9;QbW>X~OUv}_(pAHV!Z diff --git a/games/default/files/default/textures/wool_pink.png b/games/default/files/default/textures/wool_pink.png deleted file mode 100644 index 6c2bdc4b72ff34cfe6f597d513113c87330033ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 718 zcmV;<0x|uGP)=Ehuw~(;F+w_ZHU^1oZXP6&}D+wd6Ldu zeAj%H-qA9a9K$dgbNzEFTKq&|g{M-BJ>AdZn}rSa_YH zUZ!8X_Lii7nPy%BTg^wsw0RA&DX!=wsb~_sm~HtmnRqa1pwJ3iL9ds?NhmGs(zOgH zlXyT1I0*^8^&n$sjj-UB;G`z31dUR~?3=z4pPwCYf!k4y3w@*VPS3Z`A8*L?M#y`juLCL$cgSt2Q%A=t+#iKoNM9Ah68JR zh1xeYRn)roDHY)Wdm2Cmd_q{cc*IU{=R;JB()Ld{zKbsW$8NE>N`DbS+Jd8NAu~Vn zBVBgor5o<)Q;v}}yFW;llj=9pPL^6^deKp6ZrQ2ULaBbnrDC2;w)R47$S#5h5ieXS zW+ryNiX@plPrXVuS$UosY1I!&Tc+zKYqRqhB_SEbqK|lhTyA-~sW-gCU`phKdv6q@ z)WyKl&S+2uL&wdV$VNd*F7>oCk~+`Ql^YxX0~RLo8c8_+#sB~S07*qoM6N<$g6ED_ A>Hq)$ diff --git a/games/default/files/default/textures/wool_red.png b/games/default/files/default/textures/wool_red.png deleted file mode 100644 index f51e358d725fda1a8076749efd2742e215c90f04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 666 zcmV;L0%iS)P)?UfSI&VFIRwU{MLWqY?L{FG0OiG%j(i+s2m?UIIj5@koD(Sau~ zGS8Ab+(qG4=jg0}MwqQMb!kQ`i7g(0MwsdCS~HCrVM|S?wGe~JPSB7=>s~w_wP+!d zY*>)VIzqu;oD60$1;Myt!;n#k_{C9$1oSox83kdh)Jg{)7WGZ;Z7`bD)*=)0aDl*6 zW@DI8QU@VfSg3UtizpDH!QQu55f2g2AmU%HJ(K9*p}uksGXMYp07*qoM6N<$f?q%% AhyVZp diff --git a/games/default/files/default/textures/wool_violet.png b/games/default/files/default/textures/wool_violet.png deleted file mode 100644 index 078d1943aec6172ba13726f3b1926d4a502c376a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 696 zcmV;p0!RIcP)<(t$F^dM~_dDWq>I zt8pu?i$BhDEU|zw#*anNc`mzfE39oQr)(*vg)_`}F1e6L(2`2glS|TcEVGI|&T=fT zfVe3=00069Nkl9nxf>2i^Kh^T zSI*N)NIFYiYIPDh5{<$#h9GBDbs6Qj&|yDmG24i8MwLyDURc zfn|3RU8NS@22p47Vq?dv#lqI?72YJm9}eDmQo^fH>79~jjan}Lzzld5GIGUa%}Irj z^1wlDp$sNFCxJ#KEaKO%exQbuvz#p&Y6~IqC%;WSIQ5Nxo!C0}$OuPa3k{W7Yf)M87G2yq$wg>jrU1MF zCkPw8k9ZX1I%^kO=gUWU9z{JrdCanH+Or1d3wV|andP2e>1HVAdaTGArk;w^2NF?J ziP<0v*?N{4Or~PRNnJ@z%V(-1ZIheb8HK(u553Y##J?OD8fKoo(~}PJ{Ng|1o?kni zobggf&g)$2?5t17M7)R5Xw}|MYf@Ot6B*&wkzx=HR@^+9OsdH|aD5ipD~Mz+Zk|je e>O@?*w)Q_md*vxYCcTjW0000 zYmT&y?7d`<4-MbpUM{pDDRE$g8CxGbxL+=p4UynIhdmXsLTs0?=DAxPbVOmZ*)&xS zL0t=;i%u=*hy?SDrHbzr>s)HEekQ|#st2V|z1{+a2dM$nIe;F5&sOxKF?GF(KO>iHeF7K%+%WZ6th<<=A{lrLug~})EhI}HVW>Px=?5dN`cr`0;Q;}<9=Rsj;UOD zi4LF?by%o&oio-$@Sb;srnWS9KB^grSnb+ckHW>mC8p5iR>T-9mJ)({yCH2qN;QX( zty<24lfpMoLcC$=3x+^s!AaqpCxX93w#s{|2AXqa-vC1`eWj3`qmy4?Ot)m4{sSk ztZ2&!e%0jk(L~(|(MYbV@lpSQ*Ly-%PMMIo5sl=`rDrBvuWkJg_9X=Od!G_400000 LNkvXXu0mjf^mrZ9 diff --git a/games/default/files/default/textures/wool_yellow.png b/games/default/files/default/textures/wool_yellow.png deleted file mode 100644 index dfdf965fb76a85bbe07a08716f38311af9980a98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 680 zcmV;Z0$2TsP)Pj_nvW8rmlLL% z6}_+<)5IUZvKzs)9NWz!+|DVdofe*x6P=P0+|DPeo))B;6|kfi+RP$Lc3K($00IC> zL_t&-83n-UZrVry0N`)N7Y0n)oK2*v@Bdi)qg`zSQ3A#Xw#TdR>kmqHI=!$ExErkq zHljCv+#~6cvAWX<^E^)m`5)$0F6k8HRGjn9D~{@zWtrca5=1kcWtD$9I>`4Y%J+lJ zzKzJ*Op?4BMQ z2=4h*tOeU?WyJL4f}|4N^QjPKCbSb18beZ%y=M7|dPu2`;qWnqbvuTvuZ#M!EMb_U z;Kj~P!@--xPVxbjO!%Q!7;ItD?M%*jw82Fso{$3;T~1*)+i=z(6g<$oSZP+tXd`mb z2uXZ=bixH1Mk50*T&#r13-4;J=9)>eg*S#T&t?(-@ubHU$hOx5K8Ma?|C(E{vz`&Ogc4=(-c~S+UmJS!uFZ_7!L6 zJ0V)1F(j^)-wo@ki> O0000 diff --git a/games/default/files/dye/depends.txt b/games/default/files/dye/depends.txt index f0db5ac3c..e69de29bb 100644 --- a/games/default/files/dye/depends.txt +++ b/games/default/files/dye/depends.txt @@ -1,2 +0,0 @@ - -default \ No newline at end of file diff --git a/games/default/files/dye/init.lua b/games/default/files/dye/init.lua index 16cf9b39f..d7d18f7a0 100644 --- a/games/default/files/dye/init.lua +++ b/games/default/files/dye/init.lua @@ -1,157 +1,87 @@ --- multicraft/dye/init.lua - --- To make recipes that will work with any dye ever made by anybody, define --- them based on groups. --- You can select any group of groups, based on your need for amount of colors. --- basecolor: 9, excolor: 17, unicolor: 89 --- --- Example of one shapeless recipe using a color group: --- Note: As this uses basecolor_*, you'd need 9 of these. --- minetest.register_craft({ --- type = "shapeless", --- output = ':item_yellow', --- recipe = {':item_no_color', 'group:basecolor_yellow'}, --- }) +-- minetest/dye/init.lua -- Other mods can use these for looping through available colors -local dye = {} +dye = {} dye.basecolors = {"white", "grey", "black", "red", "yellow", "green", "cyan", "blue", "magenta"} dye.excolors = {"white", "lightgrey", "grey", "darkgrey", "black", "red", "orange", "yellow", "lime", "green", "aqua", "cyan", "sky_blue", "blue", "violet", "magenta", "red_violet"} --- Base color groups: --- - basecolor_white --- - basecolor_grey --- - basecolor_black --- - basecolor_red --- - basecolor_yellow --- - basecolor_green --- - basecolor_cyan --- - basecolor_blue --- - basecolor_magenta - --- Extended color groups (* = equal to a base color): --- * excolor_white --- - excolor_lightgrey --- * excolor_grey --- - excolor_darkgrey --- * excolor_black --- * excolor_red --- - excolor_orange --- * excolor_yellow --- - excolor_lime --- * excolor_green --- - excolor_aqua --- * excolor_cyan --- - excolor_sky_blue --- * excolor_blue --- - excolor_violet --- * excolor_magenta --- - excolor_red_violet - --- The whole unifieddyes palette as groups: --- - unicolor_ --- For the following, no white/grey/black is allowed: --- - unicolor_medium_ --- - unicolor_dark_ --- - unicolor_light_ --- - unicolor__s50 --- - unicolor_medium__s50 --- - unicolor_dark__s50 - -- Local stuff local dyelocal = {} -- This collection of colors is partly a historic thing, partly something else. dyelocal.dyes = { - {"white", "Bone Meal", {dye=1, basecolor_white=1, excolor_white=1, unicolor_white=1, materials =1}}, - {"grey", "Light Grey Dye", {dye=1, basecolor_grey=1, excolor_grey=1, unicolor_grey=1, materials =1}}, - {"dark_grey", "Grey Dye", {dye=1, basecolor_grey=1, excolor_darkgrey=1, unicolor_darkgrey=1, materials =1}}, - {"black", "Ink Sac", {dye=1, basecolor_black=1, excolor_black=1, unicolor_black=1, materials =1}}, - {"violet", "Violet Dye", {dye=1, basecolor_magenta=1, excolor_violet=1, unicolor_violet=1, materials =1}}, - {"blue", "Lapis Lazuli", {dye=1, basecolor_blue=1, excolor_blue=1, unicolor_blue=1, materials =1}}, - {"lightblue", "Light Blue Dye", {dye=1, basecolor_blue=1, excolor_lightblue=1, unicolor_lightblue=1, materials =1}}, - {"cyan", "Cyan Dye", {dye=1, basecolor_cyan=1, excolor_cyan=1, unicolor_cyan=1, materials =1}}, - {"dark_green", "Cactus Green",{dye=1, basecolor_green=1, excolor_green=1, unicolor_dark_green=1, materials =1}}, - {"green", "Lime Dye", {dye=1, basecolor_green=1, excolor_green=1, unicolor_green=1, materials =1}}, - {"yellow", "Dandelion Yellow", {dye=1, basecolor_yellow=1, excolor_yellow=1, unicolor_yellow=1, materials =1}}, - {"brown", "Cocoa Beans", {dye=1, basecolor_yellow=1, excolor_orange=1, unicolor_dark_orange=1, materials =1}}, - {"orange", "Orange Dye", {dye=1, basecolor_orange=1, excolor_orange=1, unicolor_orange=1, materials =1}}, - {"red", "Rose Red", {dye=1, basecolor_red=1, excolor_red=1, unicolor_red=1, materials =1}}, - {"magenta", "Magenta Dye", {dye=1, basecolor_magenta=1, excolor_red_violet=1,unicolor_red_violet=1, materials =1}}, - {"pink", "Pink Dye", {dye=1, basecolor_red=1, excolor_red=1, unicolor_light_red=1, materials =1}}, + {"white", "White dye", {dye=1, basecolor_white=1, excolor_white=1, unicolor_white=1}}, + {"grey", "Grey dye", {dye=1, basecolor_grey=1, excolor_grey=1, unicolor_grey=1}}, + {"dark_grey", "Dark grey dye", {dye=1, basecolor_grey=1, excolor_darkgrey=1, unicolor_darkgrey=1}}, + {"black", "Black dye", {dye=1, basecolor_black=1, excolor_black=1, unicolor_black=1}}, + {"violet", "Violet dye", {dye=1, basecolor_magenta=1, excolor_violet=1, unicolor_violet=1}}, + {"blue", "Blue dye", {dye=1, basecolor_blue=1, excolor_blue=1, unicolor_blue=1}}, + {"cyan", "Cyan dye", {dye=1, basecolor_cyan=1, excolor_cyan=1, unicolor_cyan=1}}, + {"dark_green", "Dark green dye",{dye=1, basecolor_green=1, excolor_green=1, unicolor_dark_green=1}}, + {"green", "Green dye", {dye=1, basecolor_green=1, excolor_green=1, unicolor_green=1}}, + {"yellow", "Yellow dye", {dye=1, basecolor_yellow=1, excolor_yellow=1, unicolor_yellow=1}}, + {"brown", "Brown dye", {dye=1, basecolor_brown=1, excolor_orange=1, unicolor_dark_orange=1}}, + {"orange", "Orange dye", {dye=1, basecolor_orange=1, excolor_orange=1, unicolor_orange=1}}, + {"red", "Red dye", {dye=1, basecolor_red=1, excolor_red=1, unicolor_red=1}}, + {"magenta", "Magenta dye", {dye=1, basecolor_magenta=1, excolor_red_violet=1,unicolor_red_violet=1}}, + {"pink", "Pink dye", {dye=1, basecolor_red=1, excolor_red=1, unicolor_light_red=1}}, } -- Define items for _, row in ipairs(dyelocal.dyes) do - local name = row[1] - local description = row[2] - local groups = row[3] - local item_name = "dye:"..name - local item_image = "dye_"..name..".png" - minetest.register_craftitem(item_name, { - inventory_image = item_image, - description = description, - groups = groups, - stack_max = 64, - }) - minetest.register_craft({ - type = "shapeless", - output = item_name.." 4", - recipe = {"group:flower,color_"..name}, - }) + local name = row[1] + local description = row[2] + local groups = row[3] + local item_name = "dye:"..name + local item_image = "dye_"..name..".png" + minetest.register_craftitem(item_name, { + inventory_image = item_image, + description = description, + groups = groups + }) + minetest.register_craft({ + type = "shapeless", + output = item_name.." 4", + recipe = {"group:flower,color_"..name}, + }) end +-- manually add coal->black dye +minetest.register_craft({ + type = "shapeless", + output = "dye:black 4", + recipe = {"group:coal"}, +}) -- Mix recipes -- Just mix everything to everything somehow sanely -dyelocal.mixbases = {"magenta", "red", "orange", "brown", "yellow", "green", "dark_green", "cyan", "blue", "violet", "black", "dark_grey", "grey", "white", "lightblue"} +dyelocal.mixbases = {"magenta", "red", "orange", "brown", "yellow", "green", "dark_green", "cyan", "blue", "violet", "black", "dark_grey", "grey", "white"} dyelocal.mixes = { - -- magenta, red, orange, brown, yellow, green, dark_green, cyan, blue, violet, black, dark_grey, grey, white, lightblue -lightblue ={ "violet", "violet", "orange", "orange", "green", "green", "green", "blue", "blue", "violet", "black", "grey", "grey", "lightblue", "lightblue" }, - white = {"pink", "pink", "orange", "orange", "yellow", "green", "green", "grey", "lightblue", "violet", "grey", "grey", "white", "white" }, - grey = {"pink", "pink", "orange", "orange", "yellow", "green", "green", "grey", "cyan", "pink", "dark_grey","grey", "grey"}, - dark_grey={"brown","brown", "brown", "brown", "brown","dark_green","dark_green","blue","blue","violet","black", "black"}, - black = {"black", "black", "black", "black", "black", "black", "black", "black", "black", "black", "black"}, - violet= {"magenta","magenta","red", "brown", "red", "cyan", "brown", "blue", "violet","violet"}, - blue = {"violet", "magenta","brown","brown","dark_green","cyan","cyan", "cyan", "blue"}, - cyan = {"blue","brown","dark_green","dark_grey","green","cyan","dark_green","cyan"}, - dark_green={"brown","brown","brown", "brown", "green", "green", "dark_green"}, - green = {"brown", "yellow","yellow","dark_green","green","green"}, - yellow= {"red", "orange", "yellow","orange", "yellow"}, - brown = {"brown", "brown","orange", "brown"}, - orange= {"red", "orange","orange"}, - red = {"magenta","red"}, - magenta={"magenta"}, + -- magenta, red, orange, brown, yellow, green, dark_green, cyan, blue, violet, black, dark_grey, grey, white + white = {"pink", "pink", "orange", "orange", "yellow", "green", "green", "grey", "cyan", "violet", "grey", "grey", "white", "white"}, + grey = {"pink", "pink", "orange", "orange", "yellow", "green", "green", "grey", "cyan", "pink", "dark_grey","grey", "grey"}, + dark_grey={"brown","brown", "brown", "brown", "brown","dark_green","dark_green","blue","blue","violet","black", "black"}, + black = {"black", "black", "black", "black", "black", "black", "black", "black", "black", "black", "black"}, + violet= {"magenta","magenta","red", "brown", "red", "cyan", "brown", "blue", "violet","violet"}, + blue = {"violet", "magenta","brown","brown","dark_green","cyan","cyan", "cyan", "blue"}, + cyan = {"blue","brown","dark_green","dark_grey","green","cyan","dark_green","cyan"}, + dark_green={"brown","brown","brown", "brown", "green", "green", "dark_green"}, + green = {"brown", "yellow","yellow","dark_green","green","green"}, + yellow= {"red", "orange", "yellow","orange", "yellow"}, + brown = {"brown", "brown","orange", "brown"}, + orange= {"red", "orange","orange"}, + red = {"magenta","red"}, + magenta={"magenta"}, } for one,results in pairs(dyelocal.mixes) do - for i,result in ipairs(results) do - local another = dyelocal.mixbases[i] - minetest.register_craft({ - type = "shapeless", - output = 'dye:'..result..' 2', - recipe = {'dye:'..one, 'dye:'..another}, - }) - end + for i,result in ipairs(results) do + local another = dyelocal.mixbases[i] + minetest.register_craft({ + type = "shapeless", + output = 'dye:'..result..' 2', + recipe = {'dye:'..one, 'dye:'..another}, + }) + end end - --- Hide dyelocal -dyelocal = nil - -minetest.register_craftitem("dye:white", { - inventory_image = "dye_white.png", - description = "Bone Meal", - stack_max = 64, - groups = {dye=1, basecolor_white=1, excolor_white=1, unicolor_white=1, materials =1}, - on_place = function(itemstack, user, pointed_thing) - duengen(pointed_thing) - end, -}) - -minetest.register_craft({ - output = 'dye:lightblue', - recipe = { - {'flowers:blue_orchid'}, - } -}) diff --git a/games/default/files/fire/README.txt b/games/default/files/fire/README.txt index 2b39f5da6..fdbce15fa 100644 --- a/games/default/files/fire/README.txt +++ b/games/default/files/fire/README.txt @@ -1,9 +1,5 @@ -Fire Redo 0.1 - -by TenPlus1 - -Based on Minetest 0.4 mod: fire -=============================== +Minetest 0.4 mod: fire +====================== License of source code: ----------------------- diff --git a/games/default/files/fire/sounds/fire_extinguish_flame.ogg b/games/default/files/fire/sounds/fire_extinguish_flame.ogg deleted file mode 100644 index 8baeac32ed9941d91ca78903da3ac96cadbe34db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6499 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 nW~$6=@x>`Ovb9>9M97n055 diff --git a/games/default/files/flowers/init.lua b/games/default/files/flowers/init.lua index a454ea50f..7485183b9 100644 --- a/games/default/files/flowers/init.lua +++ b/games/default/files/flowers/init.lua @@ -124,120 +124,84 @@ minetest.register_abm({ -- Mushrooms -- -local mushrooms_datas = { - {"brown", 2}, - {"red", -6} -} +minetest.register_node("flowers:mushroom_red", { + description = "Red Mushroom", + tiles = {"flowers_mushroom_red.png"}, + inventory_image = "flowers_mushroom_red.png", + wield_image = "flowers_mushroom_red.png", + drawtype = "plantlike", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, flammable = 3, attached_node = 1}, + sounds = default.node_sound_leaves_defaults(), + on_use = minetest.item_eat(-5), + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.3} + } +}) -for _, m in pairs(mushrooms_datas) do - local name, nut = m[1], m[2] - - -- Register fertile mushrooms - - -- These are placed by mapgen and the growing ABM. - -- These drop an infertile mushroom, and 0 to 3 spore - -- nodes with an average of 1.25 per mushroom, for - -- a slow multiplication of mushrooms when farming. - - minetest.register_node("flowers:mushroom_fertile_" .. name, { - description = string.sub(string.upper(name), 0, 1) .. - string.sub(name, 2) .. " Fertile Mushroom", - tiles = {"flowers_mushroom_" .. name .. ".png"}, - inventory_image = "flowers_mushroom_" .. name .. ".png", - wield_image = "flowers_mushroom_" .. name .. ".png", - drawtype = "plantlike", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - buildable_to = true, - groups = {snappy = 3, flammable = 3, attached_node = 1, - not_in_creative_inventory = 1}, - drop = { - items = { - {items = {"flowers:mushroom_" .. name}}, - {items = {"flowers:mushroom_spores_" .. name}, rarity = 4}, - {items = {"flowers:mushroom_spores_" .. name}, rarity = 2}, - {items = {"flowers:mushroom_spores_" .. name}, rarity = 2} - } - }, - sounds = default.node_sound_leaves_defaults(), - on_use = minetest.item_eat(nut), - selection_box = { - type = "fixed", - fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.3} - } - }) - - -- Register infertile mushrooms - - -- These do not drop spores, to avoid the use of repeated digging - -- and placing of a single mushroom to generate unlimited spores. - - minetest.register_node("flowers:mushroom_" .. name, { - description = string.sub(string.upper(name), 0, 1) .. - string.sub(name, 2) .. " Mushroom", - tiles = {"flowers_mushroom_" .. name .. ".png"}, - inventory_image = "flowers_mushroom_" .. name .. ".png", - wield_image = "flowers_mushroom_" .. name .. ".png", - drawtype = "plantlike", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - buildable_to = true, - groups = {snappy = 3, flammable = 3, attached_node = 1}, - sounds = default.node_sound_leaves_defaults(), - on_use = minetest.item_eat(nut), - selection_box = { - type = "fixed", - fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.3} - } - }) - - -- Register mushroom spores - - minetest.register_node("flowers:mushroom_spores_" .. name, { - description = string.sub(string.upper(name), 0, 1) .. - string.sub(name, 2) .. " Mushroom Spores", - drawtype = "signlike", - tiles = {"flowers_mushroom_spores_" .. name .. ".png"}, - inventory_image = "flowers_mushroom_spores_" .. name .. ".png", - wield_image = "flowers_mushroom_spores_" .. name .. ".png", - paramtype = "light", - paramtype2 = "wallmounted", - sunlight_propagates = true, - walkable = false, - buildable_to = true, - selection_box = { - type = "wallmounted", - }, - groups = {dig_immediate = 3, attached_node = 1}, - }) -end - - --- Register growing ABM +minetest.register_node("flowers:mushroom_brown", { + description = "Brown Mushroom", + tiles = {"flowers_mushroom_brown.png"}, + inventory_image = "flowers_mushroom_brown.png", + wield_image = "flowers_mushroom_brown.png", + drawtype = "plantlike", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, flammable = 3, attached_node = 1}, + sounds = default.node_sound_leaves_defaults(), + on_use = minetest.item_eat(1), + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.3} + } +}) +-- mushroom spread and death minetest.register_abm({ - nodenames = {"flowers:mushroom_spores_brown", "flowers:mushroom_spores_red"}, + nodenames = {"flowers:mushroom_brown", "flowers:mushroom_red"}, interval = 11, chance = 50, action = function(pos, node) - local node_under = minetest.get_node_or_nil({x = pos.x, - y = pos.y - 1, z = pos.z}) + if minetest.get_node_light(pos, nil) == 15 then + minetest.remove_node(pos) + end + local random = { + x = pos.x + math.random(-2,2), + y = pos.y + math.random(-1,1), + z = pos.z + math.random(-2,2) + } + local random_node = minetest.get_node_or_nil(random) + if not random_node then + return + end + if random_node.name ~= "air" then + return + end + local node_under = minetest.get_node_or_nil({x = random.x, + y = random.y - 1, z = random.z}) if not node_under then return end if minetest.get_item_group(node_under.name, "soil") ~= 0 and - minetest.get_node_light(pos, nil) <= 13 then - if node.name == "flowers:mushroom_spores_brown" then - minetest.set_node(pos, {name = "flowers:mushroom_fertile_brown"}) - elseif node.name == "flowers:mushroom_spores_red" then - minetest.set_node(pos, {name = "flowers:mushroom_fertile_red"}) - end + minetest.get_node_light(pos, nil) <= 9 and + minetest.get_node_light(random, nil) <= 9 then + minetest.set_node(random, {name = node.name}) end end }) +-- these old mushroom related nodes can be simplified now +minetest.register_alias("flowers:mushroom_spores_brown", "flowers:mushroom_brown") +minetest.register_alias("flowers:mushroom_spores_red", "flowers:mushroom_red") +minetest.register_alias("flowers:mushroom_fertile_brown", "flowers:mushroom_brown") +minetest.register_alias("flowers:mushroom_fertile_red", "flowers:mushroom_red") + -- -- Waterlily diff --git a/games/default/files/flowers/textures/flowers_mushroom_spores_brown.png b/games/default/files/flowers/textures/flowers_mushroom_spores_brown.png deleted file mode 100644 index a0818d23f0a2f7a3f2c25f61b44e34a002d3e9dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`s-7;6Ar_~T6D00EsA4)?|4Z7V rG`c;bL1=Nsgm%$gpW6zrG%+wN?-JbD?;~yp)WG2B>gTe~DWM4fXE7Wj diff --git a/games/default/files/flowers/textures/flowers_mushroom_spores_red.png b/games/default/files/flowers/textures/flowers_mushroom_spores_red.png deleted file mode 100644 index 1f1d3a4592af275bb1dd00dcfea73cd3094ca8c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 92 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`%APKcAr_~T6D00Eu$Q=a+hNsh qD;MS|5=WbD)?Aot-m_SYg~6(q|KstWS9pQS89ZJ6T-G@yGywoBP#ent diff --git a/games/default/files/give_initial_stuff/depends.txt b/games/default/files/give_initial_stuff/depends.txt deleted file mode 100644 index c62479668..000000000 --- a/games/default/files/give_initial_stuff/depends.txt +++ /dev/null @@ -1,3 +0,0 @@ - -default - diff --git a/games/default/files/give_initial_stuff/init.lua b/games/default/files/give_initial_stuff/init.lua index 26d61cd68..a7d8f06f6 100644 --- a/games/default/files/give_initial_stuff/init.lua +++ b/games/default/files/give_initial_stuff/init.lua @@ -1,7 +1,4 @@ minetest.register_on_newplayer(function(player) - player:get_inventory():add_item('main', 'default:pick_steel') player:get_inventory():add_item('main', 'default:sword_steel') - player:get_inventory():add_item('main', 'crafting:workbench') - player:get_inventory():add_item('main', 'default:torch 16') - player:get_inventory():add_item('main', 'default:wood 64') + player:get_inventory():add_item('main', 'default:torch 8') end) diff --git a/games/default/files/hud/LICENSE.txt b/games/default/files/hud/LICENSE.txt index 4362b4915..02bbb60bc 100644 --- a/games/default/files/hud/LICENSE.txt +++ b/games/default/files/hud/LICENSE.txt @@ -1,502 +1,165 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations below. - - When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. - - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it becomes -a de-facto standard. To achieve this, non-free programs must be -allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - - To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. \ No newline at end of file diff --git a/games/default/files/hud/README.txt b/games/default/files/hud/README.txt index 80fc331d3..992bde9dd 100644 --- a/games/default/files/hud/README.txt +++ b/games/default/files/hud/README.txt @@ -30,7 +30,7 @@ License: Code: -Licensed under the GNU LGPL version 2.1 or higher. +Licensed under the GNU LGPL version 3.0 or higher. You can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; @@ -39,7 +39,7 @@ You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -See LICENSE.txt and http://www.gnu.org/licenses/lgpl-2.1.txt +See LICENSE.txt and http://www.gnu.org/licenses/lgpl-3.0.txt Textures: diff --git a/games/default/files/hud/builtin.lua b/games/default/files/hud/builtin.lua index 699a669f7..0683da2d9 100644 --- a/games/default/files/hud/builtin.lua +++ b/games/default/files/hud/builtin.lua @@ -7,13 +7,13 @@ HUD_ENABLE_HUNGER = true HUD_SB_SIZE = {x = 24, y = 24} HUD_HEALTH_POS = {x = 0.5,y = 1} -HUD_HEALTH_OFFSET = {x = -252, y = -93} +HUD_HEALTH_OFFSET = {x = -248, y = -93} HUD_AIR_POS = {x = 0.5, y = 1} -HUD_AIR_OFFSET = {x = 9, y = -93} +HUD_AIR_OFFSET = {x = 6, y = -93} HUD_HUNGER_POS = {x = 0.5, y = 1} -HUD_HUNGER_OFFSET = {x = 9, y = -124} +HUD_HUNGER_OFFSET = {x = 6, y = -124} HUD_ARMOR_POS = {x = 0.5, y = 1} -HUD_ARMOR_OFFSET = {x = -252, y = -124} +HUD_ARMOR_OFFSET = {x = -248, y = -124} -- Reorder everything when using ItemWeel hud.item_wheel = minetest.setting_getbool("hud_item_wheel") diff --git a/games/default/files/hud/textures/hud_air_fg.png b/games/default/files/hud/textures/hud_air_fg.png index ef4817461458959fb82d9ce46ec0115aa65bbfaf..c6a36aaa8aa7662aec57fb29e6b3e3f4fb7be02a 100644 GIT binary patch literal 359 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv^#Gp`R|ei<&~UhH%}c?4oP~*DAQK*_9^F!&_|57OdFq0S*jg)jm!0Z4bKVw*2i}~ zhI@46@1C!7+baF~{ZHZ%sgw4+@4q?I@VVfx#-CqbGFM&u!7}|!W5(GG{WJ-Sh}{cK zk4YBsZ7o(3oyGAq@BOxE8ix*ieYikXBAtVC6^H)UJpBaaI|Z7yq8$Cg57Z+X--^%p z_JbwGboTv(t8=|rFKy%!;TCG}xS#p8wc*&J&H|wwd#l+m`#y@9YIj0M@sZ30Hw~MH v=hZ)y93NUId~szudFXe$w(;DD^2h6#OLh0mule*!3*>uGS3j3^P6mw`R=aR)YU!V*vap0>A31Fhs#@1|Sqwhx+rDu^F^aAO zZ{O{QVdyw8DJL*s@L#opVNa+Th!`+A@JXcx6c6CgWUTY#;lVRcpSO$$EIo%N)&t6G z4h_r}kKl3~Z}+%y`yc84DE4dV2?9}9S-kC{bQaKhxfJSt8jQ%lV{<y{7neYPIR={^1NF^O*Z ze#tq(`+6!~bjz!E2BPSBo~NlC{~U&$aQSoM`MH#$@JaZsYI6EgkEL-O3!jAFZuxWH z^3oT5?D*w+y$VmMe7Wd1&EZo-)Z2z7uyGy}llh4Cn;! vo(qbL$3W?cmO`(=IRPF*oj{caa_aCG;NZbb8K|Bq00000NkvXXu0mjfwGLiU diff --git a/games/default/files/hud/textures/hud_armor_bg.png b/games/default/files/hud/textures/hud_armor_bg.png index 7648ea7c05ce5fbb7f2a9e98ffd6c5ac84038f99..456779344a699cc2ea22d553ec39537965994254 100644 GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvp#Yx{S0MfW|9>C}0f|vzrQs#l zfgF~SAirP+2A#tl=jYi0`MI7hjv*CsS1%sqY%t(yeRzTQ&VmO_K}HQTuJgY7w|d5; z@YZ>IDn9HNv8(dv&$n6y(V~EA^#< zxs1`lf6_NNPW_$8sl8*3fKYxY$6xO`#tE;Oc3sM3%f8T31#*?AtDnm{r-UW|icCsP literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^b|B2c3?v)hZ!HH>q5(c3u0T35D(wIN|3C&1xY*kO zxrsp=S%4gtk|4ieAU$o>|A5y(`nacyV@O5Z+bahJ4=D(+1{@1%h-e6MJQUDav(jN@ z!-aZIwU#$&bFOY?|M%p>=KiN0pH^^sOJ1GE*m!*7m6RirljD*n7=8Qr?(?t2RWU)D zo}ZdbUCU+#+E-;2zkB2I^2W``S81=Gd$zA;FS7;SYu#K{xOVT0gSVckdA;t7>CU^kx5Dxb&^@9yqC%^y(qiWS0MfW|9>C}0U@E$l~ql1 z<}Tm9^cpT~pWkITv$_V38nGpK9(BlgJn_w?*mizl16zCZIW zq`}|vd7(>6K6kmrdA(HQz`nRuWuieQyMmdr+Cm-#u5DnM z(H<{hbisj3*WeM`lj&!)SuAbx7+>leTyS7GAYGvIQ#6M$`3_0;|I8WJVN>?$f=`<)D}ua?}7!K zKC{TKx!D&8J7;Q3yQGd~j^0A}T{3eE_XU^h@)rfV-~4xx7>I@{&xqe#Mj>ZvR6f4m zWt`0~^<%5P_a$G|@{gK^$M@0oa~|unCsN;fz21eQ+sw_vx9st&As{t9(W5wKf5|I#KGsJL^8rgg z_YWsMF1$C?rs;ZA@lRFv;)%X`)AY)>*mM+krPD%R^=d9~L#@5stjvZAr6FU7i*{FMG<3FPu&~iBqeST;TrYB=vTe zR2=@Zo09EmH#Kf|;iSdI+T3=yybcaWj-lJ`)g(>7m^2yYgNlC~LdAt~6z{#y`SM-? zaPQDYRD;(7;*!tjNC}0f|vzrQs#l zfgF~SAirP+2A#tl=jYi0`I9_d978JNwq9)HJggwl`mkO2$~I<^7>6UAldkg?{a$}* zdAm$5gV#bP_PRfd6i>*%7T=*zx@lp7567{%N5u{gFZ-m-`t5vS>+~OMB*UZDB%j`~ z_u#z3aOp$)5B$9K`S6!73}KFmET10>F`ID+q(`WW9P8xFRLz<3pp%`?E9}97Bh9Q{ m8SPE1%8H^a9yR^?|K4)1I-2q(ZiR0I$myQ0elF{r5}E)g1zZOJ literal 386 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|ep#Yx{S0J4j754xCe;@8>jkBNNW(PY?_hN@I8L% z!f8np82{awd*wU-$CoqBmb8{ms%K)b|9Fb~-G!|wI~er>*Bz1gAl$XQLuKE=t?L6F zD}RegPUzsg8@^GyVqOr3R@j<`B^;}_acy8)JGCo)gQvYFvsB|>rsX_EYd**@#U)M- zyd=ZWdysEAPjLxV2l@HMqH-NO;X$z590J z_umiHG%CKRYebxT$HMCImy=5lh;JF+a42@;Vw)w}!xkl~8FC=pAdKOpD2SeRAbd#x zWBkDv3_+m*%;5)bFnDb5ILIh!wt#oqir+nQQ;sL(Fj~9u$W1x)jn_f2>gJ>A|90Qc XJoEpp;G5!apb+$Q^>bP0l+XkKpADMB diff --git a/games/default/files/hud/textures/hud_heart_fg.png b/games/default/files/hud/textures/hud_heart_fg.png index 2d0bca48ef225fb6a2227f485f4803ec7bc48ec7..fbf56ed44491947d031d2858a7e328d5af2202a2 100644 GIT binary patch literal 362 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvl>na*S0MfW|9>C}0iFy-V?Nve zhy7i`bw#^Fg0H!_O2a;GJtXKHIYmg{LPliQ2G4m0YZl!zE9lSvRCw&eZx z)v0hxQ*+pi8(e%*j`P+gB#63bOYHc;Q~zW8{Qir*DMc%@r9ffj>FVdQ&MBb@02$7S Am;e9( literal 681 zcmV;a0#^NrP)!DSYWUxOdYRYTbtaCEFs;G!(cn+7RO zQ7&<;B4m1jL`sph@!ZL$sTER0|OWdc)OD#IsvCZ@1z{` zFo$tlw3tfcDj57d0~Nfji2{gU_dIm_w2R6fK^cF zz7-fKopwv~I~qt8Ds(Od2DBoO*wg;52b2N>TH(_N1uZa;Do_PzfdQ)sz_9`Y61PJU zh)uNuDiC=t3k+P|zUOy?oUy*O2r#i@kmd#~jzn{p11fZG;B(xz`02a>Y2ujYQJV}o P00000NkvXXu0mjfaK07f diff --git a/games/default/files/hud/textures/hud_hunger_bg.png b/games/default/files/hud/textures/hud_hunger_bg.png index bf0872f4d669db26558e35a8d489cb25fa6c6f66..303c33e393f1c34f7859e1c4edb7b89c2ed3b115 100644 GIT binary patch literal 266 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvp#Yx{S0MfW|9>C}0f|vzrQs#l zfgF~SAirP+2A#tl=jYi0`HMYW978JNQZL@+Z8qRxNm%`s;jgqpkd=d|p<{85!2A7P zy}5iWb$?Rc8Ju`*kiMfkWPx~RGw|wg5*)@OXMUY=SUHx3vIVCg! E04GXesQ>@~ literal 392 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|ep#Yx{S0J4j754xCe;@gQMejwiBjJpO#!c^ zxPLvi(GuA3|0su}h>I)R8$olHS~UlTym>|p1#C&MY|xw3Wp03r7Jla7JD^J zjXA;LDCfrH@MF~p2JH}4=9tdA#s{XJVA`O>5F)bRFZTu;6{hgL_Uy`Lorw%Pv=$4; g>}TJ-;Z)@}<}|^_(e)-PhJ5vf*>^|P=tPGSr63TF-$a|F+gTFinP|L%WRsuj#mXaX9U)_JR(h~|=zVrLb*FCM6ZwSX zJ9abf=4NxGtv$r>()q;BV2Or#rCur`Y##E_dxBPIiCDb!&O9!-szdxi!;|RF;}f&i zK9|U2eZiQtXPr00^oR)&i^DfI_#FCY^IG%K*S2}p92paOLnddLDM zmS^Agbp|YO>B(QpBgE>ZQrN}Wv+%(zPMuFrD-B!@YB9*kKV~sAN_@d3{I28K#Ahpi h7qM$sXg2BpWR>0^loROtRs$Fc44$rjF6*2UngFNlo9O@m literal 788 zcmV+v1MB>WP)TFcJU&00000g+n96a!Y-es#S0Nj*u4g-}B00007bW%=J00000005Ru2;3&@TyS^3l8mV0a;>?Pgh;}rm0ANJ+MXpTO=?`* z0r*2gX@8O_XA{~0b!`td2=4e~J;DZ-Bl4S@bJ`%OMrl2b?avUPv8=h6c93XQY91q59kPqS*a&U1qjz*BkX>SB2c0Y@RXx- z0{93bK#<~D7a$)4*S{i=D%cEcb@Yq?5)r<>W`aPT03?JxfS?53DzO5e1xWD#coK*S zgdqe72Y_v1z`O@UI08Q8Aq5~CU_>tQ0G412tpXUKbr%o;Km@uKu=v1D&jA8}yaM4E zP+?2LK(M3~9YBQ0L7W6Mb&bS#@dBhaU=IOef?7V{3+XKYADS$^TgT!!Z0s+>wTtc{>0=VbsU1IwjyY4K2pzFT?m-iD`zvLg_B5Fn4 SB8j8`0000 Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations below. - - When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. - - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it becomes -a de-facto standard. To achieve this, non-free programs must be -allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - - To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. \ No newline at end of file diff --git a/games/default/files/hunger/README.txt b/games/default/files/hunger/README.txt index 792f4b83b..da1831f71 100644 --- a/games/default/files/hunger/README.txt +++ b/games/default/files/hunger/README.txt @@ -31,7 +31,7 @@ License: Code: -Licensed under the GNU LGPL version 2.1 or higher. +Licensed under the GNU LGPL version 3.0 or higher. You can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; @@ -40,7 +40,7 @@ You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -See LICENSE.txt and http://www.gnu.org/licenses/lgpl-2.1.txt +See LICENSE.txt and http://www.gnu.org/licenses/lgpl-3.0.txt Textures: diff --git a/games/default/files/item_drop/README.txt b/games/default/files/item_drop/README.txt index fe43054d5..871cbc4d1 100644 --- a/games/default/files/item_drop/README.txt +++ b/games/default/files/item_drop/README.txt @@ -1,5 +1,6 @@ -===ITEM_DROP MOD for MINETEST-C55=== -by PilzAdam +===ITEM_DROP MOD Reloaded for MINETEST-C55=== +by PilzAdam +modified by Jordan4ibanez Introduction: This mod adds Minecraft like drop/pick up of items to Minetest. diff --git a/games/default/files/item_drop/init.lua b/games/default/files/item_drop/init.lua index 7013b9d8e..03dd49c9f 100644 --- a/games/default/files/item_drop/init.lua +++ b/games/default/files/item_drop/init.lua @@ -1,33 +1,121 @@ +--basic settings +item_drop_settings = {} --settings table +item_drop_settings.age = 1 +item_drop_settings.radius_magnet = 2 +item_drop_settings.radius_collect = 0.5 +item_drop_settings.player_collect_height = 1.5 --added to their pos y value +item_drop_settings.collection_safety = true --do this to prevent items from flying away on laggy servers +item_drop_settings.collect_by_default = true --make item entities automatically collect in the item entity code + --versus setting it in the item drop code, setting true might interfere with + --mods that use item entities (like pipeworks) +item_drop_settings.random_item_velocity = true --this sets random item velocity if velocity is 0 + + minetest.register_globalstep(function(dtime) - for _,player in ipairs(minetest.get_connected_players()) do - if player:get_hp() > 0 or not minetest.setting_getbool("enable_damage") then - local pos = player:getpos() - pos.y = pos.y+0.5 - local inv = player:get_inventory() - local ctrl = player:get_player_control() - if ctrl.up or ctrl.left or ctrl.right then - - for _,object in ipairs(minetest.env:get_objects_inside_radius(pos, 2)) do - local en = object:get_luaentity() - if not object:is_player() and en and en.name == "__builtin:item" then - if inv and - inv:room_for_item("main", ItemStack(en.itemstring)) then - inv:add_item("main", ItemStack(en.itemstring)) - if en.itemstring ~= "" then - minetest.sound_play("item_drop_pickup", { - to_player = player:get_player_name(), - gain = 0.4, - }) - end - en.itemstring = "" - object:remove() - end - end - end - - end - end - end + for _,player in ipairs(minetest.get_connected_players()) do + if player:get_hp() > 0 or not minetest.setting_getbool("enable_damage") then + local pos = player:getpos() + local inv = player:get_inventory() + + --collection + + for _,object in ipairs(minetest.env:get_objects_inside_radius({x=pos.x,y=pos.y + item_drop_settings.player_collect_height,z=pos.z}, item_drop_settings.radius_collect)) do + if not object:is_player() and object:get_luaentity() and object:get_luaentity().name == "__builtin:item" then + if object:get_luaentity().collect and object:get_luaentity().age > item_drop_settings.age then + if inv and inv:room_for_item("main", ItemStack(object:get_luaentity().itemstring)) then + + if object:get_luaentity().itemstring ~= "" then + inv:add_item("main", ItemStack(object:get_luaentity().itemstring)) + minetest.sound_play("item_drop_pickup", { + pos = pos, + max_hear_distance = 100, + gain = 10.0, + }) + object:get_luaentity().itemstring = "" + object:remove() + end + + + end + end + end + end + + + --magnet + for _,object in ipairs(minetest.env:get_objects_inside_radius({x=pos.x,y=pos.y + item_drop_settings.player_collect_height,z=pos.z}, item_drop_settings.radius_magnet)) do + if not object:is_player() and object:get_luaentity() and object:get_luaentity().name == "__builtin:item" then + if object:get_luaentity().collect and object:get_luaentity().age > item_drop_settings.age then + if inv and inv:room_for_item("main", ItemStack(object:get_luaentity().itemstring)) then + + --modified simplemobs api + + local s = object:getpos() + local p = {x=pos.x,y=pos.y + item_drop_settings.player_collect_height,z=pos.z} + + p.y = p.y + item_drop_settings.player_collect_height --since the absolute pos of player is the bottom of the collision + --box this raises it up to their center so it appears they are sucking the + --item into their character's body + + local dist = ((p.x-s.x)^2 + (p.y-s.y)^2 + (p.z-s.z)^2)^0.5 + local vec = {x=p.x-s.x, y=p.y-s.y, z=p.z-s.z} + local yaw = math.atan(vec.z/vec.x)+math.pi/2 + + --local pitch = math.atan(vec.y)+math.pi/2 + --if s.y > p.y then + -- pitch = pitch * -1 + --end + + if p.x > s.x then + yaw = yaw+math.pi + end + local x = math.sin(yaw) * -5 + local z = math.cos(yaw) * 5 + + local y = vec.y*2-2 + + + object:setvelocity({x=x, y=y, z=z}) + + + object:get_luaentity().physical_state = false + object:get_luaentity().object:set_properties({ + physical = false + }) + + --this is a safety to prevent items flying away on laggy servers + if item_drop_settings.collection_safety == true then + minetest.after(1, function(args) + local lua = object:get_luaentity() + if object == nil or lua == nil or lua.itemstring == nil then + return + end + if inv:room_for_item("main", ItemStack(object:get_luaentity().itemstring)) then + inv:add_item("main", ItemStack(object:get_luaentity().itemstring)) + if object:get_luaentity().itemstring ~= "" then + minetest.sound_play("item_drop_pickup", { + pos = pos, + max_hear_distance = 100, + gain = 10.0, + }) + end + object:get_luaentity().itemstring = "" + object:remove() + else + object:setvelocity({x=0,y=0,z=0}) + object:get_luaentity().physical_state = true + object:get_luaentity().object:set_properties({ + physical = true + }) + end + end, {player, object}) + end + end + end + end + end + end + end end) function minetest.handle_node_drops(pos, drops, digger) @@ -48,6 +136,7 @@ function minetest.handle_node_drops(pos, drops, digger) for i=1,count do local obj = minetest.env:add_item(pos, name) if obj ~= nil then + --obj:get_luaentity().timer = obj:get_luaentity().collect = true local x = math.random(1, 5) if math.random(1,2) == 1 then @@ -71,3 +160,291 @@ function minetest.handle_node_drops(pos, drops, digger) end end +--throw single items by default +function minetest.item_drop(itemstack, dropper, pos) + if dropper and dropper:is_player() then + local v = dropper:get_look_dir() + local p = {x=pos.x, y=pos.y+1.2, z=pos.z} + local cs = 1 + if dropper:get_player_control().sneak then + cs = itemstack:get_count() + end + local item = itemstack:take_item(cs) + local obj = core.add_item(p, item) + if obj then + v.x = v.x*2 + v.y = v.y*2 + 2 + v.z = v.z*2 + obj:setvelocity(v) + obj:get_luaentity().collect = true + return itemstack + end + end +end + +--add food particles +function core.item_eat(hp_change, replace_with_item) + return function(itemstack, user, pointed_thing) -- closure + local pos = user:getpos() + pos.y = pos.y + item_drop_settings.player_collect_height + local itemname = itemstack:get_name() + local texture = minetest.registered_items[itemname].inventory_image + minetest.add_item(pos, drop) + minetest.add_particlespawner({ + amount = 20, + time = 0.1, + minpos = {x=pos.x, y=pos.y, z=pos.z}, + maxpos = {x=pos.x, y=pos.y, z=pos.z}, + minvel = {x=-1, y=1, z=-1}, + maxvel = {x=1, y=2, z=1}, + minacc = {x=0, y=-5, z=0}, + maxacc = {x=0, y=-9, z=0}, + minexptime = 1, + maxexptime = 1, + minsize = 1, + maxsize = 2, + collisiondetection = true, + vertical = false, + texture = texture, + }) + minetest.sound_play("bite_item_drop", { + pos = pos, + max_hear_distance = 100, + gain = 10.0, + }) + return core.do_item_eat(hp_change, replace_with_item, itemstack, user, pointed_thing) + end +end + +--modify builtin:item + +local time_to_live = tonumber(core.setting_get("item_entity_ttl")) +if not time_to_live then + time_to_live = 900 +end + +core.register_entity(":__builtin:item", { + initial_properties = { + hp_max = 1, + physical = true, + collide_with_objects = false, + collisionbox = {-0.3, -0.3, -0.3, 0.3, 0.3, 0.3}, + visual = "wielditem", + visual_size = {x = 0.4, y = 0.4}, + textures = {""}, + spritediv = {x = 1, y = 1}, + initial_sprite_basepos = {x = 0, y = 0}, + is_visible = false, + infotext = "", + }, + + itemstring = '', + physical_state = true, + age = 0, + + set_item = function(self, itemstring) + self.itemstring = itemstring + local stack = ItemStack(itemstring) + local count = stack:get_count() + local max_count = stack:get_stack_max() + if count > max_count then + count = max_count + self.itemstring = stack:get_name().." "..max_count + end + local s = 0.2 + 0.1 * (count / max_count) + local c = s + local itemtable = stack:to_table() + local itemname = nil + local description = "" + if itemtable then + itemname = stack:to_table().name + end + local item_texture = nil + local item_type = "" + if core.registered_items[itemname] then + item_texture = core.registered_items[itemname].inventory_image + item_type = core.registered_items[itemname].type + description = core.registered_items[itemname].description + end + local prop = { + is_visible = true, + visual = "wielditem", + textures = {itemname}, + visual_size = {x = s, y = s}, + collisionbox = {-c, -c, -c, c, c, c}, + automatic_rotate = math.pi * 0.5, + infotext = description, + } + self.object:set_properties(prop) + if item_drop_settings.collect_by_default then + self.collect = true + end + if item_drop_settings.random_item_velocity == true then + minetest.after(0, function() + local vel = self.object:getvelocity() + if vel.x == 0 and vel.z == 0 then + local x = math.random(1, 5) + if math.random(1,2) == 1 then + x = -x + end + local z = math.random(1, 5) + if math.random(1,2) == 1 then + z = -z + end + local y = math.random(2,4) + self.object:setvelocity({x=1/x, y=y, z=1/z}) + end + end) + end + + end, + + get_staticdata = function(self) + return core.serialize({ + itemstring = self.itemstring, + always_collect = self.always_collect, + age = self.age, + dropped_by = self.dropped_by, + collect = self.collect + }) + end, + + on_activate = function(self, staticdata, dtime_s) + if string.sub(staticdata, 1, string.len("return")) == "return" then + local data = core.deserialize(staticdata) + if data and type(data) == "table" then + self.itemstring = data.itemstring + self.always_collect = data.always_collect + if data.age then + self.age = data.age + dtime_s + else + self.age = dtime_s + end + --remember collection data + if data.collect then + self.collect = data.collect + end + self.dropped_by = data.dropped_by + end + else + self.itemstring = staticdata + end + self.object:set_armor_groups({immortal = 1}) + self.object:setvelocity({x = 0, y = 2, z = 0}) + self.object:setacceleration({x = 0, y = -10, z = 0}) + self:set_item(self.itemstring) + end, + + try_merge_with = function(self, own_stack, object, obj) + local stack = ItemStack(obj.itemstring) + if own_stack:get_name() == stack:get_name() and stack:get_free_space() > 0 then + local overflow = false + local count = stack:get_count() + own_stack:get_count() + local max_count = stack:get_stack_max() + if count > max_count then + overflow = true + count = count - max_count + else + self.itemstring = '' + end + local pos = object:getpos() + pos.y = pos.y + (count - stack:get_count()) / max_count * 0.15 + object:moveto(pos, false) + local s, c + local max_count = stack:get_stack_max() + local name = stack:get_name() + if not overflow then + obj.itemstring = name .. " " .. count + s = 0.2 + 0.1 * (count / max_count) + c = s + object:set_properties({ + visual_size = {x = s, y = s}, + collisionbox = {-c, -c, -c, c, c, c} + }) + self.object:remove() + -- merging succeeded + return true + else + s = 0.4 + c = 0.3 + object:set_properties({ + visual_size = {x = s, y = s}, + collisionbox = {-c, -c, -c, c, c, c} + }) + obj.itemstring = name .. " " .. max_count + s = 0.2 + 0.1 * (count / max_count) + c = s + self.object:set_properties({ + visual_size = {x = s, y = s}, + collisionbox = {-c, -c, -c, c, c, c} + }) + self.itemstring = name .. " " .. count + end + end + -- merging didn't succeed + return false + end, + + on_step = function(self, dtime) + self.age = self.age + dtime + if time_to_live > 0 and self.age > time_to_live then + self.itemstring = '' + self.object:remove() + return + end + local p = self.object:getpos() + p.y = p.y - 0.5 + local node = core.get_node_or_nil(p) + local in_unloaded = (node == nil) + if in_unloaded then + -- Don't infinetly fall into unloaded map + self.object:setvelocity({x = 0, y = 0, z = 0}) + self.object:setacceleration({x = 0, y = 0, z = 0}) + self.physical_state = false + self.object:set_properties({physical = false}) + return + end + local nn = node.name + -- If node is not registered or node is walkably solid and resting on nodebox + local v = self.object:getvelocity() + if not core.registered_nodes[nn] or core.registered_nodes[nn].walkable and v.y == 0 then + if self.physical_state then + local own_stack = ItemStack(self.object:get_luaentity().itemstring) + -- Merge with close entities of the same item + for _, object in ipairs(core.get_objects_inside_radius(p, 0.8)) do + local obj = object:get_luaentity() + if obj and obj.name == "__builtin:item" + and obj.physical_state == false then + if self:try_merge_with(own_stack, object, obj) then + return + end + end + end + self.object:setvelocity({x = 0, y = 0, z = 0}) + self.object:setacceleration({x = 0, y = 0, z = 0}) + self.physical_state = false + self.object:set_properties({physical = false}) + end + else + if not self.physical_state then + self.object:setvelocity({x = 0, y = 0, z = 0}) + self.object:setacceleration({x = 0, y = -10, z = 0}) + self.physical_state = true + self.object:set_properties({physical = true}) + end + end + end, + + on_punch = function(self, hitter) + local inv = hitter:get_inventory() + if inv and self.itemstring ~= '' then + local left = inv:add_item("main", self.itemstring) + if left and not left:is_empty() then + self.itemstring = left:to_string() + return + end + end + self.itemstring = '' + self.object:remove() + end, +}) diff --git a/games/default/files/lightcorrect/README.txt b/games/default/files/lightcorrect/README.txt index 22d811723..8194de48c 100644 --- a/games/default/files/lightcorrect/README.txt +++ b/games/default/files/lightcorrect/README.txt @@ -1,9 +1,9 @@ Light mod =========== -By MoNTE48, for ActionCraft +By MoNTE48, for MultiCraft Source license: CC-BY-NC-SA -Notice: Only ActionCraft and MultiCraft project is entitled to unlimited use (including commercial purposes) of the code. +Notice: Only and MultiCraft Project is entitled to unlimited use (including commercial purposes) of the code. License diff --git a/games/default/files/lightcorrect/init.lua b/games/default/files/lightcorrect/init.lua index e8f7d43e2..99c8df446 100644 --- a/games/default/files/lightcorrect/init.lua +++ b/games/default/files/lightcorrect/init.lua @@ -1,6 +1,6 @@ -- -- LightCorrect mod --- By ActionCraft +-- By MoNTE48 -- License: CC-BY-NC-SA -- @@ -10,7 +10,7 @@ lightcorrect = {} local light = (minetest.get_timeofday()*2) if light < 0.4 then for _,player in ipairs(minetest.get_connected_players()) do - player:override_day_night_ratio((light)+0.2) + player:override_day_night_ratio((light)+0.25) end else for _,player in ipairs(minetest.get_connected_players()) do diff --git a/games/default/files/mobs/api.lua b/games/default/files/mobs/api.lua index bd6df9ebc..e2a2ab5f9 100644 --- a/games/default/files/mobs/api.lua +++ b/games/default/files/mobs/api.lua @@ -261,7 +261,7 @@ do_env_damage = function(self) self.object:set_hp(self.object:get_hp() - self.light_damage) - effect(pos, 5, "tnt_smoke.png") + effect(pos, 5, "mobs_blood.png") end if self.water_damage ~= 0 or self.lava_damage ~= 0 then @@ -279,7 +279,7 @@ do_env_damage = function(self) self.object:set_hp(self.object:get_hp() - self.water_damage) - effect(pos, 10, "mobs_blood.png") + effect(pos, 10, "hud_air_fg.png") end -- lava or fire @@ -606,7 +606,7 @@ minetest.register_entity(name, { order = def.order or "", on_die = def.on_die, do_custom = def.do_custom, - jump_height = def.jump_height or 6, + jump_height = def.jump_height or 4, jump_chance = def.jump_chance or 0, drawtype = def.drawtype, -- DEPRECATED, use rotate instead rotate = math.rad(def.rotate or 0), -- 0=front, 90=side, 180=back, 270=side2 @@ -686,7 +686,7 @@ minetest.register_entity(name, { minetest.log("action", "lifetimer expired, removed " .. self.name) - effect(pos, 15, "tnt_smoke.png") + effect(pos, 15, "mobs_blood.png") self.object:remove() @@ -738,7 +738,7 @@ minetest.register_entity(name, { self.object:set_hp(self.object:get_hp() - math.floor(d - 5)) - effect(pos, 5, "tnt_smoke.png") + effect(pos, 15, "mobs_blood.png") if check_for_death(self) then return @@ -1279,7 +1279,7 @@ minetest.register_entity(name, { self.object:remove() - effect(pos, 15, "tnt_smoke.png", 5) + effect(pos, 15, "hud_air_fg.png", 5) return end @@ -1907,7 +1907,7 @@ function mobs:explosion(pos, radius, fire, smoke, sound) minetest.set_node(p, {name = "air"}) if smoke > 0 then - effect(p, 2, "tnt_smoke.png", 5) + effect(p, 2, "mobs_blood.png", 5) end end end diff --git a/games/default/files/mobs/bunny.lua b/games/default/files/mobs/bunny.lua index 2d8ca4a56..0767829a8 100644 --- a/games/default/files/mobs/bunny.lua +++ b/games/default/files/mobs/bunny.lua @@ -67,6 +67,11 @@ mobs:register_mob("mobs:bunny", { damage = 5, }) -mobs:register_spawn("mobs:bunny", {"default:snowblock", "default:dirt_with_snow", "default:dirt_with_grass"}, 20, 10, 3000, 1, 10000) + +mobs:spawn_specific("mobs:bunny", + {"default:snowblock", "default:dirt_with_snow", "default:dirt_with_grass"}, + {"air"}, + 0, 20, 0, 4000, 1, 1, 31000 + ) mobs:register_egg("mobs:bunny", "Bunny", "mobs_bunny_inv.png", 0) \ No newline at end of file diff --git a/games/default/files/mobs/crafts.lua b/games/default/files/mobs/crafts.lua index b2cb60802..4fc2e220e 100644 --- a/games/default/files/mobs/crafts.lua +++ b/games/default/files/mobs/crafts.lua @@ -13,7 +13,7 @@ minetest.register_craftitem("mobs:meat_raw", { -- cooked meat minetest.register_craftitem("mobs:meat", { - description = "Meat", + description = "Cooked Meat", inventory_image = "mobs_meat.png", on_use = minetest.item_eat(8), }) @@ -25,6 +25,27 @@ minetest.register_craft({ cooktime = 5, }) +-- raw pork +minetest.register_craftitem("mobs:pork_raw", { + description = "Raw Pork", + inventory_image = "mobs_pork_raw.png", + on_use = minetest.item_eat(3), +}) + +-- cooked pork +minetest.register_craftitem("mobs:pork", { + description = "Cooked Pork", + inventory_image = "mobs_pork_cooked.png", + on_use = minetest.item_eat(8), +}) + +minetest.register_craft({ + type = "cooking", + output = "mobs:pork", + recipe = "mobs:pork_raw", + cooktime = 5, +}) + -- golden lasso minetest.register_tool("mobs:magic_lasso", { description = "Magic Lasso (right-click animal to put in inventory)", diff --git a/games/default/files/mobs/dog.lua b/games/default/files/mobs/dog.lua index 4a8ce3178..65e00e3a9 100644 --- a/games/default/files/mobs/dog.lua +++ b/games/default/files/mobs/dog.lua @@ -61,7 +61,7 @@ if mobs.mod and mobs.mod == "redo" then mobs:spawn_specific("mobs:wolf", {"default:dirt", "default:sand", "default:snowblock", "default:dirt_with_snow", "default:dirt_with_grass"}, {"air"}, - 0, 20, 0, 5000, 1, -31000, 31000 + 0, 20, 0, 6000, 1, 1, 31000 ) mobs:register_egg("mobs:wolf", "Wolf", "wool_grey.png", 1) diff --git a/games/default/files/mobs/init.lua b/games/default/files/mobs/init.lua index 717d45378..d78c0a8d8 100644 --- a/games/default/files/mobs/init.lua +++ b/games/default/files/mobs/init.lua @@ -14,6 +14,7 @@ dofile(path.."/bunny.lua") -- ExeterDad dofile(path.."/bear.lua") -- KrupnoPavel dofile(path.."/dog.lua") -- KrupnoPavel dofile(path.."/pig.lua") -- KrupnoPavel +dofile(path.."/kitten.lua") -- Jordach/BFD -- Monsters diff --git a/games/default/files/mobs/pig.lua b/games/default/files/mobs/pig.lua index 0249e3c67..8ee237a9c 100644 --- a/games/default/files/mobs/pig.lua +++ b/games/default/files/mobs/pig.lua @@ -20,6 +20,7 @@ mobs:register_mob("mobs:pig", { sounds = { random = "mobs_pig", attack = "mobs_pig_angry", + death = "mobs_pig_angry", }, walk_velocity = 2, run_velocity = 3, @@ -27,11 +28,11 @@ mobs:register_mob("mobs:pig", { follow = {"default:apple", "farming:potato"}, view_range = 10, drops = { - {name = "mobs:meat_raw", + {name = "mobs:pork_raw", chance = 1, min = 1, max = 1}, - {name = "mobs:meat_raw", + {name = "mobs:pork_raw", chance = 2, min = 1, max = 1}, - {name = "mobs:meat_raw", + {name = "mobs:pork_raw", chance = 2, min = 1, max = 1}, }, water_damage = 1, diff --git a/games/default/files/mobs/rat.lua b/games/default/files/mobs/rat.lua index 6ba56a2b4..1951de986 100644 --- a/games/default/files/mobs/rat.lua +++ b/games/default/files/mobs/rat.lua @@ -4,7 +4,6 @@ mobs:register_mob("mobs:rat", { type = "animal", passive = true, - reach = 1, hp_min = 1, hp_max = 4, armor = 100, @@ -20,10 +19,12 @@ mobs:register_mob("mobs:rat", { random = "mobs_rat", }, drops = { - {name = "mobs:rat", + {name = "mobs:rat_meat", chance = 1, min = 1, max = 1}, }, walk_velocity = 1, + run_velocity = 2, + runaway = true, jump = true, water_damage = 0, lava_damage = 4, @@ -33,12 +34,11 @@ mobs:register_mob("mobs:rat", { mobs:spawn_specific("mobs:rat", {"default:dirt", "default:sandstone", "default:sand", "default:stone", "default:snowblock", "default:dirt_with_snow", "default:dirt_with_grass"}, {"air"}, - 0, 20, 0, 2000, 1, -31000, 31000 + 0, 20, 0, 3000, 1, -31000, 31000 ) mobs:register_egg("mobs:rat", "Rat", "mobs_rat_inventory.png", 0) --- cooked rat, yummy! minetest.register_craftitem("mobs:rat_cooked", { description = "Cooked Rat", inventory_image = "mobs_cooked_rat.png", diff --git a/games/default/files/mobs/sheep.lua b/games/default/files/mobs/sheep.lua index 5b331f6ad..5398fd4aa 100644 --- a/games/default/files/mobs/sheep.lua +++ b/games/default/files/mobs/sheep.lua @@ -25,6 +25,7 @@ for _, col in ipairs(all_colours) do sounds = { random = "mobs_sheep", damage = "mobs_sheep_angry", + death = "mobs_sheep_angry", }, walk_velocity = 1, jump = true, diff --git a/games/default/files/mobs/spider.lua b/games/default/files/mobs/spider.lua index d811697e8..bb4abe556 100644 --- a/games/default/files/mobs/spider.lua +++ b/games/default/files/mobs/spider.lua @@ -51,7 +51,7 @@ mobs:register_mob("mobs:spider", { mobs:spawn_specific("mobs:spider", {"default:dirt", "default:sandstone", "default:sand", "default:stone", "default:snowblock", "default:dirt_with_snow", "default:dirt_with_grass", "default:cobble", "default:mossycobble"}, {"air"}, - 0, 5, 0, 5000, 1, -31000, 31000 + 0, 5, 0, 4000, 1, -31000, 31000 ) mobs:register_egg("mobs:spider", "Spider", "mobs_cobweb.png", 1) diff --git a/games/default/files/mobs/textures/mobs_blood.png b/games/default/files/mobs/textures/mobs_blood.png index e74bfaea1fc9982c351c58bfea220948bbeb9e19..d2ea7b60194d040ba193f470595f75ebe64580d0 100644 GIT binary patch delta 189 zcmbQuc$RU3L_G^L0|Ud`yN`l^lyrbkh-(D{!#oCt%M1+v|NpOqvm+z_uU{YaZIUlg z8B0l!Uoenn*gQFH7Lbbdba4#fkYzn^khjTzf%U?5{`Abd2Y5YpHLQDdU=t(zdo~FN z!IESz<;IOo24>8SvStq#UWvS*;2@ejTY|;U)xz9e^!dL0T%r59 hwzs?^)@?ukh=0!kvA4JW>&*b!=;`X`vd$@?2>>^9NZJ4Z delta 139 zcmX@hIGb^TL_HHT0|P_ST=7ppiYLG)#1%*%WMKFYMF0QS>92JL@)=8l{DK)Ap4~_T za%??a978x{Sr2UFZBSrfIq=vyy}8C-&RSnP}22WQ%7nXHS2~7YDr!i{) diff --git a/games/default/files/mobs/textures/mobs_sheep_black.png b/games/default/files/mobs/textures/mobs_sheep_black.png index a69db9ffa8837824b2021364096ab87a7ed48525..000215917aeb4d9e52734c831a94da12b9330add 100644 GIT binary patch literal 1491 zcmV;^1uXiBP)Q(f|Vhw8QUMNoyTm z1CWNKIJ*X&vFh^m{6s=aFD*CM-}ZQGk9%*EC?+vFG&{M+@WjyagvM+f8X}vKtN;Q4 z|NQzlQ&?;O00kdOL_t(|UZvKFa@#r#1yF*EB=6bN{jLB1jRh_+xI@=%GA-;(Bzb%c zkRYY9Oi`CVjR~x^{x&Hh1Q$Os?){!PlU@-(0peqNc~OKy07;OxCNjGits8>iK3Wc4Ul4(!s^^piD1pd!wgUaV8{Snq-RuuTn9`&JOLP= z`M(?9LMk~1$pnFiM=*qWaN}B@NBR)q2B@-MVh@0Xln2bO&N;GvfEk`lHok-ho;AUo zBRqmr=Wrpp$A+lanJMBvTdO+A0Vp64DAr(*E&u=nm*I;!Z4YQzzT-lA8AemKS=t4!r^l9*Z`}WTBV32)(6P?J)EJMpf&Xa z{J3qK3Yv{tiu9Ll_m_$eD$`nc1ZfJqfDP>Z?&J3N!_#@M;JU7g?6!xe=ks|euOOO> z4@(pYqJQi&BslKw?jHVoP;m71U?5Hbb}PBI^sYg!YRG~F$G6??NmEjARZz3C)ARZH zzFUe79>8kg>_vXH!UMRD9foiNxElEKVnevyuK-c7zX(pE;1)vgux;uMlnn5oKd^1% z9y+{*OHU@QNWuh%De5WMkyQ5!0rJu0S0L(c09A;R>nqkd)$};8mN0>sU|w z4C2GnRS!sl;ymC0bEkH&{|rRFd~k74k{1CLKGu_gDy}Egd5nnaqkcZ>6O4Dzg_|bk zK}FB-*!$t}kfM@CF9f1SK*DX6v$9w!00$E6m&gAfFTKO-<|!G24ilh|)DyO*wZlHd z)6o+=UM?5?2T$ET0_40Djl7$P9!r9CNwA-eM*~+wI>3%tM}U$bpBh9=7nYphNlON( zoW53os|KoOf&y?3fE3MB@N^mj;3qBlQ$GS!jvzdM|6GMkTbYABKovj#`?))49;PQ3 z>-#}l&N0mvM}P=q7~-3t;GP0!3`N-4dxF-7U&AXu1G$_5hV$dX8yW=F6S)l*f(g(g z>E1rqYl2@Q=8_$JJ38-lDA_rZGKuW**7C{KLU4|WK&ctUC5kfD>_lw_wtOzMW6o@H z1V2O=Ic2yAICz181Rik>I`{he>f(n9WQo%Qbxn>z5S#`~2T8)S_f6wAXdcA?8CGd~ tuXeMs31W84N-ysdrThlS;FI6m@f~Rwhr#8F@4x^6002ovPDHLkV1o3boh<+W literal 693 zcmV;m0!safP){SP8+l1Cnp`;j=H&FMeo;6xDl$=^0006INkloA?yQRXfTKQRnFdG7(M`31D5X?^e>H0xV@|0v>@RBy^|_J41{76cuh3}Aqk_Qb z@5>Y8v-Joee8QlN5@^{odykog3g!|toRb%58JV9wq_BCO&-*1088QP}2Fj+gUSfKH z3N1&*Lts94bXcGiK}XWgV@!+40u$PVP?r`GmP%{_Gqxc{G&l2 zNQ9t)^iI15zz#`5BR~r?lh$Mb9k}G2_ijK$MrNSu)*VP9qo$omJ`zGZyVJrPiT$!( zL#7Tv-s-Q%`^ypnIckS^A^^6YZG%7_Vb|~X<8csy1?piIk9gcU3aXHtJ-~sphn3Mv800000NkvXXu0mjffxa<1 diff --git a/games/default/files/mobs/textures/mobs_sheep_blue.png b/games/default/files/mobs/textures/mobs_sheep_blue.png index 99a1b9990cc5a604abfe77e0524fc3cf8e4bb572..cf92f3de8df10d25f7af132d4efc38bb75d23a17 100644 GIT binary patch literal 1504 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 y{d0%2P)vFfzL z?;TzP^7Z^!NozzxOOS@7IJ*WfEjQQS_IPWLdvB8nd;rAI@+c-Tn~|)9#%vrKBDu%# z|NQ#g{$54^00k&XL_t(|UZvKDcH=k<1<-&+#XUXKw*UV(F7N>3nO=`i&MX|CNOE!w z5G19Cd5Ajy-x$DJ>o1ccasm2@ai90Zne>VP3J@RD%Znlu0!V_iMIq>aMrZWIt8w2no2DgDn8PWP<2NI50BjODzG2=-}`*0n!u6BAjIT6+mz(4Wh9* zIP5aK%KuJJa>Nj0its8>iK3Wc4Ul4(!s^^piD1pd!wgUaV8{Snq-RuuTn9`&JOLP= z`L7$^Oe#4B$pnFiM=*qOaN}B@NBR)q2B@-M;v4`8DG!)m9dl&;05d$9ocIzRc-91S zjPM8!GlvVwJx+*votYx;b81z99Dq_lAW*EqAYA}ZnF2c&hJ##q#SAV_T;V^20FkG1 zX;PPlA_31vT%F2T7OYPYfU-U98gZGp($Yv9{<#p+8VM9Flq|0 z6oNyf$axqgR0Tar1Sr8P8XyXaq!Jj#IA(nc<_6=zzLX*bAPsm-i!}puRY4#^&qIm^ zOJ;tF3%PNw5XqGUP+tIryGS;cQ=6uD8eSMCb0YAbB5)7|V1ei?6LgvhhR-ZTs)2yg zLw3c*83)S7GLEFi{eb0#{!p%Bj@1i~MMpEM3?9ebJp-+F7+{Fs@i-~3 zASM?dmgE+Q8D3^Vg45H})APf#f>U312I3T8w~}iM?-qD@V+N>M{Jr0QXi5q$3Tjq% zdOSY9c1y9r16U0ly~wXtcmS7ak0D$EE(X55*buI-3qTa?FM@+8xP=hht*d$yN(Q*o z9P+De5WMkyQ5!0rJu09*DXdKoue|qC9i3ItVA$GQr}Y;8mN0 z%d{M}8N??~S3MvJit~U2%$?f7{xcBy^1;PHNnQk0_*hQ{S|bjqa}yEONBw-%Cm26L z7jBy9gNmNvruW_ZE=47co(BN;6kxfnvMUNgv<#78KfV9+e(D`wH&4mvAxwZmvY1_h z)QSy+c-VM?o73r}zu>9sB_rSgEG6$IqQ{b8ofGVb&BnmRkPfgTmNO^`@~J^R4PnU% z9<*eD%IRwXxM-kiCMW>M07%h11rLX50{Bf!{?<1Dl_Llb;9plE!&c^C4^YMLe|+x_ znuqq}V*Na5%Q@O?u>puch7|9Ef_n;_X;OqUdrJ`aE1TiYl6Q=j3pDiAAO#==NSl#qzoeGcx&h5)_(kGf^#$irDi<1L{WyCov4Z_ zlFx;$waU&WNAOF8kwb>FfK#s#;WHxQ8g%aM?ajq60~jSjYb0uN41(Y^U^++=p8Z@K zcR=$f2FS2V+h?_#6PqBqV^(^3pD5)QK!$rn?!~_gW}1AopW89L2aT*+k{Qqk6_}A zTGfVIR52?^DJ98yN$!|!Hy|5pmpXJsE0|k1=%IG~=H&FMeqB8}$~_$|0007RNklbOTva5{m*pP|p!I(NOk9>|(ExB4 z?GsX(7|(s*k{pc?|d5rr_=`+PvPzrX97su z*g9xuL^oBvZZjIZH1B-}r`Wj@XsnGpJ5_A%w06x#b=Ud1bR3$W8Jl-a)6YwpQ(v{c z0l1gP_QU&62bwj;I0fxVdLK1os-@OaSi>nagGRHocH#=A%C$mqZ0m-cL_U%TzFqMoTP&*rvs5`uQAI6tg+NK&n&T(mav z098}FJv%q76HKJm|5Pz95!NfQ1fg)Jdl2DyN5ax9qRZ%IC&j85}6OsA|saBawegJACFuhxE`DF)B1Y5UY}1avnct(Ek>-@ z__sa58w%jky{&VYpQZ2sA@~0kHJ+ol;JtBbFlvHVfLa~I*lNKodS^bh{{Wd1LXF*r R6lMSb002ovPDHLkV1h1wYPSFY diff --git a/games/default/files/mobs/textures/mobs_sheep_dark_grey.png b/games/default/files/mobs/textures/mobs_sheep_dark_grey.png index a9c5bd0f35d55f1f35af794fc6bacfcc1229bac7..c3127418acdbbb01b5244dabc90d4670fb298730 100644 GIT binary patch literal 1504 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 N002ovPDHLkV1hh7O-}#- diff --git a/games/default/files/mobs/textures/mobs_sheep_grey.png b/games/default/files/mobs/textures/mobs_sheep_grey.png index 9ce3f2725befc26b417b883f56a1d76758763d22..2575cf6efcaeb92d8122abeafd1caf50a4a64a9e 100644 GIT binary patch literal 1504 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 diff --git a/games/default/files/mobs/textures/mobs_sheep_magenta.png b/games/default/files/mobs/textures/mobs_sheep_magenta.png index 83f07d7c326e686c917976f2e262a1ce80e5abce..78c55a6ec38350d9bef2289d732b3fc96a1f32bd 100644 GIT binary patch literal 1504 zcmV<61t0o}P)vFfzL z?;TzPIJ*W|NozzxOY-&nkcOl$EjQQS_Iq!Wcx#XL+4i}|@F*rRgvM;-jO3eMN2q#&70}vca zgJ>)~agSgF$Rym895KY4BD@Avq9|tA0;CwGusZitBG@wVFas0;7&1T?=^2$E_W@H6 zPXNYe{^y3bl1h$2GC|GY0jlhmxCTH%$^+)t<{Vi+zzk0&7rulC zo;AUoBRqoB%Hc+Gj|-w*XQqhzTv`nv2cQ%X2o!5DNEZNr4I=FP*gWq!Jj#IA(ncW`mi^#tM-FkOn-a#hL-Ssvr=d z=OIOdB{RRoh1|SW5@ACFs4sxRE|L?=rA^ak8eSMCb0P4aB5)7|V1ei?6LgvhhR-ZT znt_1QLw3c*6$jDWV%S1sKVW&G-<7LaWB0;i(FU0;lgDv)&p@jkh92Ok#E)_iqrd>^ zb#{MLF@sQx(Hs?a#cT^1^!SSeC5R#kf>qzO-Yk%2Fm|msdM!bjo;o0~Q^PZmq#~H! zDMf(?usFx%$4zQp4-hCoxa@~HX+JWv1vo&^NG-z; z1EMD}5)Q5eF)a>;cl<;c6rFqq0TC?M;Lx}Kn**b3Xo8_ZF6>$c2XwMfag3^QtbQTr zwF8s@3!4`x-ZTRoW1Omm0yQEpSlY3o-~nU=$gL*uYTfVm_xII3sCsS}kYmR}SYbxV z^wz*--^Y`;A|osSAG%c97BdwjY- zpNH}aVsY_dNp68y;bj#hI36Az9`7C%9CbMvh*N;oN^U*9YmmDdvLM0n%YOf)DJi%p zs9D+R`F#IeEyWHGU^8&`BEQz)0bIr&L%0E4419gHA>5u9fGF5s1Se5&3n6&gHuVNd z26)mR*tYQu9p1{VClgmBVS>XH^%Sf~s``Zh`DpSHh`KvK6(TUAJae!)Xb!+UWQ&dt z*}8+vSPsVw;=|Kb4@iRIJm3JcQ#)Ay3q-zraB)zQ7XcMM_LG4sE(g@Pi-_u@em?3G zjCat5O%wB=qG!0P_4Ia1QAwlM3BWxC7~3jmWwlfQ4kTDFZ-2jCYK2$LQ!>5{6QGbR zW|ttfVgn%_cAntwa=GXqc1zSFXrO8)C;;aGNYOk64~H=Te$$e_)g3_P2*LyS=T*qm${ef#s`&Mf zuhl{GFg=pr{yex01tD7O03whf#g9S3Jq6Afig0Bg3EDdRoqgao$n6X;oPTe;p+QhR zk=tM)m;gPJ?j3W#CirW_Tr$CrqpmA^o`JAP$|Q1)_nuF#{rmSWILAbw)QmfqD9Ti` z6HPHi^0~10-Z-<#5qys@a>{TOaO!m;d`3iEgU-FYytw#2fl(r~PNF5pAP7zarh_Em z+56h~05p$cfDEg&e^$G>unA&z%t|ls6Q%qF$Z(IyNAV99C8_r3>BQdv0000@Hc}wC= zsMm>J-<4+PkzmC;jX@?NQ7$Pq9~$kWdzf1{;zOBqMJxU0!md8ti2 z03AoF`L}r7Q47f27NgdKG;!ocn=Zn}Xa;3{+$1Lq5Px$H0naX{npoh6j>eb)PO&!$>0Gq+ zTQiZqJ1dGW(fs4l5csCt@k&GC@f>0=Vf}i@&3=0 z!J3M#^(Ea-^7dxrn4VJ5rs9DK&6l1bm^7$rN%dOoPEfpU8|(?e1@u?&E!*IB*-zzc zasj#Y2yg%`J9H3QN(gADN30kSQ<5SG-UXMf$7GR~i`Tsm(3g@D89iK^?7x-z_BNwm zd6lwEkP285lmapj$uhWF)@1OSr7Lx%B3R2yKo4xsdxUj?W%Z{=pr(Vz%K-HT-a|sF z++52P7-Z9xwbj;&Ao+se(AyOj0D8HAn;G+?_EG}Wyl=fT+AOZlt{-1t9|;0N0~sj= zh$WSp4p1Xxi;Mpva(50B!t{74)`nbzj;h0_fY0aiey4}*^$vg@@&`q8 zyxis3G5B~8DW_l|F@$!_*`p&4EGwD;-XD(#DIOj#t$~MNb8eXg{c`C>N)yN6cDs!d zpPza=Y|(=LVvp0~o#Q!AAYX6sn<$d|Va<`rSu|bKEyM}_j5yMM8xu~p=#xL_e>sm$ U6hq>i!vFvP07*qoM6N<$f|N5~s{jB1 diff --git a/games/default/files/mobs/textures/mobs_sheep_orange.png b/games/default/files/mobs/textures/mobs_sheep_orange.png index b7d9c9332a9b05713c330156c2b2b264e3956009..4dc7c423730f4a199e52e3f6245c3390618f9ac6 100644 GIT binary patch literal 1504 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 diff --git a/games/default/files/mobs/textures/mobs_sheep_pink.png b/games/default/files/mobs/textures/mobs_sheep_pink.png index fc109cc8831227938ed76d70ccb0a1fd68bbb16b..c2318f953e4f737c44e5492e53d7dafb7b45bc8f 100644 GIT binary patch literal 1504 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 DOm0z6 diff --git a/games/default/files/mobs/textures/mobs_sheep_shaved.png b/games/default/files/mobs/textures/mobs_sheep_shaved.png index 6d3a7940806dc87da7c3344011ef6ac3d86256be..34b98c0025c31829613a917ed92fb0cec123bbb5 100644 GIT binary patch literal 1420 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 diff --git a/games/default/files/mobs/textures/mobs_sheep_white.png b/games/default/files/mobs/textures/mobs_sheep_white.png index f9c12026a8022bd5a40fdb759fe2f39f627d0552..a9e88664d685641ebffd86a8e5b336d56c9fc89f 100644 GIT binary patch delta 1382 zcmV-s1)2J{3Hb_;B!6;HOjJbx0s!scv|mqk-pYqoNNNB7|MTn0YFmN({Qgx(Y0lX6 zU{H2PJXZSl>UC(200RJWi_)F3>a@e}IJ*WNUIX&={E&vESV?O{LQB`*_Af0r_VC$z zZTF@a4jU#%vrKBDu%##L)8p{Q8@btR12u4FCWH!hcCbK~#8NrPhaX+&T;e zP=ig{>RQrY|NmcnD0cu*mM8J#Mwzu}?J+=7+PxW5`uN>UVDBB|?}9|;$?>Zpyb-C@ zAb|So@O+TyeK2TE2FXA;vqu~VN$;-8C?VD|hUZ?DQaiw0mQS`iECuLSz)`|H<3#B_ zixtx|4F(8LF@IERBv4YX;}W0#j#2e+d4OHPVQ~-K=$3gw)a#0pUY0BD6KEJ%@nV0@ zU=$7$Ad!NQ12h@lAV`sp#Ox1J5Hn&g`<_t{A)xdi0Rj(iM7vlISgv~a6_cf+x&T?W zp|l6!sX{@{V)*F9Th0^c97V|i5T++;a&HE4KC&mN4u1lQSCPpV-QtU4US%XWbx^Pg z3iMop#edBpJUzG^fCHYvcmo6#Otvm`uWef^`!H=cer)eq(MtTnkS?szkMFeWX7DoIG5f!45HY>c}9h3J|jr zyZeF-6Hm15-3lEbfvDu51Y82UFK5>z&p}GxI)BVIEWC?=7X|VXXOJAfVF4goR1K%3 zn1WqNmdHs?tjOp9$vG7&K=&Bq2q&+0wpr!4*E5KtDz2cn`zB5x*wo#?kwB@?KzQe0 zi0Nj|;GhiFE!gXmXl9`Emqd8+cc3}}sfrD!m3X!1q|2Lb%Nt}6>%4O@(q z=k@pxivY(64`2i!0T!^7htKPuPmgzJ2A5@F5fO@K6v6ctC9dJ-~wZQiG@qhTpB{8@#$W_Vd-QE2wgH1s86zl>{5hp-W zaA`-K!d1aVz~^U~!u53l7@yYx&LWKrUe}eqCM_FyPmXag_jPu!+JR zgGGxfHsGK|y!SyNFBb(_Ky*gqYy#E6y&Pao;2?lYTTW+B;LXYn4 zSWbt7fQuj;8PqI$Aig!o!J%l`!G9CCEFeqrZz;HE*xv&q0Fx*lgQrt#3V!F7zn6o7 zrR;%!Z9>zd%)kPW#c%(8D*%f%fA*f}*TJPVEVJaGAO{sfq@PttG#FH;HAZ4*W2I2x z_+wb=dm#DEtRS4XH(uiabZ-}|8ARY^65h_D{6GLA0Dqc-3LI1`NSeg4n_sVAi7pqc z8*`LFP%hHcb4K2{0FexSL4?c|%JI?M829PZClkL+pytB)2q+xFBETR&ULib)0e(FD o`)~s548-R|tsesS1LP<9AC9k<#L4~`G5`Po07*qoM6N<$f+lW-E&u=k delta 1187 zcmV;U1YG<13bzT6B!5LvOjJbx0szO>*}Kir|NsBk;^l&9LhtkRg`A<4cTK}xlxiUZ5}y5i zH^M(!R0B%T5994SMIM9D9zb*Z;qDn(s5E_WQl3-iEw%g5t5I$P_OfcQ-Lk!aoDq%_ z;Z;@QM-erK=XU1~;)ztXK_)8h4Ni&SAGz1PJRNX2$QYLz#E7g!YE3vQep;_^6o@Fr zR(HDxNa1NFD1YK$%77uKw@ON6R9MQw7_K8e9(YETm_n8g31~RpO1n89hc!y~>SA8P z-2|r`yI2E}nnXxMwkX%Z3p3CJ zJ}Gc`!Yl_!-%fMcm_9&)n4Zbrg5R~au8$XgL$cpPy;Q4 z03Pexae)hqCrk%wy#hvK=>R&{Nfu-EF=dTm1f5`iZ>bZyvXhQ0cdLdfM@$OQm^47D z95suC!GDx?g+&j^qck1=vEP^nk8#hy!A_-r(N`#kT>=(gG!G{0_*F0!k7p zfHSXvV+W=E>Ij?lCFxOs;B`^V3s8d-9;Mu*+|Z}IM|g4Z=YIX#M8tjCnyPOjRMn*H|^6G@k=s829f})(YS<@BKs$s@oj>q=-84i z!vAKLWtq}t zyMJ6R+cr0BpM$4dfL^45Hwgz&4BQI5WD49SX!XUaHV+VyLcayN)o(o);8Y3*e2X!2 zuSnnVW*{-|F&GnlI$4DqR?FPoLE)DJq-X<;b@1&GNQEE^k0~PxOm@!T*C21T0EKKbWmXzsm_;jtSfC*${eSrT$Mx#s_Gk=Msxls{fV3Ro&+GO2(?D8I zO8^B@jZhw}leLFKTQQ%@Crf7@N`@?|y1z|CbrKz%qzK@Y|C!JZ`pP`Bn0GH{s)iyWQKf|jh+Ai002ovPDHLkV1jLg BD0ct= diff --git a/games/default/files/mobs/textures/mobs_sheep_yellow.png b/games/default/files/mobs/textures/mobs_sheep_yellow.png index 848c40845e8d03a59c739f87b070d135b619a601..4b40c80dcfc12f7b69b65ed96134419ddc65c785 100644 GIT binary patch literal 1504 zcmV<61t0o}P)MN2q#&70}vca zgJ>)~agSgF$Rym895KY4BD@Avq9|tA0;CwGusZitBG@wVFas0;7&1T?=^2$E_W@H6 zPXNYe{^y3bl1h$2GC|GY0jlhmxCTH%$^+)t<{Vi+zzk0&7rulC zo;AUoBRqoB%Hc+Gj|-w*XQqhzTv`nv2cQ%X2o!5DNEZNr4I=FP*gWq!Jj#IA(ncW`mi^#tM-FkOn-a#hL-Ssvr=d z=OIOdB{RRoh1|SW5@ACFs4sxRE|L?=rA^ak8eSMCb0P4aB5)7|V1ei?6LgvhhR-ZT znt_1QLw3c*6$jDWV%S1sKVW&G-<7LaWB0;i(FU0;lgDv)&p@jkh92Ok#E)_iqrd>^ zb#{MLF@sQx(Hs?a#cT^1^!SSeC5R#kf>qzO-Yk%2Fm|msdM!bjo;o0~Q^PZmq#~H! zDMf(?usFx%$4zQp4-hCoxa@~HX+JWv1vo&^NG-z; z1EMD}5)Q5eF)a>;cltya6rFqq0TC?M;Lx}Kn**b3Xo8_ZF6>$c2eh|Pag3^Qs(vBp zwF8s@3!4`x-ZTRoW9+Mi0yQEpSlY3o-~nU=$gL*uYCRkdkB`+osCsS}kYmR}SYbxV z^wz*_IWZht5u9fGF5s1Se5&3n94QHuVNd z2DsNB*tYQu9p1{VClgmBVS>XH^%Sf~s``Zh`DpSHh`KvK6(TUAJae!)Xb!+UWQ&dt z*}8+vSdOO*;=|Kb4@iRIJm3JcQ#)Ay3q-zraB)zQ7XcMM_LG4sE=Sb4i-_u@em?3G zjCat5O%wB=qG!0Pb^o?cQAwlM3BWxC7~3jmWwlfQ4kTDFZ-2jCYK2$LQ!>5{6QGbR zW|ttfVgn%_cb?$xa=GXqc1zSFXrO8)C;;aGNYOk6kH;|pe$kS@)Ez+O2*LyS*Hy^W${ef#s`%}< zZ`DEbFg=pr{yex01tD7O03whf#g9S3Jq6Afig0D02--UQgMHvO$n6X;oPTe;p+QhR zk=tM)m;gPJ?wxYKCirW_Tr$CrqpmA^o`JAP$|Q1)_nuF#{rmSWILAbw)QmfqD9Ti` z6HPHi^0~10-Z-<#5qys@a>{TOaO!m;d`3iEgU-FazPk86fl(r~PNF5pAP7zarh_Em z+56h~05p$cfDEg&e^$G>unA&z%t|ls6Q%qF$Z(IyNAVA(xvUz-Hj{+_0000yBUh^it}MW%86|^_Ok`opk5oKHGp%^6W|9hf&&&UpF5c`T11Ic}Y|; zE8N&aNGT=MhFb2IYv-MC{O(6|MJw*8e>EZ+m|Hje>FHfPI{)6+2x%920006kNkl=d#=|2!%~kci(br^8Rlbu*Hq{M`m)?npOD(M=&h^DFfR-fFjEx%L#~rA_hC% zY$amLV~BpGM?4P1c)wvlD}GgB2V3hyJgqEZi{_+)XDS`OZ-1WpI6QuXM{(Sjp6U8( z=XBdaIX)*_2Yo|M7t)QniQwjJQCp5D60n2uZ~Tih+n$Z-QRN z)rwQG!U{lGN93hR6Z4pq%4u3kF^>URPwUtF`xm&rs`ZXtQ9dQFB&!lO($4(IdB_NuCf0BbBsl83|xqn00000NkvXXu0mjf Dv&l~z diff --git a/games/default/files/mobs/textures/mobs_skeleton.png b/games/default/files/mobs/textures/mobs_skeleton.png index b8130b5585c165bfb89582e3d60ea9befc02905a..d65edfc0f4fceec0edca0631b9a345fdd02d673c 100644 GIT binary patch delta 464 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 1 then - - -- reset time for next check - time = 0 + if time < 1 then + return + end - -- check players - for _,player in ipairs(minetest.get_connected_players()) do - - -- where am I? - local pos = player:getpos() - - -- what is around me? - pos.y = pos.y - 0.1 -- standing on - local nod_stand = minetest.get_node(pos).name + -- reset time for next check + time = 0 - pos.y = pos.y + 1.5 -- head level - local nod_head = minetest.get_node(pos).name + -- check players + for _,player in pairs(minetest.get_connected_players()) do + + -- where am I? + local pos = player:getpos() + + -- what is around me? + pos.y = pos.y - 0.1 -- standing on + local nod_stand = node_ok(pos) + + pos.y = pos.y + 1.5 -- head level + local nod_head = node_ok(pos) - pos.y = pos.y - 1.2 -- feet level - local nod_feet = minetest.get_node(pos).name - - pos.y = pos.y - 0.2 -- reset pos + pos.y = pos.y - 1.2 -- feet level + local nod_feet = node_ok(pos) - -- is 3d_armor mod active? if so make armor physics default - if minetest.get_modpath("3d_armor") then - def = armor.def[player:get_player_name()] or nil + pos.y = pos.y - 0.2 -- reset pos + + -- is 3d_armor mod active? if so make armor physics default + if minetest.get_modpath("3d_armor") then + def = armor.def[player:get_player_name()] or {} + end + + -- set to armor physics or defaults + pp.speed = def.speed or 1 + pp.jump = def.jump or 1 + pp.gravity = def.gravity or 1 + + -- standing on ice? if so walk faster + if nod_stand == "default:ice" then + pp.speed = pp.speed + 0.4 + end + + -- standing on snow? if so walk slower + if nod_stand == "default:snow" + or nod_stand == "default:snowblock" + -- wading in water? if so walk slower + or minetest.registered_nodes[nod_feet].groups.water then + pp.speed = pp.speed - 0.4 + end + + -- set player physics + player:set_physics_override(pp.speed, pp.jump, pp.gravity) + --print ("Speed:", pp.speed, "Jump:", pp.jump, "Gravity:", pp.gravity) + + -- is player suffocating inside node? (only solid "normal" type nodes) + if minetest.registered_nodes[nod_head].walkable + and minetest.registered_nodes[nod_head].drawtype == "normal" + and not minetest.check_player_privs(player:get_player_name(), {noclip = true}) then + + if player:get_hp() > 0 then + player:set_hp(player:get_hp() - 2) end + end - -- set to armor physics or defaults - pp.speed = def.speed or 1 - pp.jump = def.jump or 1 - pp.gravity = def.gravity or 1 + -- am I near a cactus? + local near = minetest.find_node_near(pos, 1, "default:cactus") - -- standing on ice? if so walk faster - if nod_stand == "default:ice" then - pp.speed = pp.speed + 0.4 - end + if near then - -- standing on snow? if so walk slower - if nod_stand == "default:snow" - or nod_stand == "default:snowblock" - -- wading in water? if so walk slower - or nod_feet == "default:water_flowing" - or nod_feet == "default:water_source" then - pp.speed = pp.speed - 0.4 - end - - -- set player physics - player:set_physics_override(pp.speed, pp.jump, pp.gravity) - --print ("Speed:", pp.speed, "Jump:", pp.jump, "Gravity:", pp.gravity) + -- am I touching the cactus? if so it hurts + for _,object in pairs(minetest.get_objects_inside_radius(near, 1.1)) do - -- is player suffocating inside node? (only nodes found in default game) - if minetest.registered_nodes[nod_head] - and minetest.registered_nodes[nod_head].walkable - and nod_head:find("default:") - and not minetest.check_player_privs(player:get_player_name(), {noclip=true}) then - if player:get_hp() > 0 then - player:set_hp(player:get_hp()-1) + if object:get_hp() > 0 then + object:set_hp(object:get_hp() - 2) end end - -- am I near a cactus? - local near = minetest.find_node_near(pos, 1, "default:cactus") - if near then - - -- am I touching the cactus? if so it hurts - for _,object in ipairs(minetest.get_objects_inside_radius(near, 1.0)) do - if object:get_hp() > 0 then - object:set_hp(object:get_hp()-1) - end - end - - end - end - + end + end) diff --git a/games/default/files/tnt/init.lua b/games/default/files/tnt/init.lua index a48f065af..e5d05e40a 100644 --- a/games/default/files/tnt/init.lua +++ b/games/default/files/tnt/init.lua @@ -36,7 +36,7 @@ minetest.register_node("tnt:tnt", { tiles = {"default_tnt_top.png", "default_tnt_bottom.png", "default_tnt_side.png", "default_tnt_side.png", "default_tnt_side.png", "default_tnt_side.png"}, - dug_item = '', -- Get nothing + drop = '', -- Get nothing material = { diggability = "not", }, diff --git a/games/default/files/wool/README.txt b/games/default/files/wool/README.txt deleted file mode 100644 index ff4983123..000000000 --- a/games/default/files/wool/README.txt +++ /dev/null @@ -1,15 +0,0 @@ -multicraft 0.4 mod: wool -====================== - -Mostly backward-compatible with jordach's 16-color wool mod. - -License of source code: ------------------------ -Copyright (C) 2012 Perttu Ahola (celeron55) - -This program is free software. It comes without any warranty, to -the extent permitted by applicable law. You can redistribute it -and/or modify it under the terms of the Do What The Fuck You Want -To Public License, Version 2, as published by Sam Hocevar. See -http://sam.zoy.org/wtfpl/COPYING for more details. - diff --git a/games/default/files/wool/credit.txt b/games/default/files/wool/credit.txt deleted file mode 100644 index e35ec0252..000000000 --- a/games/default/files/wool/credit.txt +++ /dev/null @@ -1 +0,0 @@ -jojoa1997:carpet diff --git a/games/default/files/wool/depends.txt b/games/default/files/wool/depends.txt index 8035d8078..4ad96d515 100644 --- a/games/default/files/wool/depends.txt +++ b/games/default/files/wool/depends.txt @@ -1,2 +1 @@ - default diff --git a/games/default/files/wool/init.lua b/games/default/files/wool/init.lua index 7ec74fad0..e93ef3b28 100644 --- a/games/default/files/wool/init.lua +++ b/games/default/files/wool/init.lua @@ -1,74 +1,61 @@ - - --- multicraft/wool/init.lua - --- Backwards compatibility with jordach's 16-color wool mod minetest.register_alias("wool:dark_blue", "wool:blue") minetest.register_alias("wool:gold", "wool:yellow") -local wool = {} --- This uses a trick: you can first define the recipes using all of the base --- colors, and then some recipes using more specific colors for a few non-base --- colors available. When crafting, the last recipes will be checked first. -wool.dyes = { - {"white", "White", nil}, - {"grey", "Grey", "basecolor_grey"}, - {"black", "Black", "basecolor_black"}, - {"red", "Red", "basecolor_red"}, - {"yellow", "Yellow", "basecolor_yellow"}, - {"green", "Green", "basecolor_green"}, - {"cyan", "Cyan", "basecolor_cyan"}, - {"blue", "Blue", "basecolor_blue"}, - {"magenta", "Magenta", "basecolor_magenta"}, - {"orange", "Orange", "excolor_orange"}, - {"violet", "Violet", "excolor_violet"}, - {"brown", "Brown", "unicolor_dark_orange"}, - {"pink", "Pink", "unicolor_light_red"}, - {"dark_grey", "Dark Grey", "unicolor_darkgrey"}, - {"dark_green", "Dark Green", "unicolor_dark_green"}, -} +function default.node_wool_defaults(table) -for _, row in ipairs(wool.dyes) do - local name = row[1] - local desc = row[2] - local craft_color_group = row[3] - -- Node Definition - minetest.register_node("wool:"..name, { - description = desc.." Wool", - stack_max = 64, - tiles = {"wool_"..name..".png"}, - groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,flammable=3,wool=1, building = 1}, - sounds = default.node_sound_defaults(), - }) - minetest.register_node("wool:"..name.."_carpet", { - description = desc.." Carpet", - walkable = false, - tiles = {"wool_"..name..".png"}, - wield_image = "wool_"..name..".png", - groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,carpet=1, decoration = 1}, - sounds = default.node_sound_defaults(), - paramtype = "light", - stack_max = 64, - drawtype = "nodebox", - node_box = { - type = "fixed", - fixed = { - {-8/16, -8/16, -8/16, 8/16, -7/16, 8/16}, - }, - }, - }) - if craft_color_group then - -- Crafting from dye and white wool - minetest.register_craft({ - type = "shapeless", - output = 'wool:'..name, - recipe = {'group:dye,'..craft_color_group, 'group:wool'}, - }) - minetest.register_craft({ - type = "shapeless", - output = 'wool:'..name..'_carpet 3', - recipe = {'wool:'..name, 'wool:'..name}, - }) - end + table = table or {} + + table.footstep = table.footstep or + {name = "wool_coat_movement", gain = 1.0} + + table.dug = table.dug or + {name = "wool_coat_movement", gain = 0.25} + + table.place = table.place or + {name = "default_place_node", gain = 1.0} + + return table end +local wool_sound = default.node_wool_defaults() +--local wool_sound = default.node_sound_leaves_defaults() + +local wool_dyes = { + {"white", "White"}, + {"grey", "Grey"}, + {"black", "Black"}, + {"red", "Red"}, + {"yellow", "Yellow"}, + {"green", "Green"}, + {"cyan", "Cyan"}, + {"blue", "Blue"}, + {"magenta", "Magenta"}, + {"orange", "Orange"}, + {"violet", "Violet"}, + {"brown", "Brown"}, + {"pink", "Pink"}, + {"dark_grey", "Dark Grey"}, + {"dark_green", "Dark Green"}, +} + +for _, row in pairs(wool_dyes) do + + minetest.register_node("wool:" .. row[1], { + description = row[2] .. " Wool", + tiles = {"wool_" .. row[1] .. ".png"}, + groups = { + snappy = 2, choppy = 2, oddly_breakable_by_hand = 3, + flammable = 3, wool = 1 + }, + sounds = wool_sound, + }) + + minetest.register_craft({ + type = "shapeless", + output = "wool:" .. row[1], + recipe = {"dye:" .. row[1], "group:wool"}, + }) + +end + +print ("[MOD] Wool mod loaded") diff --git a/games/default/game.conf b/games/default/game.conf index e9a7ea08c..33ca56223 100644 --- a/games/default/game.conf +++ b/games/default/game.conf @@ -1 +1 @@ -name = MultiCraft \ No newline at end of file +name = default \ No newline at end of file diff --git a/games/default/multicraft.conf b/games/default/multicraft.conf index e4dabf920..918d9f8d3 100644 --- a/games/default/multicraft.conf +++ b/games/default/multicraft.conf @@ -9,5 +9,4 @@ movement_speed_jump = 6.6 movement_liquid_sink = 23 movement_gravity = 10.3 -default_privs = fly, fast, interact, shout, settime -vertical_spawn_range = 128 \ No newline at end of file +default_privs = fly, fast, interact, shout, settime \ No newline at end of file