From d11b63517dde67dbf288cd778c21b32bb95957c5 Mon Sep 17 00:00:00 2001 From: Poikilos <7557867+poikilos@users.noreply.github.com> Date: Mon, 9 Mar 2026 00:00:18 -0400 Subject: [PATCH] Fix minetest.conf.enliven and non-redundant conf editring (split at "=" correctly). Add&swap several mods (See changelog). Add build script. --- build | 2 ++ changelog.md | 12 ++++++++-- pyenliven/gamebuilder.py | 2 +- pyenliven/metadata.py | 48 +++++++++++++++++++++++++++++++--------- readme.md | 12 ++++++++++ 5 files changed, 63 insertions(+), 13 deletions(-) create mode 100755 build diff --git a/build b/build new file mode 100755 index 0000000..cd82d66 --- /dev/null +++ b/build @@ -0,0 +1,2 @@ +#!/bin/bash +python3 buildenliven.py --delete --no-pull diff --git a/changelog.md b/changelog.md index 890dcd7..f6561aa 100644 --- a/changelog.md +++ b/changelog.md @@ -7,11 +7,19 @@ Changelog](https://keepachangelog.com/en/1.0.0/). ## [git] - 2026-03-07 ### Added -- Add several mods. +- bedrock2, fire_plus, frame, playerlist +- sneak mods: invisible, visible_sneak +- Add several other mods. + ### Changed -- Switched to from Mobs Redo to creatura. +- Mobs Redo to creatura +- throwing_arrows to x_bows +- playeranim to bodyanim - Swapped out several other mods. +### Removed +- homedecor_modpack & homedecor_ua +- sling ## [git] - 2026-03-07 ### Added diff --git a/pyenliven/gamebuilder.py b/pyenliven/gamebuilder.py index d0c4e2f..0ab337f 100644 --- a/pyenliven/gamebuilder.py +++ b/pyenliven/gamebuilder.py @@ -198,7 +198,7 @@ class GameBuilder: # Default conf path if not provided if not conf_path: - conf_path = os.path.join(self.source_game, "minetest.conf.enliven") + conf_path = os.path.join(self.target_game, "minetest.conf.enliven") self.update_conf(conf_path) diff --git a/pyenliven/metadata.py b/pyenliven/metadata.py index d8c464a..bef3e4c 100644 --- a/pyenliven/metadata.py +++ b/pyenliven/metadata.py @@ -78,6 +78,8 @@ gamespec['add_mods']: List[Dict[str, any]] = [ # Worldgen {'name': "bakedclay", 'repo': ["https://notabug.org/tenplus1/bakedclay.git", "https://codeberg.org/tenplus1/bakedclay.git"]}, + {'name': "bedrock2", 'repo': "https://codeberg.org/Wuzzy/minetest_bedrock2.git", + 'settings': OrderedDict(bedrock2_y=-128)}, {'name': "biome_lib", 'repo': "https://github.com/mt-mods/biome_lib.git"}, # {'name': "birthstones", 'repo': "https://github.com/Poikilos/birthstones.git"}, # commented to reduce inventory overload {'name': "bushes_soil", 'repo': "https://github.com/Poikilos/bushes_soil.git"}, @@ -95,6 +97,7 @@ gamespec['add_mods']: List[Dict[str, any]] = [ # {'name': "moreblocks", 'repo': "https://github.com/minetest-mods/moreblocks.git", # 'why-not': "permanently changes default stairs. Has many registrations. Has its own ropes (vine-like ones).", # 'why': "Can use place_rotated. Has stairsplus."}, + # TODO: Make a mod to auto-convert corners on place&harvest (for stairsio items merged into mtg) {'name': "rope_bridges", 'repo': "https://github.com/sfence/rope_bridges.git"}, # TODO: ^ Make rope_bridges use x_farming if moreblocks not present (can also use ropes or vines mods) # {'name': "moreores", 'repo': "https://github.com/minetest-mods/moreores.git", @@ -153,6 +156,13 @@ gamespec['add_mods']: List[Dict[str, any]] = [ # TODO: May be contribute graphics for the "Planned Features" list. Maybe 3D. # ── Gameplay / Items ─────────────────────────────────────── + # TODO: from https://content.luanti.org/packages/PetiAPocok/minetest_extended/ add: + # TODO: snowball (or use minetest-mods/throwing or x_bows and fork https://codeberg.org/TPH/exile_snow or simpler https://content.luanti.org/packages/ComputeGraphics/snowball/ so snow drops it) + # TODO: ice and snow melting by furnace (also torch/fire if not in mtg) + # TODO: craft for green dye from cactus + # TODO: Chests drop the items what are inside of it when broke + # TODO: furnaces drop the items what are inside of it when broke + # TODO: Improved mese monster texture {'name': "3d_armor", 'repo': ["https://github.com/stujones11/minetest-3d_armor.git", "https://github.com/minetest-mods/3d_armor.git"]}, {'name': "anvil", 'repo': "https://github.com/minetest-mods/anvil.git"}, @@ -178,8 +188,9 @@ gamespec['add_mods']: List[Dict[str, any]] = [ {'name': "flowerpot", 'repo': "https://github.com/minetest-mods/flowerpot.git", 'what': "Works with most plants, and lightweight as in no entity"}, # ^ Make sure it works with x_farming--Make compat mod if necessary. See api.md. - {'name': "homedecor_modpack", 'repo': "https://github.com/mt-mods/homedecor_modpack.git"}, - {'name': "homedecor_ua", 'repo': "https://github.com/Poikilos/homedecor_ua.git"}, + {'name': "frame", 'repo': "https://github.com/minetest-mods/frame.git"}, + # {'name': "homedecor_modpack", 'repo': "https://github.com/mt-mods/homedecor_modpack.git"}, + # {'name': "homedecor_ua", 'repo': "https://github.com/Poikilos/homedecor_ua.git"}, {'name': "item_drop", 'repo': "https://github.com/minetest-mods/item_drop.git", 'settings': {'item_drop.pickup_radius': "1.425"}}, {'name': "mesecons_carts", 'repo': "https://cheapiesystems.com/git/mesecons_carts.git"}, @@ -192,20 +203,22 @@ gamespec['add_mods']: List[Dict[str, any]] = [ # TODO: ^ Simplify Painted 3D Armor and just make banners combine with shields {'name': "ropes", 'repo': "https://github.com/minetest-mods/ropes.git", 'why-not': "Use ropes from x_farming instead."}, - {'name': "sling", 'repo': "https://github.com/minetest-mods/sling.git"}, + # {'name': "sling", 'repo': "https://github.com/minetest-mods/sling.git"}, {'name': "signs_lib", 'repo': "https://github.com/mt-mods/signs_lib.git"}, {'name': "slimenodes", 'repo': "https://github.com/Poikilos/slimenodes.git"}, {'name': "sounding_line", 'repo': "https://github.com/minetest-mods/sounding_line.git"}, # {'name': "stamina", 'repo': "https://codeberg.org/tenplus1/stamina.git", # 'comment': "Patches item_eat to affect saturation instead of health.", # 'help-dev': "Changes ItemStack before register_on_item_eat callbacks, but they can use 6th param for original ItemStack", - # 'privs': {'invincible':['no_hunger']}}, + # 'privs': {'invincible': ['no_hunger']}}, # TODO: ^ Modify stamina to depend on hunger_ng *or* hbhunger, which many mods use (usually hunger_ng, but often either) # {'name': "sponge", 'repo': "https://github.com/BenjieFiftysix/sponge"}, # TODO: ^ Test, make sure is in worldgen. Integrate with marinara? {'name': "throwing", 'repo': "https://github.com/minetest-mods/throwing.git"}, - {'name': "throwing_arrows", 'repo': "https://github.com/minetest-mods/throwing_arrows.git", - 'settings': {'throwing.enable_arrow': "true"}}, + # {'name': "throwing_arrows", 'repo': "https://github.com/minetest-mods/throwing_arrows.git", + # 'settings': {'throwing.enable_arrow': "true"}}, + {'name': "x_bows", 'repo': "https://bitbucket.org/minetest_gamers/x_bows.git", + 'why': "Makes arrows stick into things"}, {'name': "travelnet", 'repo': "https://github.com/Sokomine/travelnet.git"}, # {'name': "ts_furniture", 'repo': "https://github.com/minetest-mods/ts_furniture.git"}, # TODO: ^ Make sitting work for steps (and slabs?) instead. @@ -227,9 +240,11 @@ gamespec['add_mods']: List[Dict[str, any]] = [ 'what': "Additional farming including giant cacti, bonemeal, empty soup bowl, placeable food", 'why': "better graphics than farming redo"}, # TODO: ^ Make sure x_farming works with: minetest_game/farming, hunger_ng + # TODO: ^ Add white dye from bonemeal recipe if not present {'name': "xdecor", 'repo': "https://codeberg.org/Wuzzy/xdecor-libre.git"}, # TODO: ^ Remove shaped nodes. # TODO: ^ Make kc_modpack unregister the enchanting table and register a table for its system + # TODO: Add version of vessels with jars from minetest_extended? # ── Player UX ────────────────────────────────────────────── {'name': "ambience", 'repo': ["https://notabug.org/tenplus1/ambience.git", @@ -237,6 +252,7 @@ gamespec['add_mods']: List[Dict[str, any]] = [ {'name': "effervescence", 'repo': "https://github.com/EmptyStar/effervescence.git"}, # TODO: ^ designed for Asuna, so may need work for: naturalbiomes, livingjungle, plantlife_modpack {'name': "environment_music", 'repo': "https://github.com/Poikilos/environment_music.git"}, + {'name': "fire_plus", 'repo': "https://github.com/Dumpster-Studios/fire_plus.git"}, {'name': "hbsprint", 'repo': "https://github.com/minetest-mods/hbsprint.git"}, {'name': "hunger_ng", 'repo': ["https://gitlab.com/4w/hunger_ng.git", "https://git.0x7be.net/dirk/hunger_ng"], @@ -249,12 +265,17 @@ gamespec['add_mods']: List[Dict[str, any]] = [ 'exclude': ["music_default", "music_dfcaverns"], 'what': "music_api such as for Poikilos' environment_music"}, {'name': "player_monoids", 'repo': "https://github.com/minetest-mods/player_monoids.git"}, - {'name': "playeranim", 'repo': "https://github.com/minetest-mods/playeranim.git", - 'what': "Makes the head, and the right arm when you're mining, face the way you're facing"}, + # {'name': "playeranim", 'repo': "https://github.com/minetest-mods/playeranim.git", + # 'what': "Makes the head, and the right arm when you're mining, face the way you're facing"}, + {'name': "bodyanim", 'repo': "https://github.com/dacctal/luanti-bodyanim.git", + 'description': "Player bodies follow their walk direction, and player heads follow their look direction. Based on Lone_Wolf's headanim"}, + # TODO: ^ Make sneak animation for bodyanim {'name': "playereffects", 'repo': "https://github.com/sys4-fr/playereffects"}, + {'name': "playerlist", 'repo': "https://github.com/LizzyFleckenstein03/playerlist.git", + 'what': "Show player list on sneak. Has color API and ping.", + 'content_url': "https://content.luanti.org/packages/AiTechEye/invisible/"}, # {'name': "skinsdb", 'repo': "https://github.com/minetest-mods/skinsdb.git"}, # {'name': "sprint", 'repo': "https://github.com/GunshipPenguin/sprint.git"}, - # TODO: ^ Make sure stamina mod fully implements sprint # {'name': "unified_inventory",'repo': [ # "https://github.com/minetest-mods/unified_inventory.git", # "https://github.com/MinetestForFun/unified_inventory" # fork with "nicer interface" @@ -264,12 +285,19 @@ gamespec['add_mods']: List[Dict[str, any]] = [ # 'why-not': "Now included in minetest_game"}, # {'name': "bags", 'repo': "https://github.com/cornernote/minetest-bags.git"}, {'name': "prestibags", 'repo': "https://github.com/Poikilos/prestibags.git"}, + # TODO: make dyed_prestibags (See also https://codeberg.org/Codiac/prestibags) # {'name': "woodcutting", 'repo': "https://github.com/minetest-mods/woodcutting.git", # 'what': "harvest tree while sneak pressed to gather whole tree"}, # {'name': "radiant_damage", 'repo': "https://github.com/minetest-mods/radiant_damage.git"}, # TODO: ^ Make walking on hardened lava cause damage + {'name': "invisible", 'repo': "https://github.com/AiTechEye/invisible.git", + 'items': {'moderator': ['invisible:tool']}, # i is alias for invisible:tool + 'privs': {'moderator': ['invisible']}}, + # NOTE: ^ See also visible_sneak {'name': "unified_stamina", 'repo': "https://github.com/t-affeldt/unified_stamina.git", 'why': "Works with various stamina mods including hbsprint"}, + {'name': "visible_sneak", 'repo': "https://github.com/wireva/visible_sneak.git"} + # TODO: ^ Make sure can sneak under things (1.5 m), otherwise switch to https://content.luanti.org/packages/zempik10/good_sneaking/ and fix non-moving legs # ── Legacy / Special ─────────────────────────────────────── # {'name': "animal_materials_legacy"}, @@ -425,7 +453,7 @@ def update_conf(path, new_settings): f" No '=' in {rawL.rstrip()}") dst.write(rawL) continue - parts = line.split(line, 1) + parts = line.split("=", 1) parts[0] = parts[0].strip() if not parts[0]: logger.warning( diff --git a/readme.md b/readme.md index 251d56f..bc41983 100644 --- a/readme.md +++ b/readme.md @@ -8,6 +8,18 @@ ENLIVEN is a work in progress, but the goals are: - Immersion: Create an experience where UI and UX are intuitive so that they don't distract from storytelling or in other cases the "feeling" (such as survival or creativity). + - Reduce nodes and instead emphasize emergent behavior (unique + interaction between existing nodes, craftitems, and/or mobs), such + as by: + - Adding interactivity to existing nodes not making more nodes. + Instead of making mods like ts_furniture, make player able + to sit on more nodes. + - Adding features using existing ores instead of adding more ores. + minetest_game doesn't have an endgame, so making one is better + than cluttering the main world. Instead of making something lazy + (new ore) that permanently affects balance and ramping, wait until + we can make something better (realms and/or structures with + cohesive lore to add distinct advancement tiers). - [Ramping](https://poikilos.org/2019/08/17/ramping-in-sandbox-games/): What is done so far includes making minor changes to mods to make a clear techtree that can't be short-circuited in "cheap" (both