#!/usr/bin/env python ''' This script is a remake of the ENLIVEN build script in Python using Bucket_Game as the basis. ''' from __future__ import print_function import sys import platform import os profile = None if platform.system() == "Windows": profile = os.environ.get('USERPROFILE') else: profile = os.environ.get('HOME') # see def error(*args, **kwargs): print(*args, file=sys.stderr, **kwargs) try: import mtanalyze except ModuleNotFoundError as ex: # tryMTA = os.path.join(profile, "git", "mtanalyze") tryMTA = os.path.abspath(os.path.join("..", "mtanalyze")) if os.path.isdir(tryMTA): sys.path.append(tryMTA) import mtanalyze else: error("") error("You must install mtanalyze alongside") error("EnlivenMinetest such that ../mtanalize/mtanalize exists") error("such as via:") error(" git clone https://github.com/poikilos/mtanalyze {}" "".format(tryMTA)) error("") # raise tryMTA exit(1) # from mtanalyze import profile_path gamespec = {} gamespec['remove_mods'] = [ "coderblocks", # includes lmb blocks; no recipes "facade", # no recipes "placecraft", # interferes with eating "more_chests", # See https://github.com/poikilos/EnlivenMinetest/issues/446 "emeralds", # See https://github.com/poikilos/EnlivenMinetest/issues/497 "give_initial_stuff", # or make it configurable (It only uses a give_initial_stuff boolean, no configurable item list) ] myDir = os.path.dirname(os.path.abspath(__file__)) mods_stopgap = os.path.join(myDir, "patches", "mods-stopgap") if not os.path.isdir(mods_stopgap): error("Error: \"{}\" is missing.".format(mods_stopgap)) exit(1) gamespec['local_mods_paths'] = [] gamespec['local_mods_paths'].append(mods_stopgap) # NOTE: get a git repo's origin via: git remote show origin def getSGPath(stopgap_mod_name): return os.path.join(mods_stopgap, stopgap_mod_name) gamespec['add_mods'] = [ # {'repo':"https://github.com/poikilos/homedecor_ua"}, {'src_path': getSGPath("animal_materials_legacy")}, {'repo':"https://github.com/minetest-mods/ccompass.git"}, {'repo':"https://github.com/octacian/chat3.git"}, {'repo':"https://github.com/poikilos/compassgps.git"}, {'src_path': getSGPath("elk_legacy")}, {'repo':"https://github.com/MinetestForFun/fishing.git"}, {'src_path': getSGPath("glooptest_missing")}, {'repo':"https://github.com/minetest-mods/item_drop.git"}, {'repo':"https://github.com/poikilos/metatools.git"}, {'src_path': getSGPath("nftools_legacy")}, {'src_path': getSGPath("glooptest_missing")}, {'repo':"https://github.com/poikilos/slimenodes.git"}, {'repo':"https://github.com/BenjieFiftysix/sponge.git"}, {'repo':"https://github.com/poikilos/throwing.git"}, # Can utilize toolranks, toolranks_extras, wielded_light {'repo':"https://github.com/poikilos/throwing_arrows.git"}, # Can utilize mesecons, mesecons_button {'repo':"https://gitlab.com/VanessaE/biome_lib.git"}, { 'repo': "https://github.com/Poikilos/vines.git", 'branch': "Bucket_Game", # git clone --branch }, {"https://github.com/MinetestForFun/unified_inventory"}, ] ''' # Items with no URL below are from EnlivenMinetest # - [x] Ensure everything is in gamespec['add_mods'] minimum_live_server_based_on_bucket_game_200527 = [ {'name': 'animal_materials_legacy'}, {'name': 'ccompass', 'repo': "https://github.com/minetest-mods/ccompass"}, # Remove this one or point to world-specific spawn area via settings? It is a regular spawn-pointing compass by default {'name': 'chat3', 'repo': "https://github.com/octacian/chat3"}, # Doesn't seem to have any effect {'name': 'compassgps', 'repo': "https://github.com/poikilos/compassgps"}, {'name': 'elk_legacy'}, {'name': 'fishing', 'repo': "https://github.com/MinetestForFun/fishing"}, {'name': 'glooptest_missing'}, # {'name': 'ircpack', 'repo': ""}, # ONLY for servers! # {'name': 'item_drop', 'repo': ""}, # In bucket_game now (but see mt_conf_by_mod['item_drop'] for settings) {'name': 'metatools', 'repo': "https://github.com/poikilos/metatools"}, {'name': 'nftools_legacy'}, {'name': 'slimenodes', 'repo': "https://github.com/poikilos/slimenodes"}, {'name': 'sponge', 'repo': "https://github.com/BenjieFiftysix/sponge"}, # In bucket_game but only in coderblocks {'name': 'throwing', 'repo': "https://github.com/poikilos/throwing"}, {'name': 'throwing_arrows', 'repo': "https://github.com/poikilos/throwing_arrows"}, ] ''' ''' Remove server_only_mods from the client and packaged copies of ENLIVEN. ''' server_only_mods = [ 'ircpack', 'chat3', ] ''' mt_conf_by_mod settings should be placed in minetest.conf such as /opt/minebest/mtworlds/center/ENLIVEN/minetest.conf but for now just use - patches/subgame/minetest.conf To define the game. If minebest is present, combine minetest.conf and minetest.server-example.conf but maybe make an alternate version with stuff that isn't in world.conf. For other conf settings: - patches/subgame/minetest.server-example.conf goes in the server only. - Place the result in the game directory such as will result in /opt/minebest/mtworlds/center/ENLIVEN/minetest.conf - patches/subgame/minetest.client-example.conf goes in clients only. ''' mt_conf_by_mod = { 'item_drop': { 'item_drop.pickup_radius': "1.425", }, 'throwing_arrows': { 'throwing.enable_arrow', "true", }, } why = {} why_not = {} why_not["https://github.com/FaceDeer/vines.git"] = ''' ''' why["https://github.com/MinetestForFun/unified_inventory"] = ''' This fork makes a "nicer interface". The fork hasn't been tested yet. ''' why["https://github.com/poikilos/vines.git"] = ''' This Poikilos fork (The Bucket_Game branch) adds support for Bucket_Game jungle node names which are in a standard naming format (like other trees are). > I've finally done it, I've split this mod in twain. The new > stand-alone ropes mod has no dependency on biome_lib and no vine > content, though its crafting recipes remain compatible with the vines > produced by this mod. > > My fork of this vines mod has had the rope-related content removed > from it, leaving it as just a vines mod. Note that I haven't tested > it extensively - I have to admit, I've mainly been in this for the > ropes. :) I'll do what I can to maintain it, though, if anyone has > bug reports or requests. > > I've added a node upgrade function to the new ropes mod that will > convert the ropes from both my fork of the vines mod and the original > version of the vines mod by bas080 to the new ropes mod's ropes. So > if you wish to upgrade an existing world it should work. - FaceDeer on [[Mod] Vines and Rope [2.3] [vines]] (https://forums.minetest.org/viewtopic.php?f=11&t=2344&start=50 &sid=bf15c996963e891cd3f2460c2525044a) Note that vines requires: default biome_lib moretrees? doc? intllib? mobs? creatures? ''' gamespec['disable_mobs'] = [ "old_lady", ] warnings = ''' WARNINGS: (Bucket_Game 200527) - The "rope" required for making a fishing rod has no recipe! See ''' def main(): print(warnings) raise NotImplementedError("pyenliven build") if __name__ == "__main__": main()