From e1ea32ec0e0f06300cbb10daa222994394f732c6 Mon Sep 17 00:00:00 2001 From: Kacper Kostka Date: Sun, 22 Jan 2023 20:51:24 +0100 Subject: [PATCH] Craftings, Randomly spawning amonguses and more --- game.conf | 1 - mods/amogus_blocks/init.lua | 77 ++++++++++++-- mods/amogus_craftings/init.lua | 58 ++++++++++ .../entities/amogus_entity.lua | 15 +-- mods/amogus_generator/init.lua | 33 ++++++ mods/amogus_items/init.lua | 100 ++++++++++++++---- .../{goldenpick.png => goldenaxe.png} | Bin mods/amogus_items/textures/plumba.png | Bin 142 -> 182 bytes 8 files changed, 243 insertions(+), 41 deletions(-) create mode 100644 mods/amogus_craftings/init.lua rename mods/amogus_items/textures/{goldenpick.png => goldenaxe.png} (100%) diff --git a/game.conf b/game.conf index 7b47d77..dc69398 100644 --- a/game.conf +++ b/game.conf @@ -1,4 +1,3 @@ title = SussyCraft description = SUSSY LITTLE BAKA UWU -disabled_settings = enable_server author = kacperks, Looki2000 \ No newline at end of file diff --git a/mods/amogus_blocks/init.lua b/mods/amogus_blocks/init.lua index a32a1fd..15d721b 100644 --- a/mods/amogus_blocks/init.lua +++ b/mods/amogus_blocks/init.lua @@ -53,19 +53,19 @@ minetest.register_node("amogus_blocks:planks", { description = "Planks", tiles = {"Planks.png"}, - drop = 'amogus_blocks:planks', groups = {cracky=3, stone=1}, + drop = 'amogus_blocks:planks', groups = {choppy = 3}, }) minetest.register_node("amogus_blocks:purpleblock", { description = "Purple Block", tiles = {"purpleblock.png"}, - drop = 'amogus_blocks:purpleblock', groups = {cracky=3, stone=1}, + drop = 'amogus_blocks:purpleblock', groups = {crumbly = 3}, }) minetest.register_node("amogus_blocks:redblock", { description = "Red Block", tiles = {"redblock.png"}, - drop = 'amogus_blocks:redblock', groups = {cracky=3, stone=1}, + drop = 'amogus_blocks:redblock', groups = {crumbly = 3}, }) minetest.register_node("amogus_blocks:glowing_block", { description = "Glowing Block", @@ -96,7 +96,19 @@ minetest.register_node("amogus_blocks:grass", { "g.png" }, - drop = 'amogus_blocks:dirt', groups = {cracky=3, stone=1}, + drop = { + max_items = 2, + items = { + { + items = {'amogus_blocks:dirt'}, + rarity = 3, + }, + { + items = {'amogus_items:rock'}, + rarity = 2, + }, + }, + }, groups = {crumbly=3}, }) minetest.register_node("amogus_blocks:wood", { @@ -104,7 +116,7 @@ minetest.register_node("amogus_blocks:wood", { tiles = {"wood.png"}, drop = 'amogus_items:wooden_plank', - groups = {cracky = 3, stone = 1}, + groups = {choppy = 3, flammable = 3, wood = 1}, }) minetest.register_node("amogus_blocks:water", { @@ -172,19 +184,43 @@ minetest.register_node("amogus_blocks:water", { minetest.register_node("amogus_blocks:dirt", { description = "Dirt", tiles = {"d.png"}, - groups = {cracky = 3, stone = 1}, --sounds = default.node_sound_dirt_defaults({ -- footstep = {name = "default_grass_footstep", gain = 0.4}, --}), + groups = {crumbly = 3}, + --drop = {'amogus_blocks:dirt', 'amogus_items:rock'}, + -- drop dirt and amogus_items:rock + + drop = { + max_items = 2, + items = { + { + items = {'amogus_blocks:dirt'}, + rarity = 3, + }, + { + items = {'amogus_items:rock'}, + rarity = 2, + }, + }, + }, - - drop = 'amogus_blocks:amogus_blocks', groups = {cracky=3, stone=1}, - drop = 'amogus_blocks:dirt', }) minetest.register_node("amogus_blocks:stone", { description = "Stone", tiles = {"stone.png"}, + -- drop 10 times amogus_items:rock + drop = { + max_items = 10, + items = { + { + items = {'amogus_items:rock'}, + rarity = 1, + }, + }, + }, + --sounds = default.node_sound_stone_defaults(), groups = {cracky = 3, stone = 1}, }) @@ -229,3 +265,26 @@ minetest.register_node("amogus_blocks:lucky_block", { end }) + +minetest.register_node("amogus_blocks:amogus_spawner", { + description = "Amogus Spawner", + tiles = {"amogus_spawner.png"}, + on_generated = function(pos) + local meta = minetest.get_meta(pos) + meta:set_int("spawned", 0) + meta:set_int("interval", math.random(1,4)) + minetest.get_node_timer(pos):start(meta:get_int("interval")) + end, + on_timer = function(pos) + local meta = minetest.get_meta(pos) + local spawned = meta:get_int("spawned") + if spawned < 30 then + minetest.add_entity({x = pos.x, y = pos.y + 1, z = pos.z}, "amogus_entities:amogus") + spawned = spawned + 1 + meta:set_int("spawned", spawned) + minetest.get_node_timer(pos):start(meta:get_int("interval")) + else + minetest.remove_node(pos) + end + end +}) \ No newline at end of file diff --git a/mods/amogus_craftings/init.lua b/mods/amogus_craftings/init.lua new file mode 100644 index 0000000..3ff747c --- /dev/null +++ b/mods/amogus_craftings/init.lua @@ -0,0 +1,58 @@ +minetest.register_craft({ + output = "amogus_items:goldenaxe", + recipe = { + {"amogus_items:gold_ingot", "amogus_items:gold_ingot", ""}, + {"amogus_items:gold_ingot", "amogus_items:wooden_plank", ""}, + {"", "amogus_items:wooden_plank", ""}, + } +}) +minetest.register_craft({ + output = "amogus_items:stonepickaxe", + recipe = { + {"amogus_items:rock", "amogus_items:rock", "amogus_items:rock"}, + {"", "amogus_items:wooden_plank", ""}, + {"", "amogus_items:wooden_plank", ""}, + } +}) +minetest.register_craft({ + output = "amogus_items:goldenplumba", + recipe = { + {"amogus_items:gold_ingot", "amogus_items:gold_ingot", "amogus_items:gold_ingot"}, + {"amogus_items:gold_ingot", "amogus_items:wooden_plank", "amogus_items:gold_ingot"}, + {"amogus_items:gold_ingot", "amogus_items:wooden_plank", "amogus_items:gold_ingot"}, + } +}) +minetest.register_craft({ + output = "amogus_items:susplumba", + recipe = { + {"amogus_items:sussium_ingot", "amogus_items:sussium_ingot", "amogus_items:sussium_ingot"}, + {"amogus_items:sussium_ingot", "amogus_items:wooden_plank", "amogus_items:sussium_ingot"}, + {"amogus_items:sussium_ingot", "amogus_items:wooden_plank", "amogus_items:sussium_ingot"}, + } +}) + +minetest.register_craft({ + output = "amogus_blocks:grey_bricks", + recipe = { + {"amogus_items:rock", "amogus_items:rock", "amogus_items:rock"}, + {"amogus_items:rock", "amogus_items:rock", "amogus_items:rock"}, + {"amogus_items:rock", "amogus_items:rock", "amogus_items:rock"}, + } +}) +minetest.register_craft({ + output = "amogus_blocks:bricks", + recipe = { + {"", "amogus_blocks:redblock", ""}, + {"", "amogus_blocks:grey_bricks", ""}, + {"", "", ""}, + } +}) +minetest.register_craft({ + output = "amogus_blocks:planks", + recipe = { + {"amogus_items:wooden_plank", "amogus_items:wooden_plank", "amogus_items:wooden_plank"}, + {"amogus_items:wooden_plank", "amogus_items:wooden_plank", "amogus_items:wooden_plank"}, + {"amogus_items:wooden_plank", "amogus_items:wooden_plank", "amogus_items:wooden_plank"}, + } +}) + diff --git a/mods/amogus_entities/entities/amogus_entity.lua b/mods/amogus_entities/entities/amogus_entity.lua index 3799190..791fd26 100644 --- a/mods/amogus_entities/entities/amogus_entity.lua +++ b/mods/amogus_entities/entities/amogus_entity.lua @@ -1,9 +1,6 @@ -local loot_texture = { - "amogus_entity.png", - "amogus_entity_b.png", - "amogus_entity_br.png", - "amogus_entity_g.png", -} +-- create a random number from 0 to 3 + + local entity = { physical = true, collisionbox = {-0.5, 0, -0.5, 0.5, 1, 0.5}, @@ -12,10 +9,7 @@ local entity = { visual_size = {x=10, y=10, z=10}, mesh = "amogus_entity.obj", - textures = {"amogus_entity.png"}, - -- get a random texture from loot_texture table - --textures = {loot_texture[math.random(#loot_texture)]}, - + textures = {"amogus_entity.png",}, on_rightclick = function(self, clicker) minetest.chat_send_player(clicker:get_player_name(), "WHY ARE YOU SUCH SUSSY BAKA?") end, @@ -48,7 +42,6 @@ local entity = { -- kill itself (debugging) --self.object:remove() - end, diff --git a/mods/amogus_generator/init.lua b/mods/amogus_generator/init.lua index 900eb55..159012b 100644 --- a/mods/amogus_generator/init.lua +++ b/mods/amogus_generator/init.lua @@ -133,4 +133,37 @@ minetest.register_decoration({ flags = "place_center_x, place_center_z", rotation = "random", }) +--minetest.register_abm({ +-- label = "Spawn random entities", +-- nodenames = {"group:soil", "group:crumbly", "group:choppy", "group:snappy", "group:cracky"}, + -- interval = 15, + -- chance = 50, + -- action = function(pos) +-- local r = math.random(1, 500) + -- if r <= 50 then + -- minetest.add_entity({x = pos.x + math.random(-10, 10), + -- y = pos.y + 1, + -- z = pos.z + math.random(-10, 10)}, "amogus_entities:amogus") + -- minetest.sound_play("amogus_sound", { + -- pos = pos, + -- gain = 1.0, + -- max_hear_distance = 5 + -- }) + -- end + -- end +--}) + +minetest.register_on_generated(function(minp, maxp, seed) + --local is_newchunk = true + --for , pos in ipairs(minetest.find_nodes_in_area(minp, maxp, "mymod:amogus_spawner")) do + --is_new_chunk = false + -- break + --end + --if is_new_chunk then + for i = 1, math.random(10, 15) do + minetest.add_entity({x = minp.x + math.random(16), y = minp.y + 1, z = minp.z + math.random(16)}, "amogus_entities:amogus") + --minetest.sound_play("amogus_sound", { pos = pos,gain = 1.0,max_hear_distance = 5}) + end + --end +end) \ No newline at end of file diff --git a/mods/amogus_items/init.lua b/mods/amogus_items/init.lua index e409287..634faeb 100644 --- a/mods/amogus_items/init.lua +++ b/mods/amogus_items/init.lua @@ -1,15 +1,17 @@ minetest.register_item(":", { -- Hand -type = "none", -wield_image = "plumba.png", -wield_scale = {x=.3,y=2,z=2.5}, -range = 5, -tool_capabilities = { - max_drop_level = 0, - full_punch_interval = 0.4, - - - damage_groups = {fleshy = 1, snappy = 8, cracky=8, choppy=8, crumbly=8}, -} + type = "none", + wield_image = "coke.png", + wield_scale = {x=.3,y=2,z=2.5}, + range = 5, + tool_capabilities = { + max_drop_level = 0, + full_punch_interval = 0.4, + groupcaps = { + choppy = {times = {[1] = 2, [2] = 1.5, [3] = 1.0}, uses = 20, maxlevel = 1}, + crumbly = {times = {[1] = 0.5, [2] = 0.3, [3] = 0.2}, uses = 20, maxlevel = 1}, + }, + damage_groups = {fleshy = 1, snappy = 1, cracky=1}, + } }) minetest.register_craftitem("amogus_items:amogus", { description = "Amogus", @@ -122,25 +124,69 @@ minetest.register_craftitem("amogus_items:wooden_plank", { minetest.register_craftitem("amogus_items:gold_ingot", { description = "Gold Ingot", inventory_image = "gold_ingot.png", +})minetest.register_craftitem("amogus_items:rock", { + description = "Rock", + inventory_image = "rocks.png", }) minetest.register_craftitem("amogus_items:sussium_ingot", { description = "Sussium Ingot", inventory_image = "sussium_ingot.png", }) --add theese items goldenpickaxe, stonepickaxe and allow them slowly break nodes and destroy it after 30 uses -minetest.register_tool("amogus_items:goldenpickaxe", { - description = "Golden Pickaxe", - inventory_image = "goldenpick.png", +minetest.register_tool("amogus_items:goldenplumba", { + description = "Golden Plumba", + inventory_image = "goldenplumba.png", tool_capabilities = { - full_punch_interval = 1.0, - max_drop_level=1, - groupcaps={ - cracky={times={[1]=2.0, [2]=1.0, [3]=0.50}, uses=30, maxlevel=1}, + full_punch_interval = 0.1, + max_drop_level = 3, + groupcaps = { + unbreakable = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 10, maxlevel=3}, + crumbly = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 10, maxlevel=3}, + snappy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 10, maxlevel=3}, + choppy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 10, maxlevel=3}, + cracky = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 10, maxlevel=3}, + crumbly = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 10, maxlevel=3}, + cracky = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 10, maxlevel=3}, }, - damage_groups = {fleshy=2}, + damage_groups = {fleshy = 10}, }, + on_use = function(itemstack, user, pointed_thing) + if pointed_thing.type == "node" then + minetest.node_dig(pointed_thing.under, minetest.get_node(pointed_thing.under), user) + end + itemstack:add_wear(65535/10) + return itemstack + end, sound = {breaks = "default_tool_breaks"}, }) + +minetest.register_tool("amogus_items:susplumba", { + description = "Sus Plumba", + inventory_image = "plumba.png", + tool_capabilities = { + full_punch_interval = 0.1, + max_drop_level = 3, + groupcaps = { + unbreakable = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 10, maxlevel=3}, + crumbly = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 10, maxlevel=3}, + snappy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 10, maxlevel=3}, + choppy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 10, maxlevel=3}, + cracky = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 10, maxlevel=3}, + crumbly = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 10, maxlevel=3}, + cracky = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 10, maxlevel=3}, + }, + damage_groups = {fleshy = 10}, + }, + on_use = function(itemstack, user, pointed_thing) + if pointed_thing.type == "node" then + minetest.node_dig(pointed_thing.under, minetest.get_node(pointed_thing.under), user) + end + itemstack:add_wear(65535/40) + return itemstack + end, + sound = {breaks = "default_tool_breaks"}, +}) + minetest.register_tool("amogus_items:stonepickaxe", { description = "Stone Pickaxe", inventory_image = "stone_pick.png", @@ -153,4 +199,18 @@ minetest.register_tool("amogus_items:stonepickaxe", { damage_groups = {fleshy=2}, }, sound = {breaks = "default_tool_breaks"}, -}) \ No newline at end of file +}) + +minetest.register_tool("amogus_items:goldenaxe", { + description = "Golden Axe", + inventory_image = "goldenaxe.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + choppy={times={[1]=2.50, [2]=1.40, [3]=1.00}, uses=30, maxlevel=2}, + }, + damage_groups = {fleshy=4}, + }, + groups = {flammable = 2} +}) diff --git a/mods/amogus_items/textures/goldenpick.png b/mods/amogus_items/textures/goldenaxe.png similarity index 100% rename from mods/amogus_items/textures/goldenpick.png rename to mods/amogus_items/textures/goldenaxe.png diff --git a/mods/amogus_items/textures/plumba.png b/mods/amogus_items/textures/plumba.png index 42760c9a23c5db464d05dbb0b7ea27442a47bf6a..356a5c87d8550c1322bce52059ed0b447816fcc3 100644 GIT binary patch delta 141 zcmeBU+{QS;u%0E|(btiIVPik{pF~y$1_sUokH}&M2EM}}%y>M1MG8>R+tbA{#KJ#$ zfrx=qrbxlm#)tL-$qcz1ZWj-;EHz~CFf?*_ewZOlyn*3_Xn>l`g4=!~FV1=&GvJVX r@P%n(!j*+1+0U?V_V@!dmci4N&Cg|>Q$iB}4I(XX delta 100 zcmV-q0Gt1|0geHXF1Z