diff --git a/assets/tungsten_ore.afdesign b/assets/tungsten_ore.afdesign new file mode 100644 index 0000000..6b03b71 Binary files /dev/null and b/assets/tungsten_ore.afdesign differ diff --git a/src/main/java/net/banutama/utamacraft/Utamacraft.java b/src/main/java/net/banutama/utamacraft/Utamacraft.java index 0dd20f5..f403c0c 100644 --- a/src/main/java/net/banutama/utamacraft/Utamacraft.java +++ b/src/main/java/net/banutama/utamacraft/Utamacraft.java @@ -2,7 +2,6 @@ package net.banutama.utamacraft; import com.mojang.logging.LogUtils; -import net.banutama.utamacraft.block.custom.InsolatorBlock; import net.banutama.utamacraft.block.custom.ModBlocks; import net.banutama.utamacraft.block.entity.ModBlockEntities; import net.banutama.utamacraft.item.ModItems; @@ -12,7 +11,12 @@ import net.banutama.utamacraft.recipe.ModRecipes; import net.banutama.utamacraft.screen.InsolatorScreen; import net.banutama.utamacraft.screen.ModMenuTypes; import net.banutama.utamacraft.sound.ModSounds; +import net.banutama.utamacraft.world.feature.ModConfiguredFeatures; +import net.banutama.utamacraft.world.feature.ModPlacedFeatures; +import net.minecraft.client.RecipeBookCategories; import net.minecraft.client.gui.screens.MenuScreens; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.client.event.RegisterRecipeBookCategoriesEvent; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.eventbus.api.SubscribeEvent; @@ -33,7 +37,6 @@ public class Utamacraft { public static final String MOD_ID = "utamacraft"; private static final Logger LOGGER = LogUtils.getLogger(); - // Very Important Comment public Utamacraft() { LOGGER.info("Utamacraft initializing"); IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus(); @@ -45,6 +48,8 @@ public class Utamacraft { ModMenuTypes.register(bus); ModSounds.register(bus); ModRecipes.register(bus); + ModConfiguredFeatures.register(bus); + ModPlacedFeatures.register(bus); bus.addListener(this::commonSetup); MinecraftForge.EVENT_BUS.register(this); @@ -69,4 +74,14 @@ public class Utamacraft { () -> SlotTypePreset.NECKLACE.getMessageBuilder().build()); } } + + @Mod.EventBusSubscriber(modid = MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT) + public static class ModClientEvents { + @SubscribeEvent + public static void onRegisterRecipeBookCategories(RegisterRecipeBookCategoriesEvent event) { + event.registerRecipeCategoryFinder(ModRecipes.INSOLATOR_RECIPE_TYPE.get(), recipe -> { + return RecipeBookCategories.UNKNOWN; + }); + } + } } diff --git a/src/main/java/net/banutama/utamacraft/block/custom/ModBlocks.java b/src/main/java/net/banutama/utamacraft/block/custom/ModBlocks.java index 3b4975f..26a5b71 100644 --- a/src/main/java/net/banutama/utamacraft/block/custom/ModBlocks.java +++ b/src/main/java/net/banutama/utamacraft/block/custom/ModBlocks.java @@ -8,9 +8,11 @@ import net.banutama.utamacraft.block.custom.TintedEtherealGlassBlock; import net.banutama.utamacraft.block.custom.InsolatorBlock; import net.banutama.utamacraft.item.ModCreativeModeTab; import net.banutama.utamacraft.item.ModItems; +import net.minecraft.util.valueproviders.UniformInt; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.DropExperienceBlock; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.material.Material; import net.minecraftforge.eventbus.api.IEventBus; @@ -27,6 +29,18 @@ public class ModBlocks { registerBlock("ethereal_glass", EtherealGlassBlock::new); public static final RegistryObject TINTED_ETHEREAL_GLASS = registerBlock("tinted_ethereal_glass", TintedEtherealGlassBlock::new); + public static final RegistryObject TUNGSTEN_ORE = + registerBlock("tungsten_ore", + () -> new DropExperienceBlock(BlockBehaviour.Properties.of(Material.STONE) + .strength(6.0f) + .requiresCorrectToolForDrops(), + UniformInt.of(3, 7))); + public static final RegistryObject DEEPSLATE_TUNGSTEN_ORE = + registerBlock("deepslate_tungsten_ore", + () -> new DropExperienceBlock(BlockBehaviour.Properties.of(Material.STONE) + .strength(6.0f) + .requiresCorrectToolForDrops(), + UniformInt.of(3, 7))); public static final RegistryObject TUNGSTEN_BLOCK = registerBlock("tungsten_block", () -> new Block(BlockBehaviour.Properties.of(Material.METAL) diff --git a/src/main/java/net/banutama/utamacraft/block/entity/InsolatorBlockEntity.java b/src/main/java/net/banutama/utamacraft/block/entity/InsolatorBlockEntity.java index f4350b4..27297e6 100644 --- a/src/main/java/net/banutama/utamacraft/block/entity/InsolatorBlockEntity.java +++ b/src/main/java/net/banutama/utamacraft/block/entity/InsolatorBlockEntity.java @@ -2,6 +2,7 @@ package net.banutama.utamacraft.block.entity; import net.banutama.utamacraft.block.custom.InsolatorBlock; import net.banutama.utamacraft.recipe.InsolatorRecipe; +import net.banutama.utamacraft.recipe.ModRecipes; import net.banutama.utamacraft.screen.InsolatorMenu; import net.banutama.utamacraft.util.ModEnergyStorage; import net.minecraft.core.BlockPos; @@ -37,7 +38,6 @@ import java.util.Optional; public class InsolatorBlockEntity extends BlockEntity implements MenuProvider { public static final int ENERGY_REQUIRED = 32; - public static final int MAX_PROGRESS = 500; private final ItemStackHandler inventory = new ItemStackHandler(3) { @Override @@ -83,6 +83,7 @@ public class InsolatorBlockEntity extends BlockEntity implements MenuProvider { private final LazyOptional fluidOptional = LazyOptional.of(() -> fluid); private int progress = 0; + private int ticks = 0; private boolean active = false; public InsolatorBlockEntity(BlockPos pPos, BlockState pBlockState) { @@ -132,6 +133,7 @@ public class InsolatorBlockEntity extends BlockEntity implements MenuProvider { nbt.put("fluid", fluid.writeToNBT(new CompoundTag())); nbt.put("energy", energy.serializeNBT()); nbt.putInt("progress", progress); + nbt.putInt("ticks", ticks); nbt.putBoolean("active", active); super.saveAdditional(nbt); } @@ -143,6 +145,7 @@ public class InsolatorBlockEntity extends BlockEntity implements MenuProvider { fluid.readFromNBT(nbt.getCompound("fluid")); energy.deserializeNBT(nbt.get("energy")); progress = nbt.getInt("progress"); + ticks = nbt.getInt("ticks"); active = nbt.getBoolean("active"); } @@ -164,21 +167,32 @@ public class InsolatorBlockEntity extends BlockEntity implements MenuProvider { return; } - boolean newActive; + boolean newActive = entity.active; - if (entity.canCraft().isPresent() && entity.hasEnoughEnergy()) { - ++entity.progress; - newActive = true; - entity.energy.extractEnergy(ENERGY_REQUIRED, false); - setChanged(level, pos, state); - - if (entity.progress >= MAX_PROGRESS) { - entity.craftItem(); - } - } else { - entity.resetProgress(); + Optional optionalInsolatorRecipe = entity.getRecipe(); + if (optionalInsolatorRecipe.isEmpty()) { newActive = false; - setChanged(level, pos, state); + } else { + InsolatorRecipe insolatorRecipe = optionalInsolatorRecipe.get(); + if (entity.canCraft(insolatorRecipe) && entity.hasEnoughEnergy(insolatorRecipe)) { + if (entity.progress == 0) { + entity.ticks = insolatorRecipe.getTicks(); + } + + ++entity.progress; + newActive = true; + + entity.energy.extractEnergy(ENERGY_REQUIRED, false); + setChanged(level, pos, state); + + if (entity.progress >= insolatorRecipe.getTicks()) { + entity.craftItem(insolatorRecipe); + } + } else { + entity.resetProgress(insolatorRecipe.getTicks()); + newActive = false; + setChanged(level, pos, state); + } } if (newActive != entity.active) { @@ -210,18 +224,14 @@ public class InsolatorBlockEntity extends BlockEntity implements MenuProvider { } } - private void resetProgress() { + private void resetProgress(int newTicks) { this.progress = 0; + this.ticks = newTicks; } - private void craftItem() { - Optional recipe = canCraft(); - if (recipe.isEmpty()) { - return; - } - + private void craftItem(InsolatorRecipe recipe) { // Drain the amount of fluid specified in our recipe from the fluid tank - fluid.drain(recipe.get().getFluid().getAmount(), IFluidHandler.FluidAction.EXECUTE); + fluid.drain(recipe.getFluid().getAmount(), IFluidHandler.FluidAction.EXECUTE); // Remove an item from the input slot. inventory.extractItem(1, 1, false); @@ -229,47 +239,38 @@ public class InsolatorBlockEntity extends BlockEntity implements MenuProvider { // Insert the recipe output in to the output slot. ItemStack output = inventory.getStackInSlot(2); if (output.isEmpty()) { - inventory.setStackInSlot(2, recipe.get().getResultItem().copy()); + inventory.setStackInSlot(2, recipe.getResultItem().copy()); } else { - output.grow(recipe.get().getResultItem().getCount()); + output.grow(recipe.getResultItem().getCount()); } - resetProgress(); + resetProgress(recipe.getTicks()); } - private boolean hasEnoughEnergy() { - return energy.getEnergyStored() >= ENERGY_REQUIRED * MAX_PROGRESS; + private boolean hasEnoughEnergy(InsolatorRecipe recipe) { + return energy.getEnergyStored() >= ENERGY_REQUIRED * recipe.getTicks(); } - private Optional canCraft() { - Optional recipe = getRecipe(); - if (recipe.isEmpty()) { - return Optional.empty(); - } - + private boolean canCraft(InsolatorRecipe recipe) { // Make sure that the correct fluid is in the tank. - if (!fluid.getFluid().equals(recipe.get().getFluid())) { - return Optional.empty(); + if (!fluid.getFluid().equals(recipe.getFluid())) { + return false; } // Ensure that we have enough fluid - if (fluid.getFluidAmount() < recipe.get().getFluid().getAmount()) { - return Optional.empty(); + if (fluid.getFluidAmount() < recipe.getFluid().getAmount()) { + return false; } ItemStack output = inventory.getStackInSlot(2); // If the output isn't empty, and the item in the output is different to the output of the recipe, we cannot process. - if (!output.isEmpty() && output.getItem() != recipe.get().getResultItem().getItem()) { - return Optional.empty(); + if (!output.isEmpty() && output.getItem() != recipe.getResultItem().getItem()) { + return false; } // Make sure that the output is not saturated. - if (output.getCount() + recipe.get().getResultItem().getCount() > output.getMaxStackSize()) { - return Optional.empty(); - } - - return recipe; + return output.getCount() + recipe.getResultItem().getCount() <= output.getMaxStackSize(); } private Optional getRecipe() { @@ -283,7 +284,7 @@ public class InsolatorBlockEntity extends BlockEntity implements MenuProvider { } return level.getRecipeManager() - .getRecipeFor(InsolatorRecipe.Type.INSTANCE, inventory, level); + .getRecipeFor(ModRecipes.INSOLATOR_RECIPE_TYPE.get(), inventory, level); } private void sendUpdate() { @@ -313,4 +314,8 @@ public class InsolatorBlockEntity extends BlockEntity implements MenuProvider { public int getProgress() { return this.progress; } + + public int getTicks() { + return this.ticks; + } } diff --git a/src/main/java/net/banutama/utamacraft/integrations/computercraft/peripheral/InsolatorPeripheral.java b/src/main/java/net/banutama/utamacraft/integrations/computercraft/peripheral/InsolatorPeripheral.java index 6e85172..cf27178 100644 --- a/src/main/java/net/banutama/utamacraft/integrations/computercraft/peripheral/InsolatorPeripheral.java +++ b/src/main/java/net/banutama/utamacraft/integrations/computercraft/peripheral/InsolatorPeripheral.java @@ -6,9 +6,7 @@ import dan200.computercraft.api.lua.MethodResult; import net.banutama.utamacraft.block.entity.InsolatorBlockEntity; import net.banutama.utamacraft.integrations.computercraft.utils.WrapResult; import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.items.ItemStackHandler; import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; @@ -42,7 +40,7 @@ public class InsolatorPeripheral extends BasePeripheral { Map result = new HashMap<>(); result.put("active", insolator.getActive()); result.put("progress", insolator.getProgress()); - result.put("maxProgress", InsolatorBlockEntity.MAX_PROGRESS); + result.put("ticks", insolator.getTicks()); result.put("energy", WrapResult.wrap(insolator.getEnergy())); insolator.getInventoryOptional().ifPresent(inventory -> result.put("inventory", WrapResult.wrap(inventory))); diff --git a/src/main/java/net/banutama/utamacraft/integrations/jei/InsolatorRecipeCategory.java b/src/main/java/net/banutama/utamacraft/integrations/jei/InsolatorRecipeCategory.java new file mode 100644 index 0000000..9e14883 --- /dev/null +++ b/src/main/java/net/banutama/utamacraft/integrations/jei/InsolatorRecipeCategory.java @@ -0,0 +1,68 @@ +package net.banutama.utamacraft.integrations.jei; + +import mezz.jei.api.constants.VanillaTypes; +import mezz.jei.api.forge.ForgeTypes; +import mezz.jei.api.gui.builder.IRecipeLayoutBuilder; +import mezz.jei.api.gui.drawable.IDrawable; +import mezz.jei.api.helpers.IGuiHelper; +import mezz.jei.api.recipe.IFocusGroup; +import mezz.jei.api.recipe.RecipeIngredientRole; +import mezz.jei.api.recipe.RecipeType; +import mezz.jei.api.recipe.category.IRecipeCategory; +import net.banutama.utamacraft.Utamacraft; +import net.banutama.utamacraft.block.custom.ModBlocks; +import net.banutama.utamacraft.recipe.InsolatorRecipe; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ItemStack; +import org.checkerframework.checker.units.qual.A; +import org.jetbrains.annotations.NotNull; + +import java.util.List; + +public class InsolatorRecipeCategory implements IRecipeCategory { + public final static ResourceLocation UID = new ResourceLocation(Utamacraft.MOD_ID, "insolator"); + public final static ResourceLocation TEXTURE = + new ResourceLocation(Utamacraft.MOD_ID, "textures/gui/insolator_gui.png"); + public static final RecipeType INSOLATOR_TYPE = + new RecipeType<>(InsolatorRecipeCategory.UID, InsolatorRecipe.class); + + private final IDrawable background; + private final IDrawable icon; + + public InsolatorRecipeCategory(IGuiHelper guiHelper) { + this.background = guiHelper.createDrawable(TEXTURE, 0, 0, 176, 85); + this.icon = guiHelper.createDrawableIngredient(VanillaTypes.ITEM_STACK, new ItemStack(ModBlocks.INSOLATOR.get())); + } + + @Override + public @NotNull RecipeType getRecipeType() { + return INSOLATOR_TYPE; + } + + @Override + public @NotNull Component getTitle() { + return Component.translatable("block.utamacraft.insolator"); + } + + @Override + public @NotNull IDrawable getBackground() { + return this.background; + } + + @Override + public @NotNull IDrawable getIcon() { + return this.icon; + } + + @Override + public void setRecipe(@NotNull IRecipeLayoutBuilder builder, @NotNull InsolatorRecipe recipe, @NotNull IFocusGroup focuses) { + builder.addSlot(RecipeIngredientRole.INPUT, 86, 15) + .addIngredients(recipe.getIngredients().get(0)); + builder.addSlot(RecipeIngredientRole.INPUT, 33, 16) + .addIngredients(ForgeTypes.FLUID_STACK, List.of(recipe.getFluid())) + .setFluidRenderer(64000, false, 9, 60); + builder.addSlot(RecipeIngredientRole.OUTPUT, 86, 60) + .addItemStack(recipe.getResultItem()); + } +} diff --git a/src/main/java/net/banutama/utamacraft/integrations/jei/ModJeiPlugin.java b/src/main/java/net/banutama/utamacraft/integrations/jei/ModJeiPlugin.java new file mode 100644 index 0000000..ad9d2e1 --- /dev/null +++ b/src/main/java/net/banutama/utamacraft/integrations/jei/ModJeiPlugin.java @@ -0,0 +1,36 @@ +package net.banutama.utamacraft.integrations.jei; + +import mezz.jei.api.IModPlugin; +import mezz.jei.api.JeiPlugin; +import mezz.jei.api.registration.IRecipeCategoryRegistration; +import mezz.jei.api.registration.IRecipeRegistration; +import net.banutama.utamacraft.Utamacraft; +import net.banutama.utamacraft.recipe.InsolatorRecipe; +import net.banutama.utamacraft.recipe.ModRecipes; +import net.minecraft.client.Minecraft; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.crafting.RecipeManager; +import org.jetbrains.annotations.NotNull; + +import java.util.List; +import java.util.Objects; + +@JeiPlugin +public class ModJeiPlugin implements IModPlugin { + @Override + public @NotNull ResourceLocation getPluginUid() { + return new ResourceLocation(Utamacraft.MOD_ID, "jei_plugin"); + } + + @Override + public void registerCategories(IRecipeCategoryRegistration registration) { + registration.addRecipeCategories(new InsolatorRecipeCategory(registration.getJeiHelpers().getGuiHelper())); + } + + @Override + public void registerRecipes(IRecipeRegistration registration) { + RecipeManager manager = Objects.requireNonNull(Minecraft.getInstance().level).getRecipeManager(); + List recipes = manager.getAllRecipesFor(ModRecipes.INSOLATOR_RECIPE_TYPE.get()); + registration.addRecipes(InsolatorRecipeCategory.INSOLATOR_TYPE, recipes); + } +} diff --git a/src/main/java/net/banutama/utamacraft/recipe/InsolatorRecipe.java b/src/main/java/net/banutama/utamacraft/recipe/InsolatorRecipe.java index 6d4a2c7..ad69ec6 100644 --- a/src/main/java/net/banutama/utamacraft/recipe/InsolatorRecipe.java +++ b/src/main/java/net/banutama/utamacraft/recipe/InsolatorRecipe.java @@ -12,6 +12,7 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.*; import net.minecraft.world.level.Level; import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fml.common.Mod; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -20,12 +21,14 @@ public class InsolatorRecipe implements Recipe { private final ItemStack output; private final Ingredient input; private final FluidStack fluid; + private final int ticks; - public InsolatorRecipe(ResourceLocation id, ItemStack output, Ingredient input, FluidStack fluid) { + public InsolatorRecipe(ResourceLocation id, ItemStack output, Ingredient input, FluidStack fluid, int ticks) { this.id = id; this.output = output; this.input = input; this.fluid = fluid; + this.ticks = ticks; } @Override @@ -51,6 +54,10 @@ public class InsolatorRecipe implements Recipe { return fluid; } + public int getTicks() { + return ticks; + } + @Override public @NotNull ItemStack getResultItem() { return output.copy(); @@ -68,16 +75,21 @@ public class InsolatorRecipe implements Recipe { @Override public @NotNull RecipeType getType() { - return Type.INSTANCE; + return ModRecipes.INSOLATOR_RECIPE_TYPE.get(); } - public static class Type implements RecipeType { - public static final Type INSTANCE = new Type(); - public static final String ID = "insolator"; - private Type() { - } + @Override + public @NotNull NonNullList getIngredients() { + return NonNullList.of(Ingredient.EMPTY, input); } +// public static class Type implements RecipeType { +// public static final Type INSTANCE = new Type(); +// public static final String ID = "insolator"; +// private Type() { +// } +// } + public static class Serializer implements RecipeSerializer { public static final Serializer INSTANCE = new Serializer(); public static final ResourceLocation ID = new ResourceLocation(Utamacraft.MOD_ID, "insolator"); @@ -87,7 +99,8 @@ public class InsolatorRecipe implements Recipe { ItemStack output = ShapedRecipe.itemStackFromJson(GsonHelper.getAsJsonObject(pSerializedRecipe, "output")); Ingredient input = Ingredient.fromJson(pSerializedRecipe.getAsJsonObject("input")); FluidStack fluid = FluidStack.CODEC.decode(JsonOps.INSTANCE, pSerializedRecipe.get("fluid")).result().orElseThrow().getFirst(); - return new InsolatorRecipe(pRecipeId, output, input, fluid); + int ticks = pSerializedRecipe.get("ticks").getAsInt(); + return new InsolatorRecipe(pRecipeId, output, input, fluid, ticks); } @Override @@ -95,7 +108,8 @@ public class InsolatorRecipe implements Recipe { ItemStack output = pBuffer.readItem(); Ingredient input = Ingredient.fromNetwork(pBuffer); FluidStack fluid = pBuffer.readFluidStack(); - return new InsolatorRecipe(pRecipeId, output, input, fluid); + int ticks = pBuffer.readInt(); + return new InsolatorRecipe(pRecipeId, output, input, fluid, ticks); } @Override @@ -103,6 +117,7 @@ public class InsolatorRecipe implements Recipe { pBuffer.writeItemStack(pRecipe.output, false); pRecipe.input.toNetwork(pBuffer); pBuffer.writeFluidStack(pRecipe.fluid); + pBuffer.writeInt(pRecipe.ticks); } } } diff --git a/src/main/java/net/banutama/utamacraft/recipe/ModRecipes.java b/src/main/java/net/banutama/utamacraft/recipe/ModRecipes.java index ad04392..20832ee 100644 --- a/src/main/java/net/banutama/utamacraft/recipe/ModRecipes.java +++ b/src/main/java/net/banutama/utamacraft/recipe/ModRecipes.java @@ -2,6 +2,7 @@ package net.banutama.utamacraft.recipe; import net.banutama.utamacraft.Utamacraft; import net.minecraft.world.item.crafting.RecipeSerializer; +import net.minecraft.world.item.crafting.RecipeType; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; @@ -10,11 +11,21 @@ import net.minecraftforge.registries.RegistryObject; public class ModRecipes { public static final DeferredRegister> SERIALIZERS = DeferredRegister.create(ForgeRegistries.RECIPE_SERIALIZERS, Utamacraft.MOD_ID); + public static final DeferredRegister> TYPES = + DeferredRegister.create(ForgeRegistries.RECIPE_TYPES, Utamacraft.MOD_ID); public static final RegistryObject> INSOLATOR_SERIALIZER = SERIALIZERS.register("insolator", () -> InsolatorRecipe.Serializer.INSTANCE); + public static final RegistryObject> INSOLATOR_RECIPE_TYPE = + TYPES.register("insolator_recipe", () -> new RecipeType() { + @Override + public String toString() { + return "insolator_recipe"; + } + }); public static void register(IEventBus bus) { SERIALIZERS.register(bus); + TYPES.register(bus); } } diff --git a/src/main/java/net/banutama/utamacraft/screen/InsolatorScreen.java b/src/main/java/net/banutama/utamacraft/screen/InsolatorScreen.java index 59410d8..b4a317a 100644 --- a/src/main/java/net/banutama/utamacraft/screen/InsolatorScreen.java +++ b/src/main/java/net/banutama/utamacraft/screen/InsolatorScreen.java @@ -3,7 +3,6 @@ package net.banutama.utamacraft.screen; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.PoseStack; import net.banutama.utamacraft.Utamacraft; -import net.banutama.utamacraft.block.entity.InsolatorBlockEntity; import net.banutama.utamacraft.screen.utils.FluidSprite; import net.banutama.utamacraft.screen.utils.MouseUtils; import net.banutama.utamacraft.screen.utils.TiledSprite; @@ -104,8 +103,11 @@ public class InsolatorScreen extends AbstractContainerScreen { private void renderProgressArrow(PoseStack stack, int x, int y) { if (menu.getBlockEntity().getActive()) { - float ratio = (float)menu.getBlockEntity().getProgress() / (float)InsolatorBlockEntity.MAX_PROGRESS; - blit(stack, x + 90, y + 33, 176, 0, 8, (int)(25.0f * ratio)); + int ticks = menu.getBlockEntity().getTicks(); + if (ticks != 0) { + float ratio = (float)menu.getBlockEntity().getProgress() / (float)ticks; + blit(stack, x + 90, y + 33, 176, 0, 8, (int)(25.0f * ratio)); + } } } diff --git a/src/main/java/net/banutama/utamacraft/world/feature/ModConfiguredFeatures.java b/src/main/java/net/banutama/utamacraft/world/feature/ModConfiguredFeatures.java new file mode 100644 index 0000000..9dc0b4f --- /dev/null +++ b/src/main/java/net/banutama/utamacraft/world/feature/ModConfiguredFeatures.java @@ -0,0 +1,38 @@ +package net.banutama.utamacraft.world.feature; + +import com.google.common.base.Supplier; +import com.google.common.base.Suppliers; +import net.banutama.utamacraft.Utamacraft; +import net.banutama.utamacraft.block.custom.ModBlocks; +import net.minecraft.core.Registry; +import net.minecraft.data.worldgen.features.OreFeatures; +import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; +import net.minecraft.world.level.levelgen.feature.Feature; +import net.minecraft.world.level.levelgen.feature.configurations.OreConfiguration; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.RegistryObject; + +import java.util.List; + +public class ModConfiguredFeatures { + public static final DeferredRegister> CONFIGURED_FEATURES = + DeferredRegister.create(Registry.CONFIGURED_FEATURE_REGISTRY, Utamacraft.MOD_ID); + + public static final Supplier> OVERWORLD_TUNGSTEN_ORES = + Suppliers.memoize(() -> { + return List.of( + OreConfiguration.target(OreFeatures.STONE_ORE_REPLACEABLES, ModBlocks.TUNGSTEN_ORE.get().defaultBlockState()), + OreConfiguration.target(OreFeatures.DEEPSLATE_ORE_REPLACEABLES, ModBlocks.DEEPSLATE_TUNGSTEN_ORE.get().defaultBlockState()) + ); + }); + + public static final RegistryObject> TUNGSTEN_ORE = + CONFIGURED_FEATURES.register("tungsten_ore", () -> { + return new ConfiguredFeature<>(Feature.ORE, new OreConfiguration(OVERWORLD_TUNGSTEN_ORES.get(), 7)); + }); + + public static void register(IEventBus bus) { + CONFIGURED_FEATURES.register(bus); + } +} diff --git a/src/main/java/net/banutama/utamacraft/world/feature/ModPlacedFeatures.java b/src/main/java/net/banutama/utamacraft/world/feature/ModPlacedFeatures.java new file mode 100644 index 0000000..a7a4126 --- /dev/null +++ b/src/main/java/net/banutama/utamacraft/world/feature/ModPlacedFeatures.java @@ -0,0 +1,40 @@ +package net.banutama.utamacraft.world.feature; + + +import net.banutama.utamacraft.Utamacraft; +import net.minecraft.core.Registry; +import net.minecraft.world.level.levelgen.VerticalAnchor; +import net.minecraft.world.level.levelgen.placement.*; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.RegistryObject; + +import java.util.List; + +public class ModPlacedFeatures { + public static final DeferredRegister PLACED_FEATURES = + DeferredRegister.create(Registry.PLACED_FEATURE_REGISTRY, Utamacraft.MOD_ID); + + public static final RegistryObject TUNGSTEN_ORE_PLACED = + PLACED_FEATURES.register("tungsten_ore_placed", () -> new PlacedFeature( + ModConfiguredFeatures.TUNGSTEN_ORE.getHolder().get(), + commonOrePlacement(7, + HeightRangePlacement.triangle( + VerticalAnchor.aboveBottom(-80), + VerticalAnchor.aboveBottom(80) + ) + ) + )); + + public static void register(IEventBus bus) { + PLACED_FEATURES.register(bus); + } + + private static List commonOrePlacement(int veinsPerChunk, PlacementModifier modifier) { + return orePlacement(CountPlacement.of(veinsPerChunk), modifier); + } + + private static List orePlacement(PlacementModifier a, PlacementModifier b) { + return List.of(a, InSquarePlacement.spread(), b, BiomeFilter.biome()); + } +} diff --git a/src/main/resources/assets/utamacraft/blockstates/deepslate_tungsten_ore.json b/src/main/resources/assets/utamacraft/blockstates/deepslate_tungsten_ore.json new file mode 100644 index 0000000..e038ac5 --- /dev/null +++ b/src/main/resources/assets/utamacraft/blockstates/deepslate_tungsten_ore.json @@ -0,0 +1,5 @@ +{ + "variants": { + "": { "model": "utamacraft:block/deepslate_tungsten_ore" } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/utamacraft/blockstates/tungsten_ore.json b/src/main/resources/assets/utamacraft/blockstates/tungsten_ore.json new file mode 100644 index 0000000..c29c4af --- /dev/null +++ b/src/main/resources/assets/utamacraft/blockstates/tungsten_ore.json @@ -0,0 +1,5 @@ +{ + "variants": { + "": { "model": "utamacraft:block/tungsten_ore" } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/utamacraft/lang/en_us.json b/src/main/resources/assets/utamacraft/lang/en_us.json index 46020ce..850f391 100644 --- a/src/main/resources/assets/utamacraft/lang/en_us.json +++ b/src/main/resources/assets/utamacraft/lang/en_us.json @@ -1,8 +1,10 @@ { + "block.utamacraft.deepslate_tungsten_ore": "Deepslate Tungsten Ore", "block.utamacraft.ethereal_glass": "Ethereal Glass", "block.utamacraft.insolator": "Insolator", "block.utamacraft.tinted_ethereal_glass": "Tinted Ethereal Glass", "block.utamacraft.tungsten_block": "Tungsten Block", + "block.utamacraft.tungsten_ore": "Tungsten Ore", "block_entity.utamacraft.insolator": "Insolator", "item.utamacraft.bulb": "Bulb", "item.utamacraft.fiber_glass": "Fiberglass", diff --git a/src/main/resources/assets/utamacraft/models/block/deepslate_tungsten_ore.json b/src/main/resources/assets/utamacraft/models/block/deepslate_tungsten_ore.json new file mode 100644 index 0000000..50bd100 --- /dev/null +++ b/src/main/resources/assets/utamacraft/models/block/deepslate_tungsten_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "utamacraft:block/deepslate_tungsten_ore" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/utamacraft/models/block/tungsten_ore.json b/src/main/resources/assets/utamacraft/models/block/tungsten_ore.json new file mode 100644 index 0000000..9bc7b3e --- /dev/null +++ b/src/main/resources/assets/utamacraft/models/block/tungsten_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "utamacraft:block/tungsten_ore" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/utamacraft/models/item/deepslate_tungsten_ore.json b/src/main/resources/assets/utamacraft/models/item/deepslate_tungsten_ore.json new file mode 100644 index 0000000..098ec10 --- /dev/null +++ b/src/main/resources/assets/utamacraft/models/item/deepslate_tungsten_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "utamacraft:block/deepslate_tungsten_ore" +} \ No newline at end of file diff --git a/src/main/resources/assets/utamacraft/models/item/tungsten_ore.json b/src/main/resources/assets/utamacraft/models/item/tungsten_ore.json new file mode 100644 index 0000000..13216ef --- /dev/null +++ b/src/main/resources/assets/utamacraft/models/item/tungsten_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "utamacraft:block/tungsten_ore" +} \ No newline at end of file diff --git a/src/main/resources/assets/utamacraft/textures/block/deepslate_tungsten_ore.png b/src/main/resources/assets/utamacraft/textures/block/deepslate_tungsten_ore.png new file mode 100644 index 0000000..5c25263 Binary files /dev/null and b/src/main/resources/assets/utamacraft/textures/block/deepslate_tungsten_ore.png differ diff --git a/src/main/resources/assets/utamacraft/textures/block/tungsten_ore.png b/src/main/resources/assets/utamacraft/textures/block/tungsten_ore.png new file mode 100644 index 0000000..1d16f8a Binary files /dev/null and b/src/main/resources/assets/utamacraft/textures/block/tungsten_ore.png differ diff --git a/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json b/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json new file mode 100644 index 0000000..08ba7f0 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json @@ -0,0 +1,8 @@ +{ + "replace": false, + "values": [ + "utamacraft:tungsten_ore", + "utamacraft:deepslate_tungsten_ore", + "utamacraft:tungsten_block" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/needs_iron_tool.json b/src/main/resources/data/minecraft/tags/blocks/needs_iron_tool.json new file mode 100644 index 0000000..d2da61c --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/needs_iron_tool.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "utamacraft:deepslate_tungsten_ore" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/utamacraft/forge/biome_modifier/add_tungsten_ore.json b/src/main/resources/data/utamacraft/forge/biome_modifier/add_tungsten_ore.json new file mode 100644 index 0000000..5a741c9 --- /dev/null +++ b/src/main/resources/data/utamacraft/forge/biome_modifier/add_tungsten_ore.json @@ -0,0 +1,6 @@ +{ + "type": "forge:add_features", + "biomes": "#minecraft:is_overworld", + "features": "utamacraft:tungsten_ore_placed", + "step": "underground_ores" +} \ No newline at end of file diff --git a/src/main/resources/data/utamacraft/loot_tables/blocks/deepslate_tungsten_ore.json b/src/main/resources/data/utamacraft/loot_tables/blocks/deepslate_tungsten_ore.json new file mode 100644 index 0000000..4842e52 --- /dev/null +++ b/src/main/resources/data/utamacraft/loot_tables/blocks/deepslate_tungsten_ore.json @@ -0,0 +1,58 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "utamacraft:deepslate_tungsten_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 5.0 + }, + "add": false + }, + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "utamacraft:raw_tungsten" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/utamacraft/loot_tables/blocks/tinted_ethereal_glass.json b/src/main/resources/data/utamacraft/loot_tables/blocks/tinted_ethereal_glass.json new file mode 100644 index 0000000..eb370aa --- /dev/null +++ b/src/main/resources/data/utamacraft/loot_tables/blocks/tinted_ethereal_glass.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "utamacraft:tinted_ethereal_glass" + } + ] + } + ] +} diff --git a/src/main/resources/data/utamacraft/loot_tables/blocks/tungsten_block.json b/src/main/resources/data/utamacraft/loot_tables/blocks/tungsten_block.json new file mode 100644 index 0000000..1e2abb2 --- /dev/null +++ b/src/main/resources/data/utamacraft/loot_tables/blocks/tungsten_block.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "utamacraft:tungsten_block" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/utamacraft/loot_tables/blocks/tungsten_ore.json b/src/main/resources/data/utamacraft/loot_tables/blocks/tungsten_ore.json new file mode 100644 index 0000000..e9b0e49 --- /dev/null +++ b/src/main/resources/data/utamacraft/loot_tables/blocks/tungsten_ore.json @@ -0,0 +1,58 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "utamacraft:tungsten_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 5.0 + }, + "add": false + }, + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "utamacraft:raw_tungsten" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_acacia_leaves.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_acacia_leaves.json index 3f1d326..ba026ca 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_acacia_leaves.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_acacia_leaves.json @@ -3,9 +3,10 @@ "input": { "item": "minecraft:acacia_leaves" }, + "ticks": 1000, "fluid": { "FluidName": "minecraft:water", - "Amount": 500 + "Amount": 1000 }, "output": { "item": "minecraft:acacia_leaves", diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_acacia_sapling.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_acacia_sapling.json index 39d7f9c..335c0ca 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_acacia_sapling.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_acacia_sapling.json @@ -3,9 +3,10 @@ "input": { "item": "minecraft:acacia_sapling" }, + "ticks": 1000, "fluid": { "FluidName": "minecraft:water", - "Amount": 500 + "Amount": 1000 }, "output": { "item": "minecraft:acacia_sapling", diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_allium.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_allium.json index 3532bec..19e689d 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_allium.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_allium.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:allium" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_azalea.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_azalea.json index 6c03dc3..9337538 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_azalea.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_azalea.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:azalea" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_azalea_leaves.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_azalea_leaves.json index 425a2c9..0865656 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_azalea_leaves.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_azalea_leaves.json @@ -3,9 +3,10 @@ "input": { "item": "minecraft:azalea_leaves" }, + "ticks": 1000, "fluid": { "FluidName": "minecraft:water", - "Amount": 500 + "Amount": 1000 }, "output": { "item": "minecraft:azalea_leaves", diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_azure_bluet.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_azure_bluet.json index 581f71f..0d486ec 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_azure_bluet.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_azure_bluet.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:azure_bluet" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_bamboo.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_bamboo.json index 0803477..28b4bec 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_bamboo.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_bamboo.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:bamboo" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_beetroot_seeds.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_beetroot_seeds.json index ed82f12..64d408b 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_beetroot_seeds.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_beetroot_seeds.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:beetroot_seeds" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_big_dripleaf.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_big_dripleaf.json index 9e5cff7..6a4b33a 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_big_dripleaf.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_big_dripleaf.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:big_dripleaf" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_birch_leaves.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_birch_leaves.json index a765835..cf6e3e2 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_birch_leaves.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_birch_leaves.json @@ -3,9 +3,10 @@ "input": { "item": "minecraft:birch_leaves" }, + "ticks": 1000, "fluid": { "FluidName": "minecraft:water", - "Amount": 500 + "Amount": 1000 }, "output": { "item": "minecraft:birch_leaves", diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_birch_sapling.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_birch_sapling.json index db2e0a3..64e0233 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_birch_sapling.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_birch_sapling.json @@ -3,9 +3,10 @@ "input": { "item": "minecraft:birch_sapling" }, + "ticks": 1000, "fluid": { "FluidName": "minecraft:water", - "Amount": 500 + "Amount": 1000 }, "output": { "item": "minecraft:birch_sapling", diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_blue_orchid.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_blue_orchid.json index 7f99013..c55a92b 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_blue_orchid.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_blue_orchid.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:blue_orchid" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_brown_mushroom.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_brown_mushroom.json index dc8b257..8a0332e 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_brown_mushroom.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_brown_mushroom.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:brown_mushroom" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_cactus.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_cactus.json index 3cf79a6..4210e5a 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_cactus.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_cactus.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:cactus" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_chorus_flower.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_chorus_flower.json index d13dd16..b722c0c 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_chorus_flower.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_chorus_flower.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:chorus_flower" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_cornflower.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_cornflower.json index f4f5ba0..09a13c0 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_cornflower.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_cornflower.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:cornflower" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_crimson_fungus.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_crimson_fungus.json index d724cf3..5fd11e6 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_crimson_fungus.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_crimson_fungus.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:crimson_fungus" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_crimson_roots.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_crimson_roots.json index 94548e6..1265672 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_crimson_roots.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_crimson_roots.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:crimson_roots" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_dandelion.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_dandelion.json index 93e24d6..4dd7f4b 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_dandelion.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_dandelion.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:dandelion" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_dark_oak_leaves.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_dark_oak_leaves.json index e57f76c..f4e0b92 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_dark_oak_leaves.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_dark_oak_leaves.json @@ -3,9 +3,10 @@ "input": { "item": "minecraft:dark_oak_leaves" }, + "ticks": 1000, "fluid": { "FluidName": "minecraft:water", - "Amount": 500 + "Amount": 1000 }, "output": { "item": "minecraft:dark_oak_leaves", diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_dark_oak_sapling.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_dark_oak_sapling.json index 6b3c538..641f735 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_dark_oak_sapling.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_dark_oak_sapling.json @@ -3,9 +3,10 @@ "input": { "item": "minecraft:dark_oak_sapling" }, + "ticks": 1000, "fluid": { "FluidName": "minecraft:water", - "Amount": 500 + "Amount": 1000 }, "output": { "item": "minecraft:dark_oak_sapling", diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_fern.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_fern.json index 0e94feb..7ba90e4 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_fern.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_fern.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:fern" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_flowering_azalea.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_flowering_azalea.json index be441e7..73f11de 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_flowering_azalea.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_flowering_azalea.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:flowering_azalea" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_flowering_azalea_leaves.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_flowering_azalea_leaves.json index e1181b0..8aed212 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_flowering_azalea_leaves.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_flowering_azalea_leaves.json @@ -3,9 +3,10 @@ "input": { "item": "minecraft:flowering_azalea_leaves" }, + "ticks": 1000, "fluid": { "FluidName": "minecraft:water", - "Amount": 500 + "Amount": 1000 }, "output": { "item": "minecraft:flowering_azalea_leaves", diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_glow_lichen.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_glow_lichen.json index ff50280..c570f8a 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_glow_lichen.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_glow_lichen.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:glow_lichen" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_grass.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_grass.json index 8c9a844..9edc8c6 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_grass.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_grass.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:grass" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_hanging_roots.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_hanging_roots.json index b046f1e..2e7a348 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_hanging_roots.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_hanging_roots.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:hanging_roots" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_jungle_leaves.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_jungle_leaves.json index 82f30b8..d2c4113 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_jungle_leaves.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_jungle_leaves.json @@ -3,9 +3,10 @@ "input": { "item": "minecraft:jungle_leaves" }, + "ticks": 1000, "fluid": { "FluidName": "minecraft:water", - "Amount": 500 + "Amount": 1000 }, "output": { "item": "minecraft:jungle_leaves", diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_jungle_sapling.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_jungle_sapling.json index cf3af1b..a9a04ce 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_jungle_sapling.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_jungle_sapling.json @@ -3,9 +3,10 @@ "input": { "item": "minecraft:jungle_sapling" }, + "ticks": 1000, "fluid": { "FluidName": "minecraft:water", - "Amount": 500 + "Amount": 1000 }, "output": { "item": "minecraft:jungle_sapling", diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_kelp.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_kelp.json index aeb08e9..49c630a 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_kelp.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_kelp.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:kelp" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_large_fern.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_large_fern.json index ddc86a2..0b559e1 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_large_fern.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_large_fern.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:large_fern" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_lilac.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_lilac.json index bb62e49..7997156 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_lilac.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_lilac.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:lilac" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_lily_of_the_valley.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_lily_of_the_valley.json index 88e3567..0be5b2d 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_lily_of_the_valley.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_lily_of_the_valley.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:lily_of_the_valley" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_mangrove_leaves.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_mangrove_leaves.json index b5eaa4e..83e356f 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_mangrove_leaves.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_mangrove_leaves.json @@ -3,9 +3,10 @@ "input": { "item": "minecraft:mangrove_leaves" }, + "ticks": 1000, "fluid": { "FluidName": "minecraft:water", - "Amount": 500 + "Amount": 1000 }, "output": { "item": "minecraft:mangrove_leaves", diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_melon.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_melon.json index 2489afb..717fc84 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_melon.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_melon.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:melon" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_moss_block.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_moss_block.json index ccb18f6..8ce5a62 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_moss_block.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_moss_block.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:moss_block" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_moss_carpet.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_moss_carpet.json index 362a84a..0534ae1 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_moss_carpet.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_moss_carpet.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:moss_carpet" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_nether_sprouts.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_nether_sprouts.json index 0b59aaa..c181b97 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_nether_sprouts.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_nether_sprouts.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:nether_sprouts" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_nether_wart.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_nether_wart.json index 05beedd..fa28f48 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_nether_wart.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_nether_wart.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:nether_wart" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_oak_leaves.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_oak_leaves.json index 6d58338..68d8375 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_oak_leaves.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_oak_leaves.json @@ -3,9 +3,10 @@ "input": { "item": "minecraft:oak_leaves" }, + "ticks": 1000, "fluid": { "FluidName": "minecraft:water", - "Amount": 500 + "Amount": 1000 }, "output": { "item": "minecraft:oak_leaves", diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_oak_sapling.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_oak_sapling.json index ef34ede..9fdf34a 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_oak_sapling.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_oak_sapling.json @@ -3,9 +3,10 @@ "input": { "item": "minecraft:oak_sapling" }, + "ticks": 1000, "fluid": { "FluidName": "minecraft:water", - "Amount": 500 + "Amount": 1000 }, "output": { "item": "minecraft:oak_sapling", diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_orange_tulip.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_orange_tulip.json index 31ba277..54c1579 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_orange_tulip.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_orange_tulip.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:orange_tulip" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_oxeye_daisy.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_oxeye_daisy.json index a7f0248..9801466 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_oxeye_daisy.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_oxeye_daisy.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:oxeye_daisy" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_peony.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_peony.json index b94a4fc..ed20879 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_peony.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_peony.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:peony" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_pink_tulip.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_pink_tulip.json index e3a109a..55031eb 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_pink_tulip.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_pink_tulip.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:pink_tulip" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_poppy.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_poppy.json index 400001f..cb5ca1b 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_poppy.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_poppy.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:poppy" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_potato.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_potato.json index 8a054b7..808494a 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_potato.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_potato.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:potato" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_pumpkin.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_pumpkin.json index 84953d3..c5d1184 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_pumpkin.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_pumpkin.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:pumpkin" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_red_mushroom.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_red_mushroom.json index 9a9d870..92d865d 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_red_mushroom.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_red_mushroom.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:red_mushroom" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_red_tulip.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_red_tulip.json index 137f2b9..8b611ec 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_red_tulip.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_red_tulip.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:red_tulip" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_rose_bush.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_rose_bush.json index 6ca490b..6c29dc5 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_rose_bush.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_rose_bush.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:rose_bush" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_sea_pickle.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_sea_pickle.json index 59998f3..1e9c726 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_sea_pickle.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_sea_pickle.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:sea_pickle" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_seagrass.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_seagrass.json index d1991df..3a67862 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_seagrass.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_seagrass.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:seagrass" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_small_dripleaf.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_small_dripleaf.json index 25e171e..f7b9f73 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_small_dripleaf.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_small_dripleaf.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:small_dripleaf" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_spore_blossom.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_spore_blossom.json index d9af8f2..751df1c 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_spore_blossom.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_spore_blossom.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:spore_blossom" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_spruce_leaves.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_spruce_leaves.json index ded4be1..f89e32f 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_spruce_leaves.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_spruce_leaves.json @@ -3,9 +3,10 @@ "input": { "item": "minecraft:spruce_leaves" }, + "ticks": 1000, "fluid": { "FluidName": "minecraft:water", - "Amount": 500 + "Amount": 1000 }, "output": { "item": "minecraft:spruce_leaves", diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_spruce_sapling.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_spruce_sapling.json index d9bc9c9..40d23cd 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_spruce_sapling.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_spruce_sapling.json @@ -3,9 +3,10 @@ "input": { "item": "minecraft:spruce_sapling" }, + "ticks": 1000, "fluid": { "FluidName": "minecraft:water", - "Amount": 500 + "Amount": 1000 }, "output": { "item": "minecraft:spruce_sapling", diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_sugar_cane.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_sugar_cane.json index 5e3736d..f097b8e 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_sugar_cane.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_sugar_cane.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:sugar_cane" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_sunflower.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_sunflower.json index 224fa2d..f120e4c 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_sunflower.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_sunflower.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:sunflower" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_tall_grass.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_tall_grass.json index 847795a..b99673a 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_tall_grass.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_tall_grass.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:tall_grass" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_twisting_vines.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_twisting_vines.json index 35c796a..2ccdb2c 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_twisting_vines.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_twisting_vines.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:twisting_vines" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_vine.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_vine.json index ae9917b..a3c2a3e 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_vine.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_vine.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:vine" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_warped_fungus.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_warped_fungus.json index dda4c1b..6c808b3 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_warped_fungus.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_warped_fungus.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:warped_fungus" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_warped_roots.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_warped_roots.json index 1a76a4c..bc8570c 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_warped_roots.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_warped_roots.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:warped_roots" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_weeping_vines.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_weeping_vines.json index 229e663..ef37889 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_weeping_vines.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_weeping_vines.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:weeping_vines" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_wheat_seeds.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_wheat_seeds.json index af4c6a9..8950aa4 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_wheat_seeds.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_wheat_seeds.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:wheat_seeds" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_white_tulip.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_white_tulip.json index 984bed2..49a2a14 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_white_tulip.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_white_tulip.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:white_tulip" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_wither_rose.json b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_wither_rose.json index b2a6515..2488a0d 100644 --- a/src/main/resources/data/utamacraft/recipes/insolator_minecraft_wither_rose.json +++ b/src/main/resources/data/utamacraft/recipes/insolator_minecraft_wither_rose.json @@ -3,6 +3,7 @@ "input": { "item": "minecraft:wither_rose" }, + "ticks": 500, "fluid": { "FluidName": "minecraft:water", "Amount": 500 diff --git a/tools/generate-insolator-recipes.py b/tools/generate-insolator-recipes.py index f782b97..df526f0 100644 --- a/tools/generate-insolator-recipes.py +++ b/tools/generate-insolator-recipes.py @@ -77,15 +77,33 @@ ITEMS = [ # "minecraft:torchflower", TODO: 1.20 ] +def basicTicksFor(item: str) -> int: + if item.endswith("_leaves") or item.endswith("_sapling"): + return 1000 + return 500 + +def basicWaterFor(item: str) -> int: + if item.endswith("_leaves") or item.endswith("_sapling"): + return 1000 + return 500 + for item in ITEMS: namespace, item_name = item.split(":") with open(f"src/main/resources/data/utamacraft/recipes/insolator_{namespace}_{item_name}.json", "w") as fp: fp.write(json.dumps({ "type": "utamacraft:insolator", "input": { "item": item }, + "ticks": basicTicksFor(item), "fluid": { "FluidName": "minecraft:water", - "Amount": 500 + "Amount": basicWaterFor(item) }, "output": { "item": item, "count": 2 } }, indent=2)) + +with open("insolator-recipes.md", "w") as fp: + for item in ITEMS: + ticks = basicTicksFor(item) + energy = 32 * ticks + water = basicWaterFor(item) + fp.write(f"| [{item}] | {water} | {energy} | {ticks} | {ticks / 20} |\n")