Material system data is JSON
- Single language for the user across all MMDLib using mods
- Meta-entries for requirements
- Entries can point to classpaths
Registration via IMC
val planks as IIngredient[] = [ <minecraft:planks>, <minecraft:planks:1>, <minecraft:planks:2>, <minecraft:planks:3>, <minecraft:planks:4>, <minecraft:planks:5> ]; | |
val logs as IIngredient[] = [ <minecraft:log>, <minecraft:log:1>, <minecraft:log:2>, <minecraft:log:3>, <minecraft:log2>, <minecraft:log2:1> ]; | |
val axes as IIngredient[] = [ <minecraft:wooden_axe>, <minecraft:stone_axe>, <minecraft:golden_axe>, <minecraft:iron_axe>, <minecraft:diamond_axe> ]; | |
val amount as int[] = [ 1, 1, 1, 2, 3 ]; | |
val wood_names as string[] = [ "oak", "spruce", "birch", "jungle", "acacia", "dark_oak" ]; | |
val axe_names as string[] = [ "primitive", "primitive", "primitive", "ordinary", "advanced" ]; | |
for i, item in planks { | |
recipes.remove(item*4); | |
for x, axe in axes { | |
recipes.addShapeless( wood_names[i]+"_planks_with_"+axe_names[x]+"_axe", item*amount[x], [ logs[i], axe.anyDamage().transformDamage ]); |
<tconstruct:cast> -- blank cast | |
<tconstruct:cast>.withTag({PartType: "tconstruct:binding"}) | |
<tconstruct:cast>.withTag({PartType: "tconstruct:arrow_shaft"}) | |
<tconstruct:cast>.withTag({PartType: "tconstruct:arrow_head"}) | |
<tconstruct:cast>.withTag({PartType: "tconstruct:tough_tool_rod"}) | |
<tconstruct:cast>.withTag({PartType: "tconstruct:hand_guard"}) | |
<tconstruct:cast>.withTag({PartType: "tconstruct:pan_head"}) | |
<tconstruct:cast>.withTag({PartType: "tconstruct:sharpening_kit"}) | |
<tconstruct:cast>.withTag({PartType: "tconstruct:large_sword_blade"}) | |
<tconstruct:cast>.withTag({PartType: "tconstruct:axe_head"}) |
make[1]: Entering directory '/home/madman/cross-win/mxe' | |
uname -a | |
Linux devwolf2 4.19.0-6-amd64 #1 SMP Debian 4.19.67-2 (2019-08-28) x86_64 GNU/Linux | |
git log --pretty=tformat:"%H - %s [%ar] [%d]" -1 | |
08544fd3f2d06c25cf9879edf4dde08ace00b1d8 - fluisynth: add mman-win32 dependency [2 days ago] [ (HEAD -> master, origin/master, origin/HEAD)] | |
lsb_release -a 2>/dev/null || sw_vers 2>/dev/null || true | |
Distributor ID: Debian | |
Description: Debian GNU/Linux 10 (buster) | |
Release: 10 | |
Codename: buster |
make[1]: Entering directory '/home/madman/cross-win/mxe' | |
uname -a | |
Linux devwolf2 4.19.0-6-amd64 #1 SMP Debian 4.19.67-2 (2019-08-28) x86_64 GNU/Linux | |
git log --pretty=tformat:"%H - %s [%ar] [%d]" -1 | |
08544fd3f2d06c25cf9879edf4dde08ace00b1d8 - fluisynth: add mman-win32 dependency [2 days ago] [ (HEAD -> master, origin/master, origin/HEAD)] | |
lsb_release -a 2>/dev/null || sw_vers 2>/dev/null || true | |
Distributor ID: Debian | |
Description: Debian GNU/Linux 10 (buster) | |
Release: 10 | |
Codename: buster |
make[1]: Entering directory '/home/madman/cross-win/mxe' | |
uname -a | |
Linux devwolf2 4.9.0-9-amd64 #1 SMP Debian 4.9.168-1+deb9u3 (2019-06-16) x86_64 GNU/Linux | |
git log --pretty=tformat:"%H - %s [%ar] [%d]" -1 | |
aaa5a1be9315f89ed9fe7331b19cb517ed160ae7 - cmake: add note to test thoroughly after updates [5 days ago] [ (HEAD -> master, origin/master, origin/HEAD)] | |
lsb_release -a 2>/dev/null || sw_vers 2>/dev/null || true | |
Distributor ID: Debian | |
Description: Debian GNU/Linux 9.11 (stretch) | |
Release: 9.11 | |
Codename: stretch |
/* | |
* Copyright (c) 2019 Daniel "DShadowWolf" Hazelton | |
* GNU GPL v2 only | |
* | |
* build: gcc -o convert-lang-files convert-lang-files.c -lpcre | |
* use: convert-lang-files [input file] > [output file] [2> [logfile]] | |
* "[input file]" and "[output file]" are required, the "2>" bit is redirecting possible error output to a log-file | |
* | |
* NOTE: This will break if it finds a line that does not match <key>=<value> or #<comment> in the file outside of blank lines | |
*/ |
The following is an example of a valid config file - modified to include comments where the original of this (used in the test suite) does not.
// top level section
/*
* The original formulation of the concept only allowed sections at the top level
* After a bit of discussion, it was decided that this was a bit limiting.
*/
section {
# key to test operation and list parsing
{ | |
"version": "2.0", | |
"presets": { | |
"dimensions": { | |
"all-overworld": { "excludes": [] }, | |
"overworld": { "includes": [ 0 ] }, | |
"nether": { "includes": [ -1 ] }, | |
"end": { "includes": [1] } | |
}, | |
"biomes": { |