:: mccap.bat @echo off goto Start ::Notes Area :: bat_filename "blockname" "a/s/p/sand/sandstone" :Start if ["%~1"]==[""] goto End if ["%~2"]==[""] goto End set NAMES=%~1 set SIDES=%~2 if "%SIDES%"=="sand" ( goto Sand) else ( goto Block) :End exit /b :Sand call ssw "%NAMES%" "sand" call mcaid "%NAMES%_sand" "a" call :Sandstonemodel goto End :Block if "%SIDES%"=="sandstone" ( goto Sandstonemodel) call ssw "%NAMES%" "%SIDES%" call mcaid "%NAMES%" "%SIDES%" goto End :Sandstonemodel call ssw "%NAMES%" "sandstone" call mcaid "%NAMES%_sand_stone" "s" call mcaid "%NAMES%_cut_sand_stone" "p" call mcaid "%NAMES%_smooth_sand_stone" "a" call mcaid "%NAMES%_chiseled_sand_stone" "s" exit /b ::------- :: ssw.bat @echo off :: Version 2.0.3 :: Minor typo in early call, resulting in wrong reciepe for slabs :: Version 2.0.1 :: minor fixes :: Version 2 :: can handle spaces in folder/path names [for temp folder holding the output files only. folder structure with spaces is not supported by minecraft datapacks/mods] :: All variables are stored in the ssw.bat file -No Quotes / spaces supported in file/block name :: slabs / stairs / walls Reciepe creator (stone cutter & table crafting) :: Sand blocks & Sandstone blocks get extra done :: Sand & sandstone entered with name without the suffix (grey_cracked_sand_stone would be grey_cracked sandstone // purple_sand would be entered as purple sand) :: creates crafting for each of the sandstones for the others in the stone cutter :: assumes each block given will have walls/slabs/stairs of it :: separate batch files for compatibility & cross usage in a folder that is in the environmental path variables. :: -- Call can link to a full path where files kept w/ environmental path variable use :: --- :: updates :: added support for folders with spaces (note, folder structure with spaces is not supported by minecraft datapacks/mods) :: mcaid(furn/cfire/stoncut/table) -- support for path spaces pass through (note, folder structure with spaces is not supported by minecraft datapacks/mods) :: mcaid(furn/cfire/stoncut/table) -- tweaked to signal start of file (to overwrite old files of the same name & prevent corrupted files) :: mcaid(furn/cfire/stoncut/table)/filwrite -- introduced exit /b to close the files if the first argument is missing. (attempting to prevent accidental exicution & errors) :: filwrite -- organized & fat cutout (28 to 9 lines w/ exit condition, & new switch) :: filwrite -- new switch to indicate to overwrite file of the same name or append to it. :: ssw -- formating & notes used to keep human readable & allow Understanding of what is being used where goto Start :primevar :: do not use Quote marks in mod or paths set MOD=delbase set BASEFOLDER=D:\Minecraft-aidfiles\recipes\ set STONEC=%BASEFOLDER%stone-cutter\ set TABLEC=%BASEFOLDER%table\ set CAMPC=%BASEFOLDER%campfire\ set FURNC=%BASEFOLDER%furnance\ set CCSSTONE=%CAMPC%sandstone\ set FCGLASS=%FURNC%glass\ set SCSTAIR=%STONEC%stair\ set SCWALL=%STONEC%wall\ set SCSLAB=%STONEC%slab\ set TCSTAIR=%TABLEC%stair\ set TCWALL=%TABLEC%wall\ set TCSLAB=%TABLEC%slab\ :: sandstone/sand value setting, do not touch set SANDSTONE=no set SAND=no exit /b :Start call :primevar if ["%~1"]==[""] goto End set NAMES=%~1 if ["%~2"]==["sandstone"] set SANDSTONE=yes if ["%~2"]==["sand"] set SAND=yes goto Reciepe :Reciepe if %SAND%==yes ( call :reciepewrite %NAMES%_sand sandy %NAMES% goto End ) if %SANDSTONE%==yes ( call :reciepewrite %NAMES%_sand_stone sandstone %NAMES% call :reciepewrite %NAMES%_cut_sand_stone off off call :reciepewrite %NAMES%_chiseled_sand_stone off off call :reciepewrite %NAMES%_smooth_sand_stone off off goto End ) call :reciepewrite %NAMES% off off :End exit /b :reciepewrite set twmess=%1 set temptwmess=%3 set alt=%2 if ["%alt%"]==["sandstone"] ( :: stonecutter swapping for sandstones call :stonecut "%STONEC%" %temptwmess%_cut_sand_stone twist %temptwmess%_sand_stone call :stonecut "%STONEC%" %temptwmess%_chiseled_sand_stone twist %temptwmess%_sand_stone call :stonecut "%STONEC%" %temptwmess%_smooth_sand_stone twist %temptwmess%_sand_stone call :stonecut "%STONEC%" %temptwmess%_sand_stone twist %temptwmess%_cut_sand_stone call :stonecut "%STONEC%" %temptwmess%_chiseled_sand_stone twist %temptwmess%_cut_sand_stone call :stonecut "%STONEC%" %temptwmess%_smooth_sand_stone twist %temptwmess%_cut_sand_stone call :stonecut "%STONEC%" %temptwmess%_sand_stone twist %temptwmess%_chiseled_sand_stone call :stonecut "%STONEC%" %temptwmess%_cut_sand_stone twist %temptwmess%_chiseled_sand_stone call :stonecut "%STONEC%" %temptwmess%_smooth_sand_stone twist %temptwmess%_chiseled_sand_stone call :stonecut "%STONEC%" %temptwmess%_sand_stone twist %temptwmess%_smooth_sand_stone call :stonecut "%STONEC%" %temptwmess%_cut_sand_stone twist %temptwmess%_smooth_sand_stone call :stonecut "%STONEC%" %temptwmess%_chiseled_sand_stone twist %temptwmess%_smooth_sand_stone :: Table Crafting for the sandstones call :table "%TABLEC%" %temptwmess%_sand square %temptwmess%_sand_stone 4 call :table "%TABLEC%" %temptwmess%_sand_stone square %temptwmess%_cut_sand_stone 4 call :table "%TABLEC%" %temptwmess%_cut_sand_stone square %temptwmess%_chiseled_sand_stone 4 :: Campe fire crafting for sand version to smoothstone call :campfire "%CCSSTONE%" %temptwmess%_sand 300 0.35 %temptwmess%_smooth_sand_stone ) if ["%alt%"]==["sandy"] call :furn %FCGLASS% %temptwmess%_sand 200 0.1 %temptwmess%_glass call :stonecut "%SCSTAIR%" %twmess% stair %twmess%_stair call :stonecut "%SCWALL%" %twmess% wall %twmess%_wall call :stonecut "%SCSLAB%" %twmess% slab %twmess%_slab call :table "%TCSTAIR%" %twmess% stair %twmess%_stair 4 call :table "%TCWALL%" %twmess% wall %twmess%_wall 6 call :table "%TCSLAB%" %twmess% slab %twmess%_slab 6 exit /b :stonecut :: arguments(in number order) - Path / Name1 / Name2 / Type call mcaidstoncut %1 %2 %4 %3 %MOD% exit /b :table :: arguments(in number order) - Path / Name1 / Type / Name2 / Craft_Number call mcaidtable %3 %5 %2 %4 %1 %MOD% exit /b :campfire :: arguments(in number order) - Path / Name1 / Cook_time / Exp / Name2 call mcaidcfire %1 %3 %4 %2 %5 %MOD% exit /b :furn :: arguments(in number order) - Path / Name1 / Cook_time / EXP / Name 2 call mcaidfurn %1 %3 %4 %2 %5 %MOD% exit /b ::--- ::mcaid.bat @echo off :: Version 3.0 :: Updated to MC 1.18.1 standardization :: Put a reliance on a secondary file to minimize the amount 'echo'/'write' call locations :: Split if Else statements that used a goto (does not work as intended inline with && ) :: Two locations using echo command (under assumption the file is there & accessible) :: -- The = in the string w/o spaces used in Axis for Slabs & Pillars incorrectly passes forward :: -- Overrides used sparingly :: Slimmed down notes, cutting out redundant fixes :: Version 2.5 :: Version 2.4 :: Version 2.2 :: version 2.1.5 :: version 2.1 :: version 2.0 :: includes fixed array calls, typos, slab loot table missing lines added (was missing 3) :: Added command line entry of blocks. :: creates JSON files for 'Blockstate', 'Block', 'item'(For block), & 'loot_table' :: Input Block (1 texture blocks, like sand // 3 textured blocks like Sand stone{top,side,bottom}) or Pillar (two textured, & is meant fora pillar block, like basalt) :: textures not supplied, just named *wink* X} :: Intended for mods w/ an ability register blocks (forge/etc) :: Obviously set environmental paths correctly, & Your ModID :: --- :: batfilename blockname [a/p/s] [n] :: (stick to minecraft convention.. red_sand, polished_smooth_rock, etc. etc.) :: a - block with 1 texture (sand) :: p - pillar block (directional x, y, z positions) :: s - block with 3 textures (like sandstone, top/side/bottom) :: Only supports 1 base block at a time :: n - for it to cycle again, and prompt for a new block name & type (leave blank for it to close right after it's done) :: --- :: Simplification of json creation for block, stair, & slab variants. :: Set for Blocks :: Uses blockname_top, blockname_side, blockname_bottom for blocks with different textures :: Uses blockname_top, blockname_side for pillar blocks. (texture) goto Start :RE2 if ["%3"]==[""] ( goto End ) else ( set T=%3 ) if %T%==n (goto Nextcycle) if %T%==N (goto Nextcycle) :End exit /b :Start set MOD=delbase set BASEFOLDER=D:\Minecraft-aidfiles\models\ set BLOCKS=%BASEFOLDER%blockstates\ set BLOCK=%BASEFOLDER%models\block\ set SLAB=%BLOCK%slab\ set STAIR=%BLOCK%stair\ set PILLA=%BLOCK%pillar\ set ITEM=%BASEFOLDER%models\item\ set DROP=%BASEFOLDER%loot_tables\blocks\ if NOT EXIST %BLOCKS% ( mkdir %BLOCKS% ) if NOT EXIST %SLAB% ( mkdir %SLAB% ) if NOT EXIST %STAIR% ( mkdir %STAIR% ) if NOT EXIST %PILLA% ( mkdir %PILLA% ) if NOT EXIST %ITEM% ( mkdir %ITEM% ) if NOT EXIST %DROP% ( mkdir %DROP% ) set FACE[0]=east set FACE[1]=north set FACE[2]=south set FACE[3]=west set HALF[0]=bottom set HALF[1]=top set SHAPE[0]=inner_left set SHAPE[1]=inner_right set SHAPE[2]=outer_left set SHAPE[3]=outer_right set SHAPE[4]=straight if NOT ["%~1"]==[""] ( set NAM=%~1 if NOT ["%~2"]==[""] ( set ALLSIDED=%~2 goto Aurgument ) ) :Nextcycle set /p NAM= "Base Block Name: " :Sid echo Enter ( A ) if block uses the same texture on all sides echo Enter ( S ) if it uses a Top, side, & bottom texture that are different echo Enter ( P ) for Pillars. Logs & Basalt are pillar blocks echo Enter ( E ) to exit. echo Provides Basic loot table only. (It breaks, it drops. nothing more) set /p ALLSIDED= "Type of block: " :Aurgument if %ALLSIDED%==A ( goto Setallsided ) if %ALLSIDED%==a ( goto Setallsided ) if %ALLSIDED%==S ( goto Topped ) if %ALLSIDED%==s ( goto Topped ) if %ALLSIDED%==P ( goto Pillar ) if %ALLSIDED%==p ( goto Pillar ) if %ALLSIDED%==E ( goto End ) if %ALLSIDED%==e ( goto End ) echo "Valid Entries are ( A, a, S, s, E, e ), or Exit (E)" goto Sid :Setallsided set ALLSIDED=ALL goto Blockstate :Pillar set ALLSIDED=PILL set AXIS=x goto Blockstate :Topped set ALLSIDED=TOPP :Blockstate if %ALLSIDED%==ALL ( set TopSide=%NAM% set SideSide=%NAM% set BotSide=%NAM% ) if %ALLSIDED%==PILL ( set TopSide=%NAM%_top set SideSide=%NAM%_side set BotSide=%NAM%_top ) if %ALLSIDED%==TOPP ( set TopSide=%NAM%_top set SideSide=%NAM%_side set BotSide=%NAM%_bottom ) ::Blockstates ::Base Block call filwrite "%BLOCKS%" "{" "%NAM%" "json" "new" call filwrite "%BLOCKS%" " "variants": {" "%NAM%" "json" if %ALLSIDED%==PILL ( goto Blockstatepill ) call filwrite "%BLOCKS%" " "": {" "%NAM%" "json" call filwrite "%BLOCKS%" " "model": "%MOD%:block/%NAM%"" "%NAM%" "json" call filwrite "%BLOCKS%" " }" "%NAM%" "json" goto Axisout :Blockstatepill echo "axis=%AXIS%": { >> %BLOCKS%%NAM%.json if %AXIS%==y ( call filwrite "%BLOCKS%" " "model": "%MOD%:block/pillar/%NAM%"" "%NAM%" "json") else ( call filwrite "%BLOCKS%" " "model": "%MOD%:block/pillar/%NAM%"," "%NAM%" "json") if %AXIS%==x ( call filwrite "%BLOCKS%" " "x": 90," "%NAM%" "json") if %AXIS%==z ( call filwrite "%BLOCKS%" " "x": 90" "%NAM%" "json") if %AXIS%==x ( call filwrite "%BLOCKS%" " "y": 90" "%NAM%" "json") if %AXIS%==z ( call filwrite "%BLOCKS%" " }" "%NAM%" "json" goto Axisout ) else ( call filwrite "%BLOCKS%" " }," "%NAM%" "json" ) if %AXIS%==x ( set AXIS=y) else ( set AXIS=z) goto Blockstatepill :Axisout call filwrite "%BLOCKS%" " }" "%NAM%" "json" call filwrite "%BLOCKS%" "}" "%NAM%" "json" :: Slab version call filwrite "%BLOCKS%" "{" "%NAM%_slab" "json" "new" set AXIS=bottom call filwrite "%BLOCKS%" " "variants": {" "%NAM%_slab" "json" :Slabvar echo "type=%AXIS%": { >> %BLOCKS%%NAM%_slab.json if %AXIS%==bottom ( call filwrite "%BLOCKS%" ""model": "%MOD%:block/slab/%NAM%_slab"" "%NAM%_slab" "json") else ( call filwrite "%BLOCKS%" ""model": "%MOD%:block/slab/%NAM%_slab_%AXIS%"" "%NAM%_slab" "json") if %AXIS%==top ( call filwrite "%BLOCKS%" " }" "%NAM%_slab" "json" goto Slabout ) else ( call filwrite "%BLOCKS%" " }," "%NAM%_slab" "json" ) if %AXIS%==bottom ( set AXIS=double) else ( set AXIS=top) goto Slabvar :Slabout call filwrite "%BLOCKS%" " }" "%NAM%_slab" "json" call filwrite "%BLOCKS%" "}" "%NAM%_slab" "json" :: Stair blocks set /a OUTER=0 set /a MID=0 set /a INNER=0 call filwrite "%BLOCKS%" "{" "%NAM%_stair" "json" "new" call filwrite "%BLOCKS%" " "variants": {" "%NAM%_stair" "json" goto Stairloop :Stairloop set /a YY=0 set uv=no :: checking using Shape array :: Inner Left if %INNER% EQU 0 ( if %MID% EQU 0 ( if %OUTER% EQU 0 ( set /a YY=270 ) if %OUTER% EQU 1 ( set /a YY=180 ) if %OUTER% EQU 3 ( set /a YY=90 ) ) else ( if %OUTER% EQU 1 ( set /a YY=270 ) if %OUTER% EQU 2 ( set /a YY=90 ) if %OUTER% EQU 3 ( set /a YY=180 ) ) ) ::Inner Right if %INNER% EQU 1 ( if %MID% EQU 0 ( if %OUTER% EQU 1 ( set /a YY=270 ) if %OUTER% EQU 2 ( set /a YY=90 ) if %OUTER% EQU 3 ( set /a YY=180 ) ) else ( if %OUTER% EQU 0 ( set /a YY=90 ) if %OUTER% EQU 2 ( set /a YY=180 ) if %OUTER% EQU 3 ( set /a YY=270 ) ) ) ::Outer Left if %INNER% EQU 2 ( if %MID% EQU 0 ( if %OUTER% EQU 0 ( set /a YY=270 ) if %OUTER% EQU 1 ( set /a YY=180 ) if %OUTER% EQU 3 ( set /a YY=90 ) ) else ( if %OUTER% EQU 1 ( set /a YY=270 ) if %OUTER% EQU 2 ( set /a YY=90 ) if %OUTER% EQU 3 ( set /a YY=180 ) ) ) ::Outer Right if %INNER% EQU 3 ( if %MID% EQU 0 ( if %OUTER% EQU 1 ( set /a YY=270 ) if %OUTER% EQU 2 ( set /a YY=90 ) if %OUTER% EQU 3 ( set /a YY=180 ) ) else ( if %OUTER% EQU 0 ( set /a YY=90 ) if %OUTER% EQU 2 ( set /a YY=180 ) if %OUTER% EQU 3 ( set /a YY=270 ) ) ) if %INNER% EQU 4 ( if %OUTER% EQU 1 ( set /a YY=270 ) if %OUTER% EQU 2 ( set /a YY=90 ) if %OUTER% EQU 3 ( set /a YY=180 ) ) :: Call Echo used to properly call the array value echo "facing=%%FACE[%OUTER%]%%,half=%%HALF[%MID%]%%,shape=%%SHAPE[%INNER%]%%": { >> %BLOCKS%%NAM%_stair.json if %MID% EQU 1 ( set uv=yes) if %YY% GTR 10 ( set uv=yes) if %INNER% LSS 2 ( if %uv%==yes ( set line= "model": "%MOD%:block/stair/%NAM%_stair_inner",) else ( set line= "model": "%MOD%:block/stair/%NAM%_stair_inner") ) else ( if %INNER% LSS 4 ( if %uv%==yes ( set line= "model": "%MOD%:block/stair/%NAM%_stair_outer",) else ( set line= "model": "%MOD%:block/stair/%NAM%_stair_outer") ) else ( if %uv%==yes ( set line= "model": "%MOD%:block/stair/%NAM%_stair",) else ( set line= "model": "%MOD%:block/stair/%NAM%_stair") ) ) call filwrite "%BLOCKS%" "%line%" "%NAM%_stair" "json" if %MID% EQU 1 ( call filwrite "%BLOCKS%" " "x": 180," "%NAM%_stair" "json") if %YY% GTR 10 ( call filwrite "%BLOCKS%" " "y": %YY%," "%NAM%_stair" "json") if %uv%==yes ( call filwrite "%BLOCKS%" " "uvlock": true" "%NAM%_stair" "json") set /a THREE=%OUTER% + %MID% + %INNER% if %THREE% EQU 8 ( call filwrite "%BLOCKS%" " }" "%NAM%_stair" "json" call filwrite "%BLOCKS%" " }" "%NAM%_stair" "json" call filwrite "%BLOCKS%" "}" "%NAM%_stair" "json" ) else ( call filwrite "%BLOCKS%" " }," "%NAM%_stair" "json" echo }, >> %BLOCKS%%NAM%_stair.json if %INNER% LSS 4 ( set /a INNER=%INNER% + 1 ) else ( set /a INNER=0 if %MID% EQU 0 ( set /a MID=1 ) else ( set /a MID=0 if %OUTER% LSS 3 ( set /a OUTER=%OUTER% + 1 ) else ( echo Failure in logic, this error shouldn't show up, ) ) ) goto Stairloop ) ::Block models :: Check for Pillar first if %ALLSIDED%==PILL ( goto Pilstart ) else ( goto CubeStart ) set top :Pilstart call filwrite "%PILLA%" "{" "%NAM%" "json" "new" call filwrite "%PILLA%" " "parent": "minecraft:block/cube_column"," "%NAM%" "json" call filwrite "%PILLA%" " "textures": {" "%NAM%" "json" call filwrite "%PILLA%" " "end": "%MOD%:block/%TopSide%"," "%NAM%" "json" call filwrite "%PILLA%" " "side": "%MOD%:block/%SideSide%"" "%NAM%" "json" call filwrite "%PILLA%" " }" "%NAM%" "json" call filwrite "%PILLA%" "}" "%NAM%" "json" goto Slabstart ::Cubes :CubeStart call filwrite "%BLOCK%" "{" "%NAM%" "json" "new" if %ALLSIDED%==ALL ( call filwrite "%BLOCK%" " "parent": "minecraft:block/cube_all"," "%NAM%" "json" ) else ( call filwrite "%BLOCK%" " "parent": "minecraft:block/cube_bottom_top"," "%NAM%" "json" ) call filwrite "%BLOCK%" " "textures": {" "%NAM%" "json" if %ALLSIDED%==ALL ( call filwrite "%BLOCK%" " "all": "%MOD%:block/%NAM%"" "%NAM%" "json" ) else ( call filwrite "%BLOCK%" " "top": "%MOD%:block/%TopSide%"," "%NAM%" "json" call filwrite "%BLOCK%" " "bottom": "%MOD%:block/%BotSide%"," "%NAM%" "json" call filwrite "%BLOCK%" " "side": "%MOD%:block/%SideSide%"" "%NAM%" "json" ) call filwrite "%BLOCK%" " }" "%NAM%" "json" call filwrite "%BLOCK%" "}" "%NAM%" "json" ::Slabs :Slabstart call :Slabfiles "{" "all" "new" call filwrite "%SLAB%" " "parent": "minecraft:block/slab"," "%NAM%_slab" "json" if %ALLSIDED%==TOPP ( call filwrite "%SLAB%" " "parent": "minecraft:block/cube_bottom_top"," "%NAM%_slab_double" "json" ) else ( call filwrite "%SLAB%" " "parent": "minecraft:block/cube_column"," "%NAM%_slab_double" "json" ) call filwrite "%SLAB%" " "parent": "minecraft:block/slab_top"," "%NAM%_slab_top" "json" call :Slabfiles " "textures": {" all if %ALLSIDED%==TOPP ( call :Slabfiles " "bottom": "%MOD%:block/%BotSide%"," all call :Slabfiles " "top": "%MOD%:block/%TopSide%"," all ) else ( call :Slabfiles " "bottom": "%MOD%:block/%BotSide%"," call :Slabfiles " "top": "%MOD%:block/%TopSide%"," call filwrite "%SLAB%" " "end": "%MOD%:block/%TopSide%"," "%NAM%_slab_double" "json" ) call :Slabfiles " "side": "%MOD%:block/%SideSide%"" "all" call :Slabfiles " }" "all" call :Slabfiles "}" "all" goto Stairs :Slabfiles set Bark=%~1 if "%~3"=="new" (set SLFLAG="new") else (set SLFLAG="") call filwrite "%SLAB%" "%Bark%" "%NAM%_slab" "json" %SLFLAG% if "%~2"=="all" call filwrite "%SLAB%" "%Bark%" "%NAM%_slab_double" "json" %SLFLAG% call filwrite "%SLAB%" "%Bark%" "%NAM%_slab_top" "json" %SLFLAG% exit /b :Stairs set BOTT=%NAM% set TTOPP=%NAM% set TSIDE=%NAM% call :Stairfiles { "new" call :Stairfiles block call :Stairfiles " "textures": {" call :Stairfiles " "bottom": "%MOD%:block/%BotSide%"," call :Stairfiles " "top": "%MOD%:block/%TopSide%"," call :Stairfiles " "side": "%MOD%:block/%SideSide%"" call :Stairfiles " }" call :Stairfiles } goto Bitem :Stairfiles set PARE=%~1 if "%~2"=="new" (set SFLAG="new") else (set SFLAG="") if "%PARE%"=="block" ( call filwrite "%STAIR%" " "parent": "minecraft:block/stairs"," "%NAM%_stair" "json" call filwrite "%STAIR%" " "parent": "minecraft:block/inner_stairs"," "%NAM%_stair_inner" "json" call filwrite "%STAIR%" " "parent": "minecraft:block/outer_stairs"," "%NAM%_stair_outer" "json" ) else ( call filwrite "%STAIR%" "%PARE%" "%NAM%_stair" "json" %SFLAG% call filwrite "%STAIR%" "%PARE%" "%NAM%_stair_inner" "json" %SFLAG% call filwrite "%STAIR%" "%PARE%" "%NAM%_stair_outer" "json" %SFLAG% ) exit /b :: Item versions of the blocks :Bitem call filwrite "%ITEM%" "{" "%NAM%" "json" "new" call filwrite "%ITEM%" "{" "%NAM%_slab" "json" "new" call filwrite "%ITEM%" "{" "%NAM%_stair" "json" "new" if %ALLSIDED%==PILL ( call filwrite "%ITEM%" " "parent": "%MOD%:block/pillar/%NAM%"" "%NAM%" "json" ) else ( call filwrite "%ITEM%" " "parent":"%MOD%:block/%NAM%"" "%NAM%" "json" ) call filwrite "%ITEM%" " "parent": "%MOD%:block/slab/%NAM%_slab"" "%NAM%_slab" "json" call filwrite "%ITEM%" " "parent": "%MOD%:block/stair/%NAM%_stair"" "%NAM%_stair" "json" call filwrite "%ITEM%" "}" "%NAM%" "json" call filwrite "%ITEM%" "}" "%NAM%_slab" "json" call filwrite "%ITEM%" "}" "%NAM%_stair" "json" ::blockloot call normloot "%DROP%" "%MOD%:%NAM%" "%NAM%" "json" "norm" call normloot "%DROP%" "%MOD%:%NAM%_stair" "%NAM%_stair" "json" "norm" call normloot "%DROP%" "%MOD%:%NAM%_slab" "%NAM%_slab" "json" "slab" goto RE2 ::--- ::mcaidcfire.bat @echo off if ["%1"]==[""] goto End set oext=json set temname=%4 set temnametwo=%5 set tpath=%~1 set ctime=%2 set exp=%3 set tmod=%6 call filwrite "%tpath%" { %temnametwo% %oext% new call filwrite "%tpath%" " "type": "minecraft:campfire_cooking"," %temnametwo% %oext% call filwrite "%tpath%" " "ingredient": {" %temnametwo% %oext% call filwrite "%tpath%" " "item": "%tmod%:%temname%"" %temnametwo% %oext% call filwrite "%tpath%" " }," %temnametwo% %oext% call filwrite "%tpath%" " "result": "%tmod%:%temnametwo%"," %temnametwo% %oext% call filwrite "%tpath%" " "experience": %exp%," %temnametwo% %oext% call filwrite "%tpath%" " "cookingtime": %ctime%" %temnametwo% %oext% call filwrite "%tpath%" } %temnametwo% %oext% echo file %tpath%%temnametwo%.%oext% :End exit /b ::---- ::mcaidfurn.bat @echo off if ["%1"]==[""] goto End set oext=json set tpath=%~1 set ctime=%2 set exp=%3 set temnam=%4 set outnam=%5 set tmod=%6 call filwrite "%tpath%" { %outnam% %oext% new call filwrite "%tpath%" " "type": "minecraft:smelting"," %outnam% %oext% call filwrite "%tpath%" " "ingredient": {" %outnam% %oext% call filwrite "%tpath%" " "item": "%tmod%:%temnam%"" %outnam% %oext% call filwrite "%tpath%" " }," %outnam% %oext% call filwrite "%tpath%" " "result": "%tmod%:%outnam%"," %outnam% %oext% call filwrite "%tpath%" " "experience": %exp%," %outnam% %oext% call filwrite "%tpath%" " "cookingtime": %ctime%" %outnam% %oext% call filwrite "%tpath%" } %outnam% %oext% echo file %tpath%%outnam%.%oext% :End exit /b ::---- ::mcaidstoncut.bat @echo off if ["%1"]==[""] goto End set oext=json set tpath=%~1 set tempora=%2 set temporatwo=%3 set temalt=%4 set tmod=%5 set fout=%temporatwo%_from_%tempora% call filwrite "%tpath%" { %fout% %oext% new call filwrite "%tpath%" " "type": "minecraft:stonecutting"," %fout% %oext% call filwrite "%tpath%" " "ingredient": {" %fout% %oext% call filwrite "%tpath%" " "item": "%tmod%:%tempora%"" %fout% %oext% call filwrite "%tpath%" " }," %fout% %oext% call filwrite "%tpath%" " "result": "%tmod%:%temporatwo%"," %fout% %oext% if %temalt%==slab ( call filwrite "%tpath%" " "count": 2" %fout% %oext%) else call filwrite "%tpath%" " "count": 1" %fout% %oext% call filwrite "%tpath%" } %fout% %oext% echo file %tpath%%fout%.%oext% :End exit /b ::---- ::mcaidtable.bat @echo off if ["%1"]==[""] goto End set oext=json set patnum=%~1 set cntnum=%2 set tempora=%3 set temporatwo=%4 set tempath=%~5 set tmod=%6 call filwrite "%tempath%" { %temporatwo% %oext% new call filwrite "%tempath%" " "type": "minecraft:crafting_shaped"," %temporatwo% %oext% :: echo used over call for patterns Consistency of use (double spaces in paterns broke arguments) if ["%patnum%"]==["square"] echo "pattern": [ "yy","yy" ], >> %tpath%%temporatwo%.%oext% if ["%patnum%"]==["stair"] echo "pattern": [ "y ","yy ","yyy" ], >> %tpath%%temporatwo%.%oext% if ["%patnum%"]==["wall"] echo "pattern": [ "yyy","yyy" ], >> %tpath%%temporatwo%.%oext% if ["%patnum%"]==["slab"] echo "pattern": [ "yyy" ], >> %tpath%%temporatwo%.%oext% call filwrite "%tempath%" " "key": {" %temporatwo% %oext% call filwrite "%tempath%" " "y": {" %temporatwo% %oext% call filwrite "%tempath%" " "item": "%tmod%:%tempora%"" %temporatwo% %oext% call filwrite "%tempath%" " }" %temporatwo% %oext% call filwrite "%tempath%" " }," %temporatwo% %oext% call filwrite "%tempath%" " "result":{" %temporatwo% %oext% call filwrite "%tempath%" " "item": "%tmod%:%temporatwo%"," %temporatwo% %oext% call filwrite "%tempath%" " "count": %cntnum%" %temporatwo% %oext% call filwrite "%tempath%" " }" %temporatwo% %oext% call filwrite "%tempath%" } %temporatwo% %oext% echo file %tpath%%temporatwo%.%oext% :End exit /b ::------- ::normloot.bat GOTO Start :End exit /b :Start set tpath=%~1 set titem=%2 set tfilou=%~3 set tfext=%~4 set ttype=%~5 call filwrite "%tpath%" "{" "%tfilou%" "%tfext%" "new" call filwrite "%tpath%" " "type": "minecraft:block"," "%tfilou%" "%tfext%" call filwrite "%tpath%" " "pools": [" "%tfilou%" "%tfext%" call filwrite "%tpath%" " {" "%tfilou%" "%tfext%" call filwrite "%tpath%" " "rolls": 1.0," "%tfilou%" "%tfext%" call filwrite "%tpath%" " "bonus_rolls": 0.0," "%tfilou%" "%tfext%" call filwrite "%tpath%" " "entries": [" "%tfilou%" "%tfext%" call filwrite "%tpath%" " {" "%tfilou%" "%tfext%" call filwrite "%tpath%" " "type": "minecraft:item"," "%tfilou%" "%tfext%" if ["%ttype%"]==["slab"] ( call filwrite "%tpath%" " "functions": [" "%tfilou%" "%tfext%" call filwrite "%tpath%" " {" "%tfilou%" "%tfext%" call filwrite "%tpath%" " "function": "minecraft:set_count"," "%tfilou%" "%tfext%" call filwrite "%tpath%" " "conditions": [" "%tfilou%" "%tfext%" call filwrite "%tpath%" " {" "%tfilou%" "%tfext%" call filwrite "%tpath%" " "condition": "minecraft:block_state_property"," "%tfilou%" "%tfext%" call filwrite "%tpath%" " "block": %titem%," "%tfilou%" "%tfext%" call filwrite "%tpath%" " "properties": {" "%tfilou%" "%tfext%" call filwrite "%tpath%" " "type": "double"" "%tfilou%" "%tfext%" call filwrite "%tpath%" " }" "%tfilou%" "%tfext%" call filwrite "%tpath%" " }" "%tfilou%" "%tfext%" call filwrite "%tpath%" " ]," "%tfilou%" "%tfext%" call filwrite "%tpath%" " "count": 2.0," "%tfilou%" "%tfext%" call filwrite "%tpath%" " "add": false" "%tfilou%" "%tfext%" call filwrite "%tpath%" " }," "%tfilou%" "%tfext%" call :explosion_decay call filwrite "%tpath%" " ]," "%tfilou%" "%tfext%" call filwrite "%tpath%" " "name": %titem%" "%tfilou%" "%tfext%" GOTO fout ) ::Generic Loot_table -- Insert special ones above this call filwrite "%tpath%" " "name": %titem%" "%tfilou%" "%tfext%" call filwrite "%tpath%" " }" "%tfilou%" "%tfext%" call filwrite "%tpath%" " ]," "%tfilou%" "%tfext%" call filwrite "%tpath%" " "conditions": [" "%tfilou%" "%tfext%" call :explosion_decay call filwrite "%tpath%" " ]" "%tfilou%" "%tfext%" :fout call filwrite "%tpath%" " }" "%tfilou%" "%tfext%" call filwrite "%tpath%" " ]" "%tfilou%" "%tfext%" call filwrite "%tpath%" "}" "%tfilou%" "%tfext%" GOTO End :explosion_decay call filwrite "%tpath%" " {" "%tfilou%" "%tfext%" call filwrite "%tpath%" " "condition": "minecraft:survives_explosion"" "%tfilou%" "%tfext%" call filwrite "%tpath%" " }" "%tfilou%" "%tfext%" exit /b