You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
204 lines
7.3 KiB
204 lines
7.3 KiB
#!/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 <https://stackoverflow.com/questions/5574702/how-to-print-to-stderr-in-python>
|
|
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 <url> --branch <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 <https://github.com/poikilos/EnlivenMinetest/issues/444>
|
|
'''
|
|
|
|
def main():
|
|
|
|
print(warnings)
|
|
raise NotImplementedError("pyenliven build")
|
|
|
|
if __name__ == "__main__":
|
|
main()
|
|
|