diff --git a/menu/background.1.png b/menu/background.1.png new file mode 100644 index 0000000..4a935d8 Binary files /dev/null and b/menu/background.1.png differ diff --git a/menu/background.2.png b/menu/background.2.png new file mode 100644 index 0000000..c7ee7fc Binary files /dev/null and b/menu/background.2.png differ diff --git a/menu/background.3.png b/menu/background.3.png new file mode 100644 index 0000000..c8a827e Binary files /dev/null and b/menu/background.3.png differ diff --git a/menu/background.4.png b/menu/background.4.png new file mode 100644 index 0000000..b44f077 Binary files /dev/null and b/menu/background.4.png differ diff --git a/menu/icon.png b/menu/icon.png index f324f14..323a251 100644 Binary files a/menu/icon.png and b/menu/icon.png differ diff --git a/mods/pyutest_cmds/README.md b/mods/pyutest_cmds/README.md new file mode 100644 index 0000000..c6a1a56 --- /dev/null +++ b/mods/pyutest_cmds/README.md @@ -0,0 +1,3 @@ +# pyutest_cmds + +Chat Commands for PyuTest diff --git a/mods/pyutest_cmds/init.lua b/mods/pyutest_cmds/init.lua new file mode 100644 index 0000000..e69de29 diff --git a/mods/pyutest_cmds/mod.conf b/mods/pyutest_cmds/mod.conf new file mode 100644 index 0000000..2152ed5 --- /dev/null +++ b/mods/pyutest_cmds/mod.conf @@ -0,0 +1 @@ +name = pyutest_cmds diff --git a/mods/pyutest_core/README.md b/mods/pyutest_core/README.md new file mode 100644 index 0000000..0062405 --- /dev/null +++ b/mods/pyutest_core/README.md @@ -0,0 +1,3 @@ +# pyutest_core + +Core gameplay, blocks, tools, events, textures, etc. diff --git a/mods/pyutest_core/abms.lua b/mods/pyutest_core/abms.lua index 692b337..536ccc8 100644 --- a/mods/pyutest_core/abms.lua +++ b/mods/pyutest_core/abms.lua @@ -8,3 +8,14 @@ minetest.register_abm({ minetest.remove_node(pos) end }) + +minetest.register_abm({ + label = "Contagious Acid Spread", + nodenames = PyuTestCore.building_blocks, + neighbors = {"pyutest_core:contagious_acid"}, + interval = 1.2, + chance = 4.5, + action = function (pos) + minetest.set_node(pos, {name = "pyutest_core:contagious_acid"}) + end +}) diff --git a/mods/pyutest_core/blocks.lua b/mods/pyutest_core/blocks.lua index 954c496..ff9615b 100644 --- a/mods/pyutest_core/blocks.lua +++ b/mods/pyutest_core/blocks.lua @@ -38,19 +38,25 @@ PyuTestCore.node_boxes = { fixed = {-0.15, -0.5, -0.15, 0.15, 0.5, 0.15} } } +PyuTestCore.building_blocks = {} -PyuTestCore.make_colored_blocks = function (color, dcolor, tex, colorspec, cgroups) + +PyuTestCore.make_colored_blocks = function (color, dcolor, tex, colorspec, cgroups, bdrawtype, light) local groups = cgroups or { block = PyuTestCore.BLOCK_BREAKABLE_NORMAL } minetest.register_node("pyutest_core:"..color.."_block", { description = Translate(dcolor.." Block"), + drawtype = bdrawtype, tiles = {tex}, color = colorspec, groups = groups, - sounds = PyuTestCore.make_node_sounds() + sounds = PyuTestCore.make_node_sounds(), + paramtype = light and "light" or nil, + sunlight_propagates = light and true or nil }) + table.insert(PyuTestCore.building_blocks, "pyutest_core:"..color.."_block") minetest.register_node("pyutest_core:"..color.."_carpet", { description = Translate(dcolor .. " Carpet"), @@ -61,8 +67,10 @@ PyuTestCore.make_colored_blocks = function (color, dcolor, tex, colorspec, cgrou paramtype = "light", paramtyp2 = "facedir", node_box = PyuTestCore.node_boxes.CARPET, - sounds = PyuTestCore.make_node_sounds() + sounds = PyuTestCore.make_node_sounds(), + sunlight_propagates = light and true or nil }) + table.insert(PyuTestCore.building_blocks, "pyutest_core:"..color.."_carpet") minetest.register_node("pyutest_core:"..color.."_slab", { description = Translate(dcolor.." Slab"), @@ -73,8 +81,10 @@ PyuTestCore.make_colored_blocks = function (color, dcolor, tex, colorspec, cgrou paramtype = "light", paramtyp2 = "facedir", node_box = PyuTestCore.node_boxes.SLAB, - sounds = PyuTestCore.make_node_sounds() + sounds = PyuTestCore.make_node_sounds(), + sunlight_propagates = light and true or nil }) + table.insert(PyuTestCore.building_blocks, "pyutest_core:"..color.."_slab") minetest.register_node("pyutest_core:"..color.."_pillar", { description = Translate(dcolor.." Pillar"), @@ -85,8 +95,10 @@ PyuTestCore.make_colored_blocks = function (color, dcolor, tex, colorspec, cgrou paramtype = "light", paramtyp2 = "facedir", node_box = PyuTestCore.node_boxes.PILLAR, - sounds = PyuTestCore.make_node_sounds() - }) + sounds = PyuTestCore.make_node_sounds(), + sunlight_propagates = light and true or nil + }) + table.insert(PyuTestCore.building_blocks, "pyutest_core:"..color.."_pillar") end PyuTestCore.make_liquid = function (nsname, sname, desc, groups, tiles) @@ -129,6 +141,13 @@ PyuTestCore.make_colored_blocks("snow", "Snow", "snow.png", nil) PyuTestCore.make_colored_blocks("sand", "Sand", "sand.png", nil) PyuTestCore.make_colored_blocks("sandstone", "Sandstone", "sandstone.png", nil) PyuTestCore.make_colored_blocks("ice", "Ice", "ice.png", nil) +PyuTestCore.make_colored_blocks("leaves", "Leaves", "leaves.png", nil) +PyuTestCore.make_colored_blocks("mushroom", "Mushroom", "mushroom.png", nil) +PyuTestCore.make_colored_blocks("mushroom_stem", "Mushroom Stem", "mushroom-stem.png", nil) +PyuTestCore.make_colored_blocks("mycelium", "Mycelium", "mycelium.png", nil) +PyuTestCore.make_colored_blocks("hellstone", "Hellstone", "hellstone.png", nil) +PyuTestCore.make_colored_blocks("basalt", "Basalt", "basalt.png", nil) +PyuTestCore.make_colored_blocks("obsidian", "Obsidian", "obsidian.png", nil) PyuTestCore.make_colored_blocks("white", "White", "wool.png", "white") PyuTestCore.make_colored_blocks("red", "Red", "wool.png", "red") @@ -203,6 +222,19 @@ PyuTestCore.make_node("pyutest_core:flower2", "dandelion", "Dandelion", { inventory_image = "flower2.png" }) +PyuTestCore.make_node("pyutest_core:flower3", "blue_daisy", "Blue Daisy", { + snappy = 1, + block = PyuTestCore.BLOCK_BREAKABLE_INSTANT, +}, {"flower3.png"}, { + drawtype = "plantlike", + walkable = false, + waving = 1, + buildable_to = true, + paramtype = "light", + sunlight_propagates = true, + inventory_image = "flower3.png" +}) + PyuTestCore.make_node("pyutest_core:trapdoor", "trapdoor", "Trapdoor", { choppy = 1, block = PyuTestCore.BLOCK_BREAKABLE_NORMAL @@ -216,5 +248,10 @@ PyuTestCore.make_node("pyutest_core:trapdoor", "trapdoor", "Trapdoor", { } }) -PyuTestCore.make_liquid("pyutest_core:water", "water", "Water", {}, {"water.png"}) +PyuTestCore.make_node("pyutest_core:contagious_acid", "acid", "Contagious Acid", { + fleshy = 1, + block = PyuTestCore.BLOCK_BREAKABLE_LONG, +}, {"acid.png"}, {}) +PyuTestCore.make_liquid("pyutest_core:water", "water", "Water", {}, {"water.png"}) +PyuTestCore.make_liquid("pyutest_core:lava", "Lava", "Lava", {}, {"lava.png"}) diff --git a/mods/pyutest_core/init.lua b/mods/pyutest_core/init.lua index c86ee48..578b107 100644 --- a/mods/pyutest_core/init.lua +++ b/mods/pyutest_core/init.lua @@ -12,11 +12,11 @@ PyuTestCore = { } } -local path = minetest.get_modpath("pyutest_core") -dofile(path.."/blocks.lua") -dofile(path.."/mapgen.lua") -dofile(path.."/abms.lua") -dofile(path.."/tools.lua") -dofile(path.."/player.lua") +PyuTestCore_Path = minetest.get_modpath("pyutest_core") +dofile(PyuTestCore_Path.."/blocks.lua") +dofile(PyuTestCore_Path.."/mapgen.lua") +dofile(PyuTestCore_Path.."/abms.lua") +dofile(PyuTestCore_Path.."/tools.lua") +dofile(PyuTestCore_Path.."/player.lua") diff --git a/mods/pyutest_core/mapgen.lua b/mods/pyutest_core/mapgen.lua index df72d01..e8821a8 100644 --- a/mods/pyutest_core/mapgen.lua +++ b/mods/pyutest_core/mapgen.lua @@ -5,12 +5,13 @@ minetest.register_alias("mapgen_lava_source", "pyutest_core:water_source") -- Biomes -local biome_ends = { +PyuTestCore_BiomeEndings = { grassland = 40, desert = 70, frozen_plains = 50, mountains = 300, - flooded = 30 + mushroom_fields = 40, + hellbounds = 70 } minetest.register_biome({ @@ -22,13 +23,29 @@ minetest.register_biome({ node_filler = "pyutest_core:dirt_block", depth_filler = 3, - y_max = biome_ends.grassland, + y_max = PyuTestCore_BiomeEndings.grassland, y_min = -3, heat_point = 50, humidity_point = 50, }) +minetest.register_biome({ + name = "forest", + + node_top = "pyutest_core:grass_block", + depth_top = 1, + + node_filler = "pyutest_core:dirt_block", + depth_filler = 3, + + y_max = PyuTestCore_BiomeEndings.grassland, + y_min = -3, + + heat_point = 50, + humidity_point = 63 +}) + minetest.register_biome({ name = "stony_mountains", @@ -38,8 +55,8 @@ minetest.register_biome({ node_filler = "pyutest_core:stone_block", depth_filler = 3, - y_max = biome_ends.mountains, - y_min = biome_ends.grassland, + y_max = PyuTestCore_BiomeEndings.mountains, + y_min = PyuTestCore_BiomeEndings.grassland, heat_point = 45, humidity_point = 34 @@ -54,7 +71,7 @@ minetest.register_biome({ node_filler = "pyutest_core:sandstone_block", depth_filler = 3, - y_max = biome_ends.desert, + y_max = PyuTestCore_BiomeEndings.desert, y_min = -3, heat_point = 78, @@ -70,8 +87,8 @@ minetest.register_biome({ node_filler = "pyutest_core:sandstone_block", depth_filler = 3, - y_max = biome_ends.mountains, - y_min = biome_ends.desert, + y_max = PyuTestCore_BiomeEndings.mountains, + y_min = PyuTestCore_BiomeEndings.desert, heat_point = 65, humidity_point = 8 @@ -86,8 +103,8 @@ minetest.register_biome({ node_filler = "pyutest_core:snow_block", depth_filler = 3, - y_max = biome_ends.mountains, - y_min = biome_ends.frozen_plains, + y_max = PyuTestCore_BiomeEndings.mountains, + y_min = PyuTestCore_BiomeEndings.frozen_plains, heat_point = 16, humidity_point = 23 @@ -106,7 +123,7 @@ minetest.register_biome({ node_water_top = "pyutest_core:ice_block", depth_water_top = 10, - y_max = biome_ends.frozen_plains, + y_max = PyuTestCore_BiomeEndings.frozen_plains, y_min = -3, heat_point = 19, @@ -125,79 +142,54 @@ minetest.register_biome({ node_water_top = "pyutest_core:ice_block", depth_water_top = 10, - y_max = biome_ends.frozen_plains, + y_max = PyuTestCore_BiomeEndings.frozen_plains, y_min = -3, heat_point = 21, humidity_point = 9 }) minetest.register_biome({ - name = "flooded", - node_top = "pyutest_core:water_source", + name = "mushroom_fields", + node_top = "pyutest_core:mycelium_block", + depth_top = 1, node_filler = "pyutest_core:dirt_block", depth_filler = 3, - y_max = biome_ends.flooded, + y_max = PyuTestCore_BiomeEndings.frozen_plains, y_min = -3, - heat_point = 56, - humidity_point = 43 + + heat_point = 34, + humidity_point = 76 }) --- Schematics and Decorations +minetest.register_biome({ + name = "hellbounds", + + node_top = "pyutest_core:hellstone_block", + depth_top = 1, + + node_filler = "pyutest_core:basalt_block", + depth_filler = 9, + + node_water = "pyutest_core:lava_source", + node_river_water = "pyutest_core:lava_source", + + node_riverbed = "pyutest_core:lava_source", + depth_riverbed = 2, + + y_max = PyuTestCore_BiomeEndings.hellbounds, + y_min = -1, + + heat_point = 98, + humidity_point = 3 +}) PyuTestCore.get_schem_path = function (name) return minetest.get_modpath("pyutest_core") .. "/schematics/"..name..".mts" end -minetest.register_decoration({ - deco_type = "schematic", - place_on = {"pyutest_core:grass_block"}, - sidelen = 16, - fill_ratio = 0.00004, - biomes = {"grassland"}, - y_max = biome_ends.grassland, - y_min = 1, - schematic = PyuTestCore.get_schem_path("hut"), - rotation = "random", - flags = "place_center_x, place_center_z" -}) - -minetest.register_decoration({ - deco_type = "schematic", - place_on = {"pyutest_core:snow_block"}, - sidelen = 16, - fill_ratio = 0.00004, - biomes = {"frozen_plains"}, - y_max = biome_ends.frozen_plains, - y_min = 1, - schematic = PyuTestCore.get_schem_path("igloo"), - rotation = "random", - flags = "place_center_x, place_center_z" -}) - -minetest.register_decoration({ - deco_type = "schematic", - place_on = {"pyutest_core:snow_block"}, - sidelen = 16, - fill_ratio = 0.00007, - biomes = {"frozen_plains"}, - y_max = biome_ends.frozen_plains, - y_min = 1, - schematic = PyuTestCore.get_schem_path("snowycamp"), - rotation = "random", - flags = "place_center_x, place_center_z" -}) - -minetest.register_decoration({ - deco_type = "schematic", - place_on = {"pyutest_core:sand_block"}, - sidelen = 16, - fill_ratio = 0.00006, - biomes = {"desert"}, - y_max = biome_ends.desert, - y_min = 1, - schematic = PyuTestCore.get_schem_path("desertwell"), - rotation = "random", - flags = "place_center_x, place_center_z" -}) +-- Structures +dofile(PyuTestCore_Path.."/structures.lua") +-- Trees, Plants and More +dofile(PyuTestCore_Path.."/trees.lua") diff --git a/mods/pyutest_core/player.lua b/mods/pyutest_core/player.lua index c556358..b80579d 100644 --- a/mods/pyutest_core/player.lua +++ b/mods/pyutest_core/player.lua @@ -30,7 +30,7 @@ minetest.override_item("", { [PyuTestCore.BLOCK_BREAKABLE_LONG] = 4, [PyuTestCore.BLOCK_BREAKABLE_FOREVER] = 12 }, - uses = 0, + uses = 0 } }, punch_attack_uses = 0 diff --git a/mods/pyutest_core/schematics/mushroom.mts b/mods/pyutest_core/schematics/mushroom.mts new file mode 100644 index 0000000..3adffa3 Binary files /dev/null and b/mods/pyutest_core/schematics/mushroom.mts differ diff --git a/mods/pyutest_core/schematics/tree.mts b/mods/pyutest_core/schematics/tree.mts new file mode 100644 index 0000000..f55d2f0 Binary files /dev/null and b/mods/pyutest_core/schematics/tree.mts differ diff --git a/mods/pyutest_core/schematics/tree2.mts b/mods/pyutest_core/schematics/tree2.mts new file mode 100644 index 0000000..0af85db Binary files /dev/null and b/mods/pyutest_core/schematics/tree2.mts differ diff --git a/mods/pyutest_core/structures.lua b/mods/pyutest_core/structures.lua new file mode 100644 index 0000000..d664d93 --- /dev/null +++ b/mods/pyutest_core/structures.lua @@ -0,0 +1,51 @@ +minetest.register_decoration({ + deco_type = "schematic", + place_on = {"pyutest_core:grass_block"}, + sidelen = 16, + fill_ratio = 0.00004, + biomes = {"grassland"}, + y_max = PyuTestCore_BiomeEndings.grassland, + y_min = 1, + schematic = PyuTestCore.get_schem_path("hut"), + rotation = "random", + flags = "place_center_x, place_center_z" +}) + +minetest.register_decoration({ + deco_type = "schematic", + place_on = {"pyutest_core:snow_block"}, + sidelen = 16, + fill_ratio = 0.00004, + biomes = {"frozen_plains"}, + y_max = PyuTestCore_BiomeEndings.frozen_plains, + y_min = 1, + schematic = PyuTestCore.get_schem_path("igloo"), + rotation = "random", + flags = "place_center_x, place_center_z" +}) + +minetest.register_decoration({ + deco_type = "schematic", + place_on = {"pyutest_core:snow_block"}, + sidelen = 16, + fill_ratio = 0.00007, + biomes = {"frozen_plains"}, + y_max = PyuTestCore_BiomeEndings.frozen_plains, + y_min = 1, + schematic = PyuTestCore.get_schem_path("snowycamp"), + rotation = "random", + flags = "place_center_x, place_center_z" +}) + +minetest.register_decoration({ + deco_type = "schematic", + place_on = {"pyutest_core:sand_block"}, + sidelen = 16, + fill_ratio = 0.00006, + biomes = {"desert"}, + y_max = PyuTestCore_BiomeEndings.desert, + y_min = 1, + schematic = PyuTestCore.get_schem_path("desertwell"), + rotation = "random", + flags = "place_center_x, place_center_z" +}) diff --git a/mods/pyutest_core/textures/acid.png b/mods/pyutest_core/textures/acid.png new file mode 100644 index 0000000..5e5c3c0 Binary files /dev/null and b/mods/pyutest_core/textures/acid.png differ diff --git a/mods/pyutest_core/textures/basalt.png b/mods/pyutest_core/textures/basalt.png new file mode 100644 index 0000000..92e54c1 Binary files /dev/null and b/mods/pyutest_core/textures/basalt.png differ diff --git a/mods/pyutest_core/textures/flower3.png b/mods/pyutest_core/textures/flower3.png new file mode 100644 index 0000000..b2656f6 Binary files /dev/null and b/mods/pyutest_core/textures/flower3.png differ diff --git a/mods/pyutest_core/textures/hand.png b/mods/pyutest_core/textures/hand.png index 4f6b192..158d398 100644 Binary files a/mods/pyutest_core/textures/hand.png and b/mods/pyutest_core/textures/hand.png differ diff --git a/mods/pyutest_core/textures/hellstone.png b/mods/pyutest_core/textures/hellstone.png new file mode 100644 index 0000000..f7fbf94 Binary files /dev/null and b/mods/pyutest_core/textures/hellstone.png differ diff --git a/mods/pyutest_core/textures/lava.png b/mods/pyutest_core/textures/lava.png new file mode 100644 index 0000000..ea9f278 Binary files /dev/null and b/mods/pyutest_core/textures/lava.png differ diff --git a/mods/pyutest_core/textures/leaves.png b/mods/pyutest_core/textures/leaves.png new file mode 100644 index 0000000..19db263 Binary files /dev/null and b/mods/pyutest_core/textures/leaves.png differ diff --git a/mods/pyutest_core/textures/mushroom-stem.png b/mods/pyutest_core/textures/mushroom-stem.png new file mode 100644 index 0000000..266fa17 Binary files /dev/null and b/mods/pyutest_core/textures/mushroom-stem.png differ diff --git a/mods/pyutest_core/textures/mushroom.png b/mods/pyutest_core/textures/mushroom.png new file mode 100644 index 0000000..6b543a9 Binary files /dev/null and b/mods/pyutest_core/textures/mushroom.png differ diff --git a/mods/pyutest_core/textures/mycelium.png b/mods/pyutest_core/textures/mycelium.png new file mode 100644 index 0000000..760a00e Binary files /dev/null and b/mods/pyutest_core/textures/mycelium.png differ diff --git a/mods/pyutest_core/textures/obsidian.png b/mods/pyutest_core/textures/obsidian.png new file mode 100644 index 0000000..ac3e8f4 Binary files /dev/null and b/mods/pyutest_core/textures/obsidian.png differ diff --git a/mods/pyutest_core/textures/stone.png b/mods/pyutest_core/textures/stone.png index 95c7c5d..a91d780 100644 Binary files a/mods/pyutest_core/textures/stone.png and b/mods/pyutest_core/textures/stone.png differ diff --git a/mods/pyutest_core/textures/water.png b/mods/pyutest_core/textures/water.png index cb800f1..3d5d930 100644 Binary files a/mods/pyutest_core/textures/water.png and b/mods/pyutest_core/textures/water.png differ diff --git a/mods/pyutest_core/textures/wood.png b/mods/pyutest_core/textures/wood.png index c29fb50..fcb43c4 100644 Binary files a/mods/pyutest_core/textures/wood.png and b/mods/pyutest_core/textures/wood.png differ diff --git a/mods/pyutest_core/trees.lua b/mods/pyutest_core/trees.lua new file mode 100644 index 0000000..e2fa371 --- /dev/null +++ b/mods/pyutest_core/trees.lua @@ -0,0 +1,38 @@ +minetest.register_decoration({ + deco_type = "schematic", + place_on = {"pyutest_core:grass_block"}, + sidelen = 16, + fill_ratio = 0.004, + biomes = {"forest"}, + y_max = PyuTestCore_BiomeEndings.grassland, + y_min = 1, + schematic = PyuTestCore.get_schem_path("tree"), + rotation = "random", + flags = "place_center_x, place_center_z" +}) + +minetest.register_decoration({ + deco_type = "schematic", + place_on = {"pyutest_core:grass_block"}, + sidelen = 16, + fill_ratio = 0.004, + biomes = {"forest"}, + y_max = PyuTestCore_BiomeEndings.grassland, + y_min = 1, + schematic = PyuTestCore.get_schem_path("tree2"), + rotation = "random", + flags = "place_center_x, place_center_z" +}) + +minetest.register_decoration({ + deco_type = "schematic", + place_on = {"pyutest_core:mycelium_block"}, + sidelen = 16, + fill_ratio = 0.003, + biomes = {"mushroom_fields"}, + y_max = PyuTestCore_BiomeEndings.mushroom_fields, + y_min = 1, + schematic = PyuTestCore.get_schem_path("mushroom"), + rotation = "random", + flags = "place_center_x, place_center_z" +}) diff --git a/screenshot.png b/screenshot.png index b44f077..4a935d8 100644 Binary files a/screenshot.png and b/screenshot.png differ diff --git a/screenshots/alpha.png b/screenshots/alpha.png new file mode 100644 index 0000000..b44f077 Binary files /dev/null and b/screenshots/alpha.png differ diff --git a/screenshots/flowerbed.png b/screenshots/flowerbed.png new file mode 100644 index 0000000..c8a827e Binary files /dev/null and b/screenshots/flowerbed.png differ diff --git a/screenshots/hut.png b/screenshots/hut.png new file mode 100644 index 0000000..c7ee7fc Binary files /dev/null and b/screenshots/hut.png differ