-
Notifications
You must be signed in to change notification settings - Fork 78
CraftTweaker Support
If you are using an older version of the game please refer to the archived versions of this page.
Crops can be modified using the crop manager. To do this you will need to import the following into your script.
import mods.botanypots.ZenCrop;
val crops = <recipetype:botanypots:crop>;
To create a crop you use the create method from the manager. This method will return a ZenCrop value which you can use to do further changes.
// Simple crop entry
// crops.create(id, seedInput, renderBlock, growthTicks, soilCategory);
val goldCrop = crops.create("examplepack:gold", <item:minecraft:gold_nugget>, <blockstate:minecraft:gold_block>, 3000, "dirt");
// Crop with multiple render blocks and multiple soil categories.
// crops.create(id, seedInput, renderBlockArray, growthTicks, soilCategoryArray);
val ironCrop = crops.create("examplepack:iron", <item:minecraft:iron_nugget>, [<blockstate:minecraft:iron_block>, <blockstate:minecraft:iron_ore>], 3000, ["dirt", "nether"]);
This crop will have no drops. You need to add some for the crop to work properly. Information about this is in the next section.
To modify a crop you will need to get a ZenCrop value. This is provided when you create the crop but can also be retrieved using crops.getCrop("cropid");
.
val wheat = crops.getCrop("botanypots:crops/wheat");
// Adds a soil category.
wheat.addCategory("soil_category_name");
// Removes a soil category.
wheat.removeCategory("dirt");
// Removes all soil categories.
wheat.clearCategories();
// Adding new drop entries.
// addDrop(item, chance);
wheat.addDrop(<item:minecraft:gold_nugget>, 1); // 100% drop rate
wheat.addDrop(<item:minecraft:gold_ingot>, 0.75); // 75% drop rate
// addDrop(item, chance, rolls);
wheat.addDrop(<item:minecraft:iron_nugget>, 1, 4); // 100% drop rate AND 4 attempts.
// addDrop(item, chance, minRolls, maxRolls);
wheat.addDrop(<item:minecraft:iron_ingot>, 0.75, 1, 5); // 75% drop rate AND 1 to 5 attempts.
// Removes all drops.
wheat.clearDrops();
// Removes a drop.
// removeDrop(ingredientToRemove);
wheat.removeDrop(<tag:forge:seeds>);
// Set the growth ticks of the crop.
wheat.setGrowthTicks(10000);
// Sets the seed item.
wheat.setSeed(<tag:forge:seeds/wheat>);
// Sets the display block.
wheat.setDisplay(<blockstate:minecraft:gold_block>);
// Sets the display to multiple blocks stacked.
wheat.setDisplay([<blockstate:minecraft:iron_block>, <blockstate:minecraft:iron_ore>]);
Soils can be modified using the soil manager. To do this you will need to import the following into your script.
import mods.botanypots.ZenSoil;
val soils = <recipetype:botanypots:soil>;
To create a soil you use the create method from the manager. This method will return a ZenSoil value which you can use to do further changes.
// soils.create(id, input, renderBlock, growthModifier, category);
// Growth can be any value less than or equal to 1. Higher = faster, 0 = no change.
// category may also be a string array.
val stoneSoil = soils.create("examplepack:stone", <tag:forge:stone>, <blockstate:minecraft:stone>, 0.15, "stone");
To modify a crop you will need to get a ZenSoil value. This is provided when you create the soil but can also be retrieved using soils.getSoil("soilid");
.
val dirt = soils.getSoil("botanypots:soils/dirt");
// Adds a category.
// addCategory(category);
dirt.addCategory("test");
// Removes a category.
// removeCategory(category);
dirt.removeCategory("dirt");
// Removes all categories.
// clearCategories();
dirt.clearCategories();
// Sets the input.
// setInput(input);
dirt.setInput(<tag:forge:stone>);
// Set display block.
// setDisplay(state);
dirt.setDisplay(<blockstate:minecraft:stone>);
// Set growth modifier.
// setGrowthModifier(modifier);
dirt.setGrowthModifier(0.20);
Fertilizers can be modified using the fertilizer manager. To do this you will need to import the following into your script.
import mods.botanypots.ZenFertilizer;
val fertilizers = <recipetype:botanypots:fertilizer>;
To create a fertilizer you use the create method from the manager. This method will return a ZenFertilizer value which you can use to do further changes.
// fertilizers.create(id, input, ticks);
// fertilizers.create(id, input, minTicks, maxTicks);
val stickFertilizer = fertilizers.create("examplepack:test", <item:minecraft:stick>, 1000);
To modify a fertilizer you will need to get a ZenFertilizer value. This is provided when you create the fertilizer but can also be retrieved using fertilizers.getSoil("fertilizerId");
.
val bonemeal = soils.getSoil("botanypots:fertilizers/bone_meal");
// Set the input of the fertilizer.
// setInput(input);
bonemeal.setInput(<item:minecraft:stick>);
// Sets the growth tick amount.
// setGrowthAmount(ticks);
// setGrowthAmount(min, max);
bonemal.setGrowthAmoun(1200, 1500);
Like the mod? Consider supporting the development of this mod and many others by supporting me on Patreon.