From 38daf7cd501cb7054ec664287b8ef5f03f79671a Mon Sep 17 00:00:00 2001 From: Kai <6061273+Elenterius@users.noreply.github.com> Date: Tue, 22 Jun 2021 14:28:07 +0200 Subject: [PATCH 01/24] changed fuel amount display from percentage to actual integer value --- .../github/elenterius/biomancy/block/ChewerBlock.java | 7 ++++--- .../elenterius/biomancy/block/DecomposerBlock.java | 10 +++++----- .../elenterius/biomancy/block/DigesterBlock.java | 8 +++++--- .../biomancy/client/gui/ChewerContainerScreen.java | 10 +++++----- .../biomancy/client/gui/DecomposerContainerScreen.java | 10 +++++----- .../biomancy/client/gui/DigesterContainerScreen.java | 10 +++++----- .../client/gui/EvolutionPoolContainerScreen.java | 10 +++++----- .../elenterius/biomancy/inventory/ChewerContainer.java | 4 ++++ .../biomancy/inventory/DecomposerContainer.java | 4 ++++ .../biomancy/inventory/DigesterContainer.java | 4 ++++ .../biomancy/inventory/EvolutionPoolContainer.java | 4 ++++ 11 files changed, 50 insertions(+), 31 deletions(-) diff --git a/src/main/java/com/github/elenterius/biomancy/block/ChewerBlock.java b/src/main/java/com/github/elenterius/biomancy/block/ChewerBlock.java index 0c01498df..957bc20ba 100644 --- a/src/main/java/com/github/elenterius/biomancy/block/ChewerBlock.java +++ b/src/main/java/com/github/elenterius/biomancy/block/ChewerBlock.java @@ -25,7 +25,6 @@ import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.shapes.IBooleanFunction; import net.minecraft.util.math.shapes.ISelectionContext; import net.minecraft.util.math.shapes.VoxelShape; @@ -38,6 +37,7 @@ import net.minecraftforge.fml.network.NetworkHooks; import javax.annotation.Nullable; +import java.text.DecimalFormat; import java.util.List; import java.util.stream.Stream; @@ -70,8 +70,9 @@ public void addInformation(ItemStack stack, @Nullable IBlockReader worldIn, List CompoundNBT nbt = stack.getChildTag("BlockEntityTag"); if (nbt != null) { tooltip.add(ClientTextUtil.EMPTY_LINE_HACK()); - int mainFuel = (int) (MathHelper.clamp(nbt.getShort(ChewerStateData.NBT_KEY_FUEL) / (float) ChewerTileEntity.MAX_FUEL, 0f, 1f) * 100); - tooltip.add(TextUtil.getTranslationText("tooltip", "biofuel").appendString(": " + mainFuel + "%")); + int fuel = nbt.getShort(ChewerStateData.NBT_KEY_FUEL); + DecimalFormat df = ClientTextUtil.getDecimalFormatter("#,###,###"); + tooltip.add(TextUtil.getTranslationText("tooltip", "biofuel").appendString(String.format(": %s/%s", df.format(fuel), df.format(ChewerTileEntity.MAX_FUEL)))); } super.addInformation(stack, worldIn, tooltip, flagIn); } diff --git a/src/main/java/com/github/elenterius/biomancy/block/DecomposerBlock.java b/src/main/java/com/github/elenterius/biomancy/block/DecomposerBlock.java index f2b7323f6..2675fa352 100644 --- a/src/main/java/com/github/elenterius/biomancy/block/DecomposerBlock.java +++ b/src/main/java/com/github/elenterius/biomancy/block/DecomposerBlock.java @@ -2,6 +2,7 @@ import com.github.elenterius.biomancy.init.ModBlocks; import com.github.elenterius.biomancy.tileentity.DecomposerTileEntity; +import com.github.elenterius.biomancy.tileentity.state.DecomposerStateData; import com.github.elenterius.biomancy.util.ClientTextUtil; import com.github.elenterius.biomancy.util.TextUtil; import com.github.elenterius.biomancy.util.VoxelShapeUtil; @@ -24,7 +25,6 @@ import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.shapes.IBooleanFunction; import net.minecraft.util.math.shapes.ISelectionContext; import net.minecraft.util.math.shapes.VoxelShape; @@ -37,6 +37,7 @@ import net.minecraftforge.fml.network.NetworkHooks; import javax.annotation.Nullable; +import java.text.DecimalFormat; import java.util.List; import java.util.stream.Stream; @@ -69,10 +70,9 @@ public void addInformation(ItemStack stack, @Nullable IBlockReader worldIn, List CompoundNBT nbt = stack.getChildTag("BlockEntityTag"); if (nbt != null) { tooltip.add(ClientTextUtil.EMPTY_LINE_HACK()); - int mainFuel = (int) (MathHelper.clamp(nbt.getShort("MainFuel") / (float) DecomposerTileEntity.MAX_FUEL, 0f, 1f) * 100); - int speedFuel = (int) (MathHelper.clamp(nbt.getShort("SpeedFuel") / (float) DecomposerTileEntity.MAX_FUEL, 0f, 1f) * 100); - tooltip.add(TextUtil.getTranslationText("tooltip", "biofuel").appendString(": " + mainFuel + "%")); - tooltip.add(TextUtil.getTranslationText("tooltip", "speed_fuel").appendString(": " + speedFuel + "%")); + int fuel = nbt.getShort(DecomposerStateData.NBT_KEY_MAIN_FUEL); + DecimalFormat df = ClientTextUtil.getDecimalFormatter("#,###,###"); + tooltip.add(TextUtil.getTranslationText("tooltip", "biofuel").appendString(String.format(": %s/%s", df.format(fuel), df.format(DecomposerTileEntity.MAX_FUEL)))); } super.addInformation(stack, worldIn, tooltip, flagIn); } diff --git a/src/main/java/com/github/elenterius/biomancy/block/DigesterBlock.java b/src/main/java/com/github/elenterius/biomancy/block/DigesterBlock.java index d4aab8d33..5bc19e53f 100644 --- a/src/main/java/com/github/elenterius/biomancy/block/DigesterBlock.java +++ b/src/main/java/com/github/elenterius/biomancy/block/DigesterBlock.java @@ -24,7 +24,6 @@ import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.shapes.IBooleanFunction; import net.minecraft.util.math.shapes.ISelectionContext; import net.minecraft.util.math.shapes.VoxelShape; @@ -38,6 +37,7 @@ import net.minecraftforge.fml.network.NetworkHooks; import javax.annotation.Nullable; +import java.text.DecimalFormat; import java.util.List; import java.util.stream.Stream; @@ -71,8 +71,10 @@ public void addInformation(ItemStack stack, @Nullable IBlockReader worldIn, List if (nbt != null) { tooltip.add(ClientTextUtil.EMPTY_LINE_HACK()); CompoundNBT fuelNbt = nbt.getCompound(DigesterStateData.NBT_KEY_FUEL); - int mainFuel = (int) (MathHelper.clamp(fuelNbt.getInt("Amount") / (float) DigesterTileEntity.MAX_FUEL, 0f, 1f) * 100); - tooltip.add(new TranslationTextComponent("fluid." + fuelNbt.getString("FluidName").replace(":", ".").replace("/", ".")).appendString(": " + mainFuel + "%")); + int fuel = fuelNbt.getInt("Amount"); + String translationKey = "fluid." + fuelNbt.getString("FluidName").replace(":", ".").replace("/", "."); + DecimalFormat df = ClientTextUtil.getDecimalFormatter("#,###,###"); + tooltip.add(new TranslationTextComponent(translationKey).appendString(String.format(": %s/%s", df.format(fuel), df.format(DigesterTileEntity.MAX_FUEL)))); } super.addInformation(stack, worldIn, tooltip, flagIn); } diff --git a/src/main/java/com/github/elenterius/biomancy/client/gui/ChewerContainerScreen.java b/src/main/java/com/github/elenterius/biomancy/client/gui/ChewerContainerScreen.java index 381662e4f..083e05b67 100644 --- a/src/main/java/com/github/elenterius/biomancy/client/gui/ChewerContainerScreen.java +++ b/src/main/java/com/github/elenterius/biomancy/client/gui/ChewerContainerScreen.java @@ -3,6 +3,7 @@ import com.github.elenterius.biomancy.BiomancyMod; import com.github.elenterius.biomancy.client.gui.drawable.ProgressBar; import com.github.elenterius.biomancy.inventory.ChewerContainer; +import com.github.elenterius.biomancy.util.ClientTextUtil; import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.gui.screen.inventory.ContainerScreen; @@ -10,9 +11,8 @@ import net.minecraft.util.ResourceLocation; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.TranslationTextComponent; -import net.minecraftforge.client.MinecraftForgeClient; -import java.text.NumberFormat; +import java.text.DecimalFormat; import java.util.ArrayList; import java.util.List; @@ -65,9 +65,9 @@ protected void renderHoveredTooltip(MatrixStack matrixStack, int mouseX, int mou List hoveringText = new ArrayList<>(); if (progressBar.isMouseInside(guiLeft, guiTop, mouseX, mouseY)) { - float fuel = container.getFuelNormalized(); - NumberFormat percentFormatter = NumberFormat.getPercentInstance(MinecraftForgeClient.getLocale()); - hoveringText.add(new TranslationTextComponent(container.getFuelTranslationKey()).appendString(": " + percentFormatter.format(fuel))); + int fuel = container.getFuel(); + DecimalFormat df = ClientTextUtil.getDecimalFormatter("#,###,###"); + hoveringText.add(new TranslationTextComponent(container.getFuelTranslationKey()).appendString(": " + df.format(fuel))); } if (!hoveringText.isEmpty()) { diff --git a/src/main/java/com/github/elenterius/biomancy/client/gui/DecomposerContainerScreen.java b/src/main/java/com/github/elenterius/biomancy/client/gui/DecomposerContainerScreen.java index 2dfe06a1b..29c21a814 100644 --- a/src/main/java/com/github/elenterius/biomancy/client/gui/DecomposerContainerScreen.java +++ b/src/main/java/com/github/elenterius/biomancy/client/gui/DecomposerContainerScreen.java @@ -3,6 +3,7 @@ import com.github.elenterius.biomancy.BiomancyMod; import com.github.elenterius.biomancy.client.gui.drawable.ProgressBar; import com.github.elenterius.biomancy.inventory.DecomposerContainer; +import com.github.elenterius.biomancy.util.ClientTextUtil; import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.gui.screen.inventory.ContainerScreen; @@ -10,9 +11,8 @@ import net.minecraft.util.ResourceLocation; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.TranslationTextComponent; -import net.minecraftforge.client.MinecraftForgeClient; -import java.text.NumberFormat; +import java.text.DecimalFormat; import java.util.ArrayList; import java.util.List; @@ -65,9 +65,9 @@ protected void renderHoveredTooltip(MatrixStack matrixStack, int mouseX, int mou List hoveringText = new ArrayList<>(); if (progressBar.isMouseInside(guiLeft, guiTop, mouseX, mouseY)) { - float fuel = container.getFuelNormalized(); - NumberFormat percentFormatter = NumberFormat.getPercentInstance(MinecraftForgeClient.getLocale()); - hoveringText.add(new TranslationTextComponent(container.getFuelTranslationKey()).appendString(": " + percentFormatter.format(fuel))); + int fuel = container.getFuel(); + DecimalFormat df = ClientTextUtil.getDecimalFormatter("#,###,###"); + hoveringText.add(new TranslationTextComponent(container.getFuelTranslationKey()).appendString(": " + df.format(fuel))); } if (!hoveringText.isEmpty()) { diff --git a/src/main/java/com/github/elenterius/biomancy/client/gui/DigesterContainerScreen.java b/src/main/java/com/github/elenterius/biomancy/client/gui/DigesterContainerScreen.java index 1f6cc1fe3..b2722e1df 100644 --- a/src/main/java/com/github/elenterius/biomancy/client/gui/DigesterContainerScreen.java +++ b/src/main/java/com/github/elenterius/biomancy/client/gui/DigesterContainerScreen.java @@ -3,6 +3,7 @@ import com.github.elenterius.biomancy.BiomancyMod; import com.github.elenterius.biomancy.client.gui.drawable.ProgressBar; import com.github.elenterius.biomancy.inventory.DigesterContainer; +import com.github.elenterius.biomancy.util.ClientTextUtil; import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.gui.screen.inventory.ContainerScreen; @@ -10,9 +11,8 @@ import net.minecraft.util.ResourceLocation; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.TranslationTextComponent; -import net.minecraftforge.client.MinecraftForgeClient; -import java.text.NumberFormat; +import java.text.DecimalFormat; import java.util.ArrayList; import java.util.List; @@ -65,9 +65,9 @@ protected void renderHoveredTooltip(MatrixStack matrixStack, int mouseX, int mou List hoveringText = new ArrayList<>(); if (progressBar.isMouseInside(guiLeft, guiTop, mouseX, mouseY)) { - float fuel = container.getFuelNormalized(); - NumberFormat percentFormatter = NumberFormat.getPercentInstance(MinecraftForgeClient.getLocale()); - hoveringText.add(new TranslationTextComponent(container.getFuelTranslationKey()).appendString(": " + percentFormatter.format(fuel))); + int fuel = container.getFuel(); + DecimalFormat df = ClientTextUtil.getDecimalFormatter("#,###,###"); + hoveringText.add(new TranslationTextComponent(container.getFuelTranslationKey()).appendString(": " + df.format(fuel))); } if (!hoveringText.isEmpty()) { diff --git a/src/main/java/com/github/elenterius/biomancy/client/gui/EvolutionPoolContainerScreen.java b/src/main/java/com/github/elenterius/biomancy/client/gui/EvolutionPoolContainerScreen.java index 6e9a4f4dc..7ee6ad390 100644 --- a/src/main/java/com/github/elenterius/biomancy/client/gui/EvolutionPoolContainerScreen.java +++ b/src/main/java/com/github/elenterius/biomancy/client/gui/EvolutionPoolContainerScreen.java @@ -3,6 +3,7 @@ import com.github.elenterius.biomancy.BiomancyMod; import com.github.elenterius.biomancy.client.gui.drawable.ProgressBar; import com.github.elenterius.biomancy.inventory.EvolutionPoolContainer; +import com.github.elenterius.biomancy.util.ClientTextUtil; import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.gui.screen.inventory.ContainerScreen; @@ -10,9 +11,8 @@ import net.minecraft.util.ResourceLocation; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.TranslationTextComponent; -import net.minecraftforge.client.MinecraftForgeClient; -import java.text.NumberFormat; +import java.text.DecimalFormat; import java.util.ArrayList; import java.util.List; @@ -65,9 +65,9 @@ protected void renderHoveredTooltip(MatrixStack matrixStack, int mouseX, int mou List hoveringText = new ArrayList<>(); if (progressBar.isMouseInside(guiLeft, guiTop, mouseX, mouseY)) { - float fuel = container.getFuelNormalized(); - NumberFormat percentFormatter = NumberFormat.getPercentInstance(MinecraftForgeClient.getLocale()); - hoveringText.add(new TranslationTextComponent(container.getFuelTranslationKey()).appendString(": " + percentFormatter.format(fuel))); + int fuel = container.getFuel(); + DecimalFormat df = ClientTextUtil.getDecimalFormatter("#,###,###"); + hoveringText.add(new TranslationTextComponent(container.getFuelTranslationKey()).appendString(": " + df.format(fuel))); } if (!hoveringText.isEmpty()) { diff --git a/src/main/java/com/github/elenterius/biomancy/inventory/ChewerContainer.java b/src/main/java/com/github/elenterius/biomancy/inventory/ChewerContainer.java index 95dcfb4e9..7af1f52e1 100644 --- a/src/main/java/com/github/elenterius/biomancy/inventory/ChewerContainer.java +++ b/src/main/java/com/github/elenterius/biomancy/inventory/ChewerContainer.java @@ -95,6 +95,10 @@ public float getCraftingProgressNormalized() { return MathHelper.clamp(stateData.timeElapsed / (float) stateData.timeForCompletion, 0f, 1f); } + public int getFuel() { + return stateData.fuel; + } + public float getFuelNormalized() { return MathHelper.clamp(stateData.fuel / (float) ChewerTileEntity.MAX_FUEL, 0f, 1f); } diff --git a/src/main/java/com/github/elenterius/biomancy/inventory/DecomposerContainer.java b/src/main/java/com/github/elenterius/biomancy/inventory/DecomposerContainer.java index b390599ef..a7eb3d1da 100644 --- a/src/main/java/com/github/elenterius/biomancy/inventory/DecomposerContainer.java +++ b/src/main/java/com/github/elenterius/biomancy/inventory/DecomposerContainer.java @@ -105,6 +105,10 @@ public float getCraftingProgressNormalized() { return MathHelper.clamp(decomposerState.timeElapsed / (float) decomposerState.timeForCompletion, 0f, 1f); } + public int getFuel() { + return decomposerState.mainFuel; + } + public float getFuelNormalized() { return MathHelper.clamp(decomposerState.mainFuel / (float) DecomposerTileEntity.MAX_FUEL, 0f, 1f); } diff --git a/src/main/java/com/github/elenterius/biomancy/inventory/DigesterContainer.java b/src/main/java/com/github/elenterius/biomancy/inventory/DigesterContainer.java index 9ef7ce1c5..d639350d3 100644 --- a/src/main/java/com/github/elenterius/biomancy/inventory/DigesterContainer.java +++ b/src/main/java/com/github/elenterius/biomancy/inventory/DigesterContainer.java @@ -98,6 +98,10 @@ public float getCraftingProgressNormalized() { return MathHelper.clamp(stateData.timeElapsed / (float) stateData.timeForCompletion, 0f, 1f); } + public int getFuel() { + return stateData.fuel.getFluidAmount(); + } + public float getFuelNormalized() { return MathHelper.clamp(stateData.fuel.getFluidAmount() / (float) stateData.fuel.getCapacity(), 0f, 1f); } diff --git a/src/main/java/com/github/elenterius/biomancy/inventory/EvolutionPoolContainer.java b/src/main/java/com/github/elenterius/biomancy/inventory/EvolutionPoolContainer.java index 17d3e3a3e..911ee38c1 100644 --- a/src/main/java/com/github/elenterius/biomancy/inventory/EvolutionPoolContainer.java +++ b/src/main/java/com/github/elenterius/biomancy/inventory/EvolutionPoolContainer.java @@ -101,6 +101,10 @@ public float getCraftingProgressNormalized() { return MathHelper.clamp(stateData.timeElapsed / (float) stateData.timeForCompletion, 0f, 1f); } + public int getFuel() { + return stateData.fuel; + } + public float getFuelNormalized() { return MathHelper.clamp(stateData.fuel / (float) EvolutionPoolTileEntity.MAX_FUEL, 0f, 1f); } From 80eccdcfde66fcd10418ae7e4cb43102c2ab0356 Mon Sep 17 00:00:00 2001 From: Kai <6061273+Elenterius@users.noreply.github.com> Date: Wed, 23 Jun 2021 00:51:38 +0200 Subject: [PATCH 02/24] refactored bio-machines, fixed hoppers being able to insert non fuel items into fuel slots, fixed bio-machines starting to craft recipes while not having enough fuel, added redstone signal to bio-machines --- .../biomancy/block/ChewerBlock.java | 80 +----- .../biomancy/block/DecomposerBlock.java | 80 +----- .../biomancy/block/DigesterBlock.java | 80 +----- .../biomancy/block/EvolutionPoolBlock.java | 9 +- .../biomancy/block/MachineBlock.java | 133 ++++++++++ .../InputFilterItemStackHandler.java | 61 +++++ .../elenterius/biomancy/init/ModRecipes.java | 17 +- .../jei/DecomposerRecipeCategory.java | 2 +- .../biomancy/inventory/ChewerContainer.java | 14 +- .../inventory/DecomposerContainer.java | 18 +- .../biomancy/inventory/DigesterContainer.java | 6 +- .../inventory/EvolutionPoolContainer.java | 6 +- .../biomancy/inventory/FuelInvContents.java | 31 +++ .../biomancy/inventory/SimpleInvContents.java | 7 + .../recipe/AbstractBioMechanicalRecipe.java | 38 +++ .../recipe/BioMechanicalRecipeType.java | 41 ++++ .../biomancy/recipe/ChewerRecipe.java | 25 +- .../biomancy/recipe/DecomposerRecipe.java | 20 +- .../biomancy/recipe/DigesterRecipe.java | 25 +- .../biomancy/recipe/EvolutionPoolRecipe.java | 20 +- .../biomancy/tileentity/ChewerTileEntity.java | 196 +++++---------- .../tileentity/DecomposerTileEntity.java | 219 +++++------------ .../tileentity/DigesterTileEntity.java | 205 +++++++--------- .../tileentity/EvolutionPoolTileEntity.java | 231 +++++++----------- .../tileentity/MachineTileEntity.java | 203 +++++++++++++++ .../tileentity/state/ChewerStateData.java | 31 +-- .../tileentity/state/DecomposerStateData.java | 40 +-- .../tileentity/state/DigesterStateData.java | 32 +-- .../state/EvolutionPoolStateData.java | 32 +-- .../state/RecipeCraftingStateData.java | 43 +++- 30 files changed, 944 insertions(+), 1001 deletions(-) create mode 100644 src/main/java/com/github/elenterius/biomancy/block/MachineBlock.java create mode 100644 src/main/java/com/github/elenterius/biomancy/capabilities/InputFilterItemStackHandler.java create mode 100644 src/main/java/com/github/elenterius/biomancy/inventory/FuelInvContents.java create mode 100644 src/main/java/com/github/elenterius/biomancy/recipe/AbstractBioMechanicalRecipe.java create mode 100644 src/main/java/com/github/elenterius/biomancy/recipe/BioMechanicalRecipeType.java create mode 100644 src/main/java/com/github/elenterius/biomancy/tileentity/MachineTileEntity.java diff --git a/src/main/java/com/github/elenterius/biomancy/block/ChewerBlock.java b/src/main/java/com/github/elenterius/biomancy/block/ChewerBlock.java index 957bc20ba..db6f049cb 100644 --- a/src/main/java/com/github/elenterius/biomancy/block/ChewerBlock.java +++ b/src/main/java/com/github/elenterius/biomancy/block/ChewerBlock.java @@ -1,50 +1,33 @@ package com.github.elenterius.biomancy.block; -import com.github.elenterius.biomancy.init.ModBlocks; import com.github.elenterius.biomancy.tileentity.ChewerTileEntity; import com.github.elenterius.biomancy.tileentity.state.ChewerStateData; import com.github.elenterius.biomancy.util.ClientTextUtil; import com.github.elenterius.biomancy.util.TextUtil; import com.github.elenterius.biomancy.util.VoxelShapeUtil; -import net.minecraft.block.Block; import net.minecraft.block.BlockRenderType; import net.minecraft.block.BlockState; import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.inventory.container.INamedContainerProvider; -import net.minecraft.item.BlockItemUseContext; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; -import net.minecraft.state.BooleanProperty; -import net.minecraft.state.DirectionProperty; -import net.minecraft.state.StateContainer; -import net.minecraft.state.properties.BlockStateProperties; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.*; +import net.minecraft.util.Direction; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; import net.minecraft.util.math.shapes.IBooleanFunction; import net.minecraft.util.math.shapes.ISelectionContext; import net.minecraft.util.math.shapes.VoxelShape; import net.minecraft.util.math.shapes.VoxelShapes; import net.minecraft.util.text.ITextComponent; import net.minecraft.world.IBlockReader; -import net.minecraft.world.World; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.fml.network.NetworkHooks; import javax.annotation.Nullable; import java.text.DecimalFormat; import java.util.List; import java.util.stream.Stream; -public class ChewerBlock extends OwnableContainerBlock { - - public static final BooleanProperty CRAFTING = ModBlocks.CRAFTING_PROPERTY; - public static final DirectionProperty FACING = BlockStateProperties.HORIZONTAL_FACING; +public class ChewerBlock extends MachineBlock { public static final VoxelShape NORTH_SHAPE = createVoxelShape(Direction.NORTH); public static final VoxelShape SOUTH_SHAPE = createVoxelShape(Direction.SOUTH); @@ -53,7 +36,6 @@ public class ChewerBlock extends OwnableContainerBlock { public ChewerBlock(Properties builder) { super(builder); - setDefaultState(stateContainer.getBaseState().with(CRAFTING, false).with(FACING, Direction.NORTH)); } private static VoxelShape createVoxelShape(Direction direction) { @@ -63,6 +45,12 @@ private static VoxelShape createVoxelShape(Direction direction) { return Stream.of(VoxelShapeUtil.createWithFacing(direction, aabb0), VoxelShapeUtil.createWithFacing(direction, aabb1), VoxelShapeUtil.createWithFacing(direction, aabb2)).reduce((v1, v2) -> VoxelShapes.combineAndSimplify(v1, v2, IBooleanFunction.OR)).get(); } + @Nullable + @Override + public ChewerTileEntity createNewTileEntity(IBlockReader worldIn) { + return new ChewerTileEntity(); + } + @OnlyIn(Dist.CLIENT) @Override public void addInformation(ItemStack stack, @Nullable IBlockReader worldIn, List tooltip, ITooltipFlag flagIn) { @@ -77,58 +65,6 @@ public void addInformation(ItemStack stack, @Nullable IBlockReader worldIn, List super.addInformation(stack, worldIn, tooltip, flagIn); } - @Override - protected void fillStateContainer(StateContainer.Builder builder) { - builder.add(CRAFTING, FACING); - } - - @Override - public BlockState getStateForPlacement(BlockItemUseContext context) { - return getDefaultState().with(FACING, context.getPlacementHorizontalFacing().getOpposite()); - } - - @Override - public void onReplaced(BlockState state, World world, BlockPos blockPos, BlockState newState, boolean isMoving) { - if (state.getBlock() != newState.getBlock()) { - TileEntity tileEntity = world.getTileEntity(blockPos); - if (tileEntity instanceof ChewerTileEntity) { - ((ChewerTileEntity) tileEntity).dropAllInvContents(world, blockPos); - } - super.onReplaced(state, world, blockPos, newState, isMoving); - } - } - - @Override - public ActionResultType onBlockActivated(BlockState state, World worldIn, BlockPos pos, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { - if (worldIn.isRemote()) return ActionResultType.SUCCESS; - - //TODO: verify that authorization works - INamedContainerProvider containerProvider = getContainer(state, worldIn, pos); - if (containerProvider != null && player instanceof ServerPlayerEntity) { - ServerPlayerEntity serverPlayerEntity = (ServerPlayerEntity) player; - NetworkHooks.openGui(serverPlayerEntity, containerProvider, (packetBuffer) -> {}); - return ActionResultType.SUCCESS; - } - - return ActionResultType.FAIL; - } - - @Nullable - @Override - public TileEntity createNewTileEntity(IBlockReader worldIn) { - return new ChewerTileEntity(); - } - - @Override - public BlockState rotate(BlockState state, Rotation rot) { - return state.with(FACING, rot.rotate(state.get(FACING))); - } - - @Override - public BlockState mirror(BlockState state, Mirror mirrorIn) { - return state.rotate(mirrorIn.toRotation(state.get(FACING))); - } - @Override public BlockRenderType getRenderType(BlockState state) { return BlockRenderType.MODEL; diff --git a/src/main/java/com/github/elenterius/biomancy/block/DecomposerBlock.java b/src/main/java/com/github/elenterius/biomancy/block/DecomposerBlock.java index 2675fa352..1441cbd98 100644 --- a/src/main/java/com/github/elenterius/biomancy/block/DecomposerBlock.java +++ b/src/main/java/com/github/elenterius/biomancy/block/DecomposerBlock.java @@ -1,50 +1,33 @@ package com.github.elenterius.biomancy.block; -import com.github.elenterius.biomancy.init.ModBlocks; import com.github.elenterius.biomancy.tileentity.DecomposerTileEntity; import com.github.elenterius.biomancy.tileentity.state.DecomposerStateData; import com.github.elenterius.biomancy.util.ClientTextUtil; import com.github.elenterius.biomancy.util.TextUtil; import com.github.elenterius.biomancy.util.VoxelShapeUtil; -import net.minecraft.block.Block; import net.minecraft.block.BlockRenderType; import net.minecraft.block.BlockState; import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.inventory.container.INamedContainerProvider; -import net.minecraft.item.BlockItemUseContext; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; -import net.minecraft.state.BooleanProperty; -import net.minecraft.state.DirectionProperty; -import net.minecraft.state.StateContainer; -import net.minecraft.state.properties.BlockStateProperties; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.*; +import net.minecraft.util.Direction; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; import net.minecraft.util.math.shapes.IBooleanFunction; import net.minecraft.util.math.shapes.ISelectionContext; import net.minecraft.util.math.shapes.VoxelShape; import net.minecraft.util.math.shapes.VoxelShapes; import net.minecraft.util.text.ITextComponent; import net.minecraft.world.IBlockReader; -import net.minecraft.world.World; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.fml.network.NetworkHooks; import javax.annotation.Nullable; import java.text.DecimalFormat; import java.util.List; import java.util.stream.Stream; -public class DecomposerBlock extends OwnableContainerBlock { - - public static final BooleanProperty DECOMPOSING = ModBlocks.CRAFTING_PROPERTY; - public static final DirectionProperty FACING = BlockStateProperties.HORIZONTAL_FACING; +public class DecomposerBlock extends MachineBlock { public static final VoxelShape NORTH_SHAPE = createVoxelShape(Direction.NORTH); public static final VoxelShape SOUTH_SHAPE = createVoxelShape(Direction.SOUTH); @@ -53,7 +36,6 @@ public class DecomposerBlock extends OwnableContainerBlock { public DecomposerBlock(Properties builder) { super(builder); - setDefaultState(stateContainer.getBaseState().with(DECOMPOSING, false).with(FACING, Direction.NORTH)); } private static VoxelShape createVoxelShape(Direction direction) { @@ -63,6 +45,12 @@ private static VoxelShape createVoxelShape(Direction direction) { return Stream.of(VoxelShapeUtil.createWithFacing(direction, aabb0), VoxelShapeUtil.createWithFacing(direction, aabb1), VoxelShapeUtil.createWithFacing(direction, aabb2)).reduce((v1, v2) -> VoxelShapes.combineAndSimplify(v1, v2, IBooleanFunction.OR)).get(); } + @Nullable + @Override + public DecomposerTileEntity createNewTileEntity(IBlockReader worldIn) { + return new DecomposerTileEntity(); + } + @OnlyIn(Dist.CLIENT) @Override public void addInformation(ItemStack stack, @Nullable IBlockReader worldIn, List tooltip, ITooltipFlag flagIn) { @@ -77,58 +65,6 @@ public void addInformation(ItemStack stack, @Nullable IBlockReader worldIn, List super.addInformation(stack, worldIn, tooltip, flagIn); } - @Override - protected void fillStateContainer(StateContainer.Builder builder) { - builder.add(DECOMPOSING, FACING); - } - - @Override - public BlockState getStateForPlacement(BlockItemUseContext context) { - return getDefaultState().with(FACING, context.getPlacementHorizontalFacing().getOpposite()); - } - - @Override - public void onReplaced(BlockState state, World world, BlockPos blockPos, BlockState newState, boolean isMoving) { - if (state.getBlock() != newState.getBlock()) { - TileEntity tileEntity = world.getTileEntity(blockPos); - if (tileEntity instanceof DecomposerTileEntity) { - ((DecomposerTileEntity) tileEntity).dropAllInvContents(world, blockPos); - } - super.onReplaced(state, world, blockPos, newState, isMoving); - } - } - - @Override - public ActionResultType onBlockActivated(BlockState state, World worldIn, BlockPos pos, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { - if (worldIn.isRemote()) return ActionResultType.SUCCESS; - - //TODO: verify that authorization works - INamedContainerProvider containerProvider = getContainer(state, worldIn, pos); - if (containerProvider != null && player instanceof ServerPlayerEntity) { - ServerPlayerEntity serverPlayerEntity = (ServerPlayerEntity) player; - NetworkHooks.openGui(serverPlayerEntity, containerProvider, (packetBuffer) -> {}); - return ActionResultType.SUCCESS; - } - - return ActionResultType.FAIL; - } - - @Nullable - @Override - public TileEntity createNewTileEntity(IBlockReader worldIn) { - return new DecomposerTileEntity(); - } - - @Override - public BlockState rotate(BlockState state, Rotation rot) { - return state.with(FACING, rot.rotate(state.get(FACING))); - } - - @Override - public BlockState mirror(BlockState state, Mirror mirrorIn) { - return state.rotate(mirrorIn.toRotation(state.get(FACING))); - } - @Override public BlockRenderType getRenderType(BlockState state) { return BlockRenderType.MODEL; diff --git a/src/main/java/com/github/elenterius/biomancy/block/DigesterBlock.java b/src/main/java/com/github/elenterius/biomancy/block/DigesterBlock.java index 5bc19e53f..25dc42835 100644 --- a/src/main/java/com/github/elenterius/biomancy/block/DigesterBlock.java +++ b/src/main/java/com/github/elenterius/biomancy/block/DigesterBlock.java @@ -1,29 +1,17 @@ package com.github.elenterius.biomancy.block; -import com.github.elenterius.biomancy.init.ModBlocks; import com.github.elenterius.biomancy.tileentity.DigesterTileEntity; import com.github.elenterius.biomancy.tileentity.state.DigesterStateData; import com.github.elenterius.biomancy.util.ClientTextUtil; import com.github.elenterius.biomancy.util.VoxelShapeUtil; -import net.minecraft.block.Block; import net.minecraft.block.BlockRenderType; import net.minecraft.block.BlockState; import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.inventory.container.INamedContainerProvider; -import net.minecraft.item.BlockItemUseContext; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; -import net.minecraft.state.BooleanProperty; -import net.minecraft.state.DirectionProperty; -import net.minecraft.state.StateContainer; -import net.minecraft.state.properties.BlockStateProperties; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.*; +import net.minecraft.util.Direction; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; import net.minecraft.util.math.shapes.IBooleanFunction; import net.minecraft.util.math.shapes.ISelectionContext; import net.minecraft.util.math.shapes.VoxelShape; @@ -31,20 +19,15 @@ import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.TranslationTextComponent; import net.minecraft.world.IBlockReader; -import net.minecraft.world.World; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.fml.network.NetworkHooks; import javax.annotation.Nullable; import java.text.DecimalFormat; import java.util.List; import java.util.stream.Stream; -public class DigesterBlock extends OwnableContainerBlock { - - public static final BooleanProperty CRAFTING = ModBlocks.CRAFTING_PROPERTY; - public static final DirectionProperty FACING = BlockStateProperties.HORIZONTAL_FACING; +public class DigesterBlock extends MachineBlock { public static final VoxelShape NORTH_SHAPE = createVoxelShape(Direction.NORTH); public static final VoxelShape SOUTH_SHAPE = createVoxelShape(Direction.SOUTH); @@ -53,7 +36,6 @@ public class DigesterBlock extends OwnableContainerBlock { public DigesterBlock(Properties builder) { super(builder); - setDefaultState(stateContainer.getBaseState().with(CRAFTING, false).with(FACING, Direction.NORTH)); } private static VoxelShape createVoxelShape(Direction direction) { @@ -63,6 +45,12 @@ private static VoxelShape createVoxelShape(Direction direction) { return Stream.of(VoxelShapeUtil.createWithFacing(direction, aabb0), VoxelShapeUtil.createWithFacing(direction, aabb1), VoxelShapeUtil.createWithFacing(direction, aabb2)).reduce((v1, v2) -> VoxelShapes.combineAndSimplify(v1, v2, IBooleanFunction.OR)).get(); } + @Nullable + @Override + public DigesterTileEntity createNewTileEntity(IBlockReader worldIn) { + return new DigesterTileEntity(); + } + @OnlyIn(Dist.CLIENT) @Override public void addInformation(ItemStack stack, @Nullable IBlockReader worldIn, List tooltip, ITooltipFlag flagIn) { @@ -79,58 +67,6 @@ public void addInformation(ItemStack stack, @Nullable IBlockReader worldIn, List super.addInformation(stack, worldIn, tooltip, flagIn); } - @Override - protected void fillStateContainer(StateContainer.Builder builder) { - builder.add(CRAFTING, FACING); - } - - @Override - public BlockState getStateForPlacement(BlockItemUseContext context) { - return getDefaultState().with(FACING, context.getPlacementHorizontalFacing().getOpposite()); - } - - @Override - public void onReplaced(BlockState state, World world, BlockPos blockPos, BlockState newState, boolean isMoving) { - if (state.getBlock() != newState.getBlock()) { - TileEntity tileEntity = world.getTileEntity(blockPos); - if (tileEntity instanceof DigesterTileEntity) { - ((DigesterTileEntity) tileEntity).dropAllInvContents(world, blockPos); - } - super.onReplaced(state, world, blockPos, newState, isMoving); - } - } - - @Override - public ActionResultType onBlockActivated(BlockState state, World worldIn, BlockPos pos, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { - if (worldIn.isRemote()) return ActionResultType.SUCCESS; - - //TODO: verify that authorization works - INamedContainerProvider containerProvider = getContainer(state, worldIn, pos); - if (containerProvider != null && player instanceof ServerPlayerEntity) { - ServerPlayerEntity serverPlayerEntity = (ServerPlayerEntity) player; - NetworkHooks.openGui(serverPlayerEntity, containerProvider, (packetBuffer) -> {}); - return ActionResultType.SUCCESS; - } - - return ActionResultType.FAIL; - } - - @Nullable - @Override - public TileEntity createNewTileEntity(IBlockReader worldIn) { - return new DigesterTileEntity(); - } - - @Override - public BlockState rotate(BlockState state, Rotation rot) { - return state.with(FACING, rot.rotate(state.get(FACING))); - } - - @Override - public BlockState mirror(BlockState state, Mirror mirrorIn) { - return state.rotate(mirrorIn.toRotation(state.get(FACING))); - } - @Override public BlockRenderType getRenderType(BlockState state) { return BlockRenderType.MODEL; diff --git a/src/main/java/com/github/elenterius/biomancy/block/EvolutionPoolBlock.java b/src/main/java/com/github/elenterius/biomancy/block/EvolutionPoolBlock.java index 25c8de3f3..4e85c9450 100644 --- a/src/main/java/com/github/elenterius/biomancy/block/EvolutionPoolBlock.java +++ b/src/main/java/com/github/elenterius/biomancy/block/EvolutionPoolBlock.java @@ -49,7 +49,6 @@ public class EvolutionPoolBlock extends OwnableContainerBlock { public static final EnumProperty MULTI_BLOCK_PART = EnumProperty.create("part", MultiBlockPart.class); public static final BooleanProperty CONTROLLER = BooleanProperty.create("controller"); - public static final BooleanProperty CRAFTING = ModBlocks.CRAFTING_PROPERTY; public static final Direction8[] SORTED_POS_OFFSETS = new Direction8[]{Direction8.NORTH, Direction8.SOUTH, Direction8.WEST, Direction8.EAST, Direction8.NORTH_WEST, Direction8.NORTH_WEST, Direction8.SOUTH_WEST, Direction8.SOUTH_EAST}; public static final VoxelShape FLOOR_SHAPE = Block.makeCuboidShape(0, 0, 0, 16, 3, 16); @@ -73,12 +72,12 @@ public class EvolutionPoolBlock extends OwnableContainerBlock { public EvolutionPoolBlock(Properties properties) { super(properties); - setDefaultState(stateContainer.getBaseState().with(MULTI_BLOCK_PART, MultiBlockPart.MIDDLE).with(CONTROLLER, false).with(CRAFTING, false)); + setDefaultState(stateContainer.getBaseState().with(MULTI_BLOCK_PART, MultiBlockPart.MIDDLE).with(CONTROLLER, false).with(MachineBlock.CRAFTING, false)); } @Override protected void fillStateContainer(StateContainer.Builder builder) { - builder.add(MULTI_BLOCK_PART, CONTROLLER, CRAFTING); + builder.add(MULTI_BLOCK_PART, CONTROLLER, MachineBlock.CRAFTING); } @Nullable @@ -304,7 +303,7 @@ public void onEntityCollision(BlockState state, World worldIn, BlockPos pos, Ent tile = ((OwnableTileEntityDelegator) tile).getDelegate(); } if (tile instanceof EvolutionPoolTileEntity) { - if (EvolutionPoolTileEntity.isItemValidFuel(stack)) { + if (EvolutionPoolTileEntity.VALID_FUEL.test(stack)) { ItemStack remainder = ((EvolutionPoolTileEntity) tile).addFuel(stack); if (remainder.getCount() != stack.getCount()) { ((ItemEntity) entityIn).setItem(remainder); @@ -361,7 +360,7 @@ public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, @OnlyIn(Dist.CLIENT) public void animateTick(BlockState stateIn, World worldIn, BlockPos pos, Random rand) { if (rand.nextInt(4) == 0) { - boolean isCrafting = stateIn.get(CRAFTING); + boolean isCrafting = stateIn.get(MachineBlock.CRAFTING); if (isCrafting) { int n = rand.nextInt(5); MultiBlockPart part = stateIn.get(MULTI_BLOCK_PART); diff --git a/src/main/java/com/github/elenterius/biomancy/block/MachineBlock.java b/src/main/java/com/github/elenterius/biomancy/block/MachineBlock.java new file mode 100644 index 000000000..f7e6f06c4 --- /dev/null +++ b/src/main/java/com/github/elenterius/biomancy/block/MachineBlock.java @@ -0,0 +1,133 @@ +package com.github.elenterius.biomancy.block; + +import com.github.elenterius.biomancy.init.ModBlocks; +import com.github.elenterius.biomancy.tileentity.MachineTileEntity; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.entity.player.ServerPlayerEntity; +import net.minecraft.inventory.container.INamedContainerProvider; +import net.minecraft.item.BlockItemUseContext; +import net.minecraft.state.BooleanProperty; +import net.minecraft.state.DirectionProperty; +import net.minecraft.state.StateContainer; +import net.minecraft.state.properties.BlockStateProperties; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.*; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.BlockRayTraceResult; +import net.minecraft.world.IBlockReader; +import net.minecraft.world.World; +import net.minecraft.world.server.ServerWorld; +import net.minecraftforge.common.util.Constants; +import net.minecraftforge.fml.network.NetworkHooks; + +import javax.annotation.Nullable; +import java.util.Random; + +public abstract class MachineBlock> extends OwnableContainerBlock { + + public static final BooleanProperty CRAFTING = ModBlocks.CRAFTING_PROPERTY; + public static final BooleanProperty POWERED = BlockStateProperties.POWERED; + public static final DirectionProperty FACING = BlockStateProperties.HORIZONTAL_FACING; + + protected MachineBlock(Properties builder) { + super(builder); + setDefaultState(stateContainer.getBaseState().with(POWERED, false).with(CRAFTING, false).with(FACING, Direction.NORTH)); + } + + @Nullable + @Override + public abstract T createNewTileEntity(IBlockReader worldIn); + + @Override + protected void fillStateContainer(StateContainer.Builder builder) { + builder.add(POWERED, CRAFTING, FACING); + } + + @Override + public BlockState getStateForPlacement(BlockItemUseContext context) { + return getDefaultState().with(FACING, context.getPlacementHorizontalFacing().getOpposite()); + } + + @Override + public ActionResultType onBlockActivated(BlockState state, World worldIn, BlockPos pos, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { + if (worldIn.isRemote()) return ActionResultType.SUCCESS; + + //TODO: verify that authorization works + INamedContainerProvider containerProvider = getContainer(state, worldIn, pos); + if (containerProvider != null && player instanceof ServerPlayerEntity) { + ServerPlayerEntity serverPlayerEntity = (ServerPlayerEntity) player; + NetworkHooks.openGui(serverPlayerEntity, containerProvider, (packetBuffer) -> {}); + return ActionResultType.SUCCESS; + } + + return ActionResultType.FAIL; + } + + protected int getRedstoneLevel(BlockState state) { + return state.get(POWERED) ? 15 : 0; + } + + protected int getPoweredDuration() { + return 20; + } + + @Override + public void tick(BlockState state, ServerWorld worldIn, BlockPos pos, Random rand) { + if (state.get(POWERED)) { //after pending block update deactivate redstone + worldIn.setBlockState(pos, state.with(POWERED, Boolean.FALSE), Constants.BlockFlags.DEFAULT); + updateNeighbors(worldIn, pos); + } + } + + @Override + public void onReplaced(BlockState state, World worldIn, BlockPos pos, BlockState newState, boolean isMoving) { + if (!isMoving && !state.matchesBlock(newState.getBlock())) { + if (state.get(POWERED)) { + updateNeighbors(worldIn, pos); + } + TileEntity tileEntity = worldIn.getTileEntity(pos); + if (tileEntity instanceof MachineTileEntity) { + ((MachineTileEntity) tileEntity).dropAllInvContents(worldIn, pos); + } + super.onReplaced(state, worldIn, pos, newState, isMoving); + } + } + + public void powerBlock(World worldIn, BlockPos pos, BlockState state) { + worldIn.setBlockState(pos, state.with(POWERED, Boolean.TRUE), Constants.BlockFlags.DEFAULT); + updateNeighbors(worldIn, pos); + worldIn.getPendingBlockTicks().scheduleTick(pos, this, getPoweredDuration()); + } + + @Override + public int getWeakPower(BlockState blockState, IBlockReader blockAccess, BlockPos pos, Direction side) { + return getRedstoneLevel(blockState); + } + + @Override + public int getStrongPower(BlockState blockState, IBlockReader blockAccess, BlockPos pos, Direction side) { + return getRedstoneLevel(blockState); + } + + @Override + public boolean canProvidePower(BlockState state) { + return true; + } + + protected void updateNeighbors(World worldIn, BlockPos pos) { + worldIn.notifyNeighborsOfStateChange(pos, this); +// worldIn.notifyNeighborsOfStateChange(pos.down(), this); + } + + @Override + public BlockState rotate(BlockState state, Rotation rot) { + return state.with(FACING, rot.rotate(state.get(FACING))); + } + + @Override + public BlockState mirror(BlockState state, Mirror mirrorIn) { + return state.rotate(mirrorIn.toRotation(state.get(FACING))); + } +} diff --git a/src/main/java/com/github/elenterius/biomancy/capabilities/InputFilterItemStackHandler.java b/src/main/java/com/github/elenterius/biomancy/capabilities/InputFilterItemStackHandler.java new file mode 100644 index 000000000..b9ba7e37b --- /dev/null +++ b/src/main/java/com/github/elenterius/biomancy/capabilities/InputFilterItemStackHandler.java @@ -0,0 +1,61 @@ +package com.github.elenterius.biomancy.capabilities; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.items.IItemHandler; +import net.minecraftforge.items.ItemStackHandler; + +import javax.annotation.Nonnull; +import java.util.function.Predicate; + +/** + * Delegator that only allows item insertion of valid items.
+ * Used to expose inventory capabilities that only allow item insertion of specific items. + */ +public class InputFilterItemStackHandler implements IItemHandler { + + private final ItemStackHandler itemStackHandler; + private final Predicate validItems; + + public InputFilterItemStackHandler(ItemStackHandler itemStackHandler, Predicate validItems) { + this.itemStackHandler = itemStackHandler; + this.validItems = validItems; + } + + @Override + public boolean isItemValid(int slot, @Nonnull ItemStack stack) { + return validItems.test(stack); + } + + @Override + @Nonnull + public ItemStack insertItem(int slot, @Nonnull ItemStack stack, boolean simulate) { + if (!validItems.test(stack)) { + return stack; + } + + return itemStackHandler.insertItem(slot, stack, simulate); + } + + @Override + public int getSlots() { + return itemStackHandler.getSlots(); + } + + @Override + @Nonnull + public ItemStack getStackInSlot(int slot) { + return itemStackHandler.getStackInSlot(slot); + } + + @Override + @Nonnull + public ItemStack extractItem(int slot, int amount, boolean simulate) { + return itemStackHandler.extractItem(slot, amount, simulate); + } + + @Override + public int getSlotLimit(int slot) { + return itemStackHandler.getSlotLimit(slot); + } + +} diff --git a/src/main/java/com/github/elenterius/biomancy/init/ModRecipes.java b/src/main/java/com/github/elenterius/biomancy/init/ModRecipes.java index d27fda136..28f763170 100644 --- a/src/main/java/com/github/elenterius/biomancy/init/ModRecipes.java +++ b/src/main/java/com/github/elenterius/biomancy/init/ModRecipes.java @@ -33,10 +33,10 @@ public final class ModRecipes { public static final RegistryObject> DECOMPOSING_SERIALIZER = RECIPE_SERIALIZERS.register("decomposing", DecomposerRecipe.Serializer::new); public static final RegistryObject> EVOLUTION_POOL_SERIALIZER = RECIPE_SERIALIZERS.register("evolution_pool", EvolutionPoolRecipe.Serializer::new); - public static final IRecipeType CHEWER_RECIPE_TYPE = createRecipeType("chewing"); - public static final IRecipeType DIGESTER_RECIPE_TYPE = createRecipeType("digesting"); - public static final IRecipeType DECOMPOSING_RECIPE_TYPE = createRecipeType("decomposing"); - public static final IRecipeType EVOLUTION_POOL_RECIPE_TYPE = createRecipeType("evolution_pool"); + public static final BioMechanicalRecipeType CHEWER_RECIPE_TYPE = createRecipeType("chewing"); + public static final BioMechanicalRecipeType DIGESTER_RECIPE_TYPE = createRecipeType("digesting"); + public static final BioMechanicalRecipeType DECOMPOSING_RECIPE_TYPE = createRecipeType("decomposing"); + public static final BioMechanicalRecipeType EVOLUTION_POOL_RECIPE_TYPE = createRecipeType("evolution_pool"); public static final ImmutableSet>> RECIPE_TYPES = ImmutableSet.of(CHEWER_RECIPE_TYPE, DIGESTER_RECIPE_TYPE, DECOMPOSING_RECIPE_TYPE, EVOLUTION_POOL_RECIPE_TYPE); public static final ItemPredicate ANY_MEATLESS_FOOD_ITEM_PREDICATE = new ItemPredicate() { @@ -69,13 +69,8 @@ public static void registerRecipeTypes() { Registry.register(Registry.RECIPE_TYPE, BiomancyMod.createRL("evolution_pool"), EVOLUTION_POOL_RECIPE_TYPE); } - private static > IRecipeType createRecipeType(String name) { - return new IRecipeType() { - @Override - public String toString() { - return name; - } - }; + private static BioMechanicalRecipeType createRecipeType(String name) { + return new BioMechanicalRecipeType<>(name); } } diff --git a/src/main/java/com/github/elenterius/biomancy/integration/jei/DecomposerRecipeCategory.java b/src/main/java/com/github/elenterius/biomancy/integration/jei/DecomposerRecipeCategory.java index cb88aac36..013ce0475 100644 --- a/src/main/java/com/github/elenterius/biomancy/integration/jei/DecomposerRecipeCategory.java +++ b/src/main/java/com/github/elenterius/biomancy/integration/jei/DecomposerRecipeCategory.java @@ -115,7 +115,7 @@ public void setRecipe(IRecipeLayout layout, DecomposerRecipe recipe, IIngredient @Override public void draw(DecomposerRecipe recipe, MatrixStack matrixStack, double mouseX, double mouseY) { - int ticks = recipe.getDecomposingTime(); + int ticks = recipe.getCraftingTime(); if (ticks > 0) { int seconds = ticks / 20; TranslationTextComponent timeString = new TranslationTextComponent("gui.jei.category.smelting.time.seconds", seconds); diff --git a/src/main/java/com/github/elenterius/biomancy/inventory/ChewerContainer.java b/src/main/java/com/github/elenterius/biomancy/inventory/ChewerContainer.java index 7af1f52e1..17761db6b 100644 --- a/src/main/java/com/github/elenterius/biomancy/inventory/ChewerContainer.java +++ b/src/main/java/com/github/elenterius/biomancy/inventory/ChewerContainer.java @@ -19,13 +19,13 @@ public class ChewerContainer extends Container { - protected final SimpleInvContents fuelContents; + protected final FuelInvContents fuelContents; protected final SimpleInvContents inputContents; protected final SimpleInvContents outputContents; private final ChewerStateData stateData; private final World world; - private ChewerContainer(int screenId, PlayerInventory playerInventory, SimpleInvContents fuelContents, SimpleInvContents inputContents, SimpleInvContents outputContents, ChewerStateData stateData) { + private ChewerContainer(int screenId, PlayerInventory playerInventory, FuelInvContents fuelContents, SimpleInvContents inputContents, SimpleInvContents outputContents, ChewerStateData stateData) { super(ModContainerTypes.CHEWER.get(), screenId); this.fuelContents = fuelContents; this.inputContents = inputContents; @@ -63,7 +63,7 @@ private ChewerContainer(int screenId, PlayerInventory playerInventory, SimpleInv addSlot(new Slot(fuelContents, 0, posX, posY) { @Override public boolean isItemValid(ItemStack stack) { - return ChewerTileEntity.isItemValidFuel(stack); + return ChewerTileEntity.VALID_FUEL.test(stack); } }); @@ -72,12 +72,12 @@ public boolean isItemValid(ItemStack stack) { addSlot(new OutputSlot(outputContents, 0, 107, 26)); } - public static ChewerContainer createServerContainer(int screenId, PlayerInventory playerInventory, SimpleInvContents fuelContents, SimpleInvContents inputContents, SimpleInvContents outputContents, ChewerStateData stateData) { + public static ChewerContainer createServerContainer(int screenId, PlayerInventory playerInventory, FuelInvContents fuelContents, SimpleInvContents inputContents, SimpleInvContents outputContents, ChewerStateData stateData) { return new ChewerContainer(screenId, playerInventory, fuelContents, inputContents, outputContents, stateData); } public static ChewerContainer createClientContainer(int screenId, PlayerInventory playerInventory, PacketBuffer extraData) { - SimpleInvContents fuelContents = SimpleInvContents.createClientContents(ChewerTileEntity.FUEL_SLOTS_COUNT); + FuelInvContents fuelContents = FuelInvContents.createClientContents(ChewerTileEntity.FUEL_SLOTS_COUNT); SimpleInvContents inputContents = SimpleInvContents.createClientContents(ChewerTileEntity.INPUT_SLOTS_COUNT); SimpleInvContents outputContents = SimpleInvContents.createClientContents(ChewerTileEntity.OUTPUT_SLOTS_COUNT); ChewerStateData stateData = new ChewerStateData(); @@ -136,10 +136,10 @@ public ItemStack transferStackInSlot(PlayerEntity playerIn, int sourceSlotIndex) case PLAYER_HOTBAR: case PLAYER_MAIN_INVENTORY: - if (ChewerTileEntity.getRecipeForItem(world, sourceStack).isPresent()) { + if (ChewerTileEntity.RECIPE_TYPE.getRecipeForItem(world, sourceStack).isPresent()) { successfulTransfer = mergeInto(SlotZone.INPUT_ZONE, sourceStack, false); } - if (!successfulTransfer && ChewerTileEntity.isItemValidFuel(sourceStack)) { + if (!successfulTransfer && ChewerTileEntity.VALID_FUEL.test(sourceStack)) { successfulTransfer = mergeInto(SlotZone.FUEL_ZONE, sourceStack, true); } if (!successfulTransfer) { diff --git a/src/main/java/com/github/elenterius/biomancy/inventory/DecomposerContainer.java b/src/main/java/com/github/elenterius/biomancy/inventory/DecomposerContainer.java index a7eb3d1da..aaea121ed 100644 --- a/src/main/java/com/github/elenterius/biomancy/inventory/DecomposerContainer.java +++ b/src/main/java/com/github/elenterius/biomancy/inventory/DecomposerContainer.java @@ -19,13 +19,13 @@ public class DecomposerContainer extends Container { - protected final SimpleInvContents fuelContents; + protected final FuelInvContents fuelContents; protected final SimpleInvContents inputContents; protected final SimpleInvContents outputContents; private final DecomposerStateData decomposerState; private final World world; - private DecomposerContainer(int screenId, PlayerInventory playerInventory, SimpleInvContents fuelContents, SimpleInvContents inputContents, SimpleInvContents outputContents, DecomposerStateData decomposerState) { + private DecomposerContainer(int screenId, PlayerInventory playerInventory, FuelInvContents fuelContents, SimpleInvContents inputContents, SimpleInvContents outputContents, DecomposerStateData decomposerState) { super(ModContainerTypes.DECOMPOSER.get(), screenId); this.fuelContents = fuelContents; this.inputContents = inputContents; @@ -63,7 +63,7 @@ private DecomposerContainer(int screenId, PlayerInventory playerInventory, Simpl addSlot(new Slot(fuelContents, 0, posX, posY) { @Override public boolean isItemValid(ItemStack stack) { - return DecomposerTileEntity.isItemValidFuel(stack); + return DecomposerTileEntity.VALID_FUEL.test(stack); } }); @@ -82,12 +82,12 @@ public boolean isItemValid(ItemStack stack) { addSlot(new OutputSlot(outputContents, 3, outputPosX + 18, posY + 18)); } - public static DecomposerContainer createServerContainer(int screenId, PlayerInventory playerInventory, SimpleInvContents fuelContents, SimpleInvContents inputContents, SimpleInvContents outputContents, DecomposerStateData decomposerState) { + public static DecomposerContainer createServerContainer(int screenId, PlayerInventory playerInventory, FuelInvContents fuelContents, SimpleInvContents inputContents, SimpleInvContents outputContents, DecomposerStateData decomposerState) { return new DecomposerContainer(screenId, playerInventory, fuelContents, inputContents, outputContents, decomposerState); } public static DecomposerContainer createClientContainer(int screenId, PlayerInventory playerInventory, PacketBuffer extraData) { - SimpleInvContents fuelContents = SimpleInvContents.createClientContents(DecomposerTileEntity.FUEL_SLOTS_COUNT); + FuelInvContents fuelContents = FuelInvContents.createClientContents(DecomposerTileEntity.FUEL_SLOTS_COUNT); SimpleInvContents inputContents = SimpleInvContents.createClientContents(DecomposerTileEntity.INPUT_SLOTS_COUNT); SimpleInvContents outputContents = SimpleInvContents.createClientContents(DecomposerTileEntity.OUTPUT_SLOTS_COUNT); DecomposerStateData decomposerState = new DecomposerStateData(); @@ -106,11 +106,11 @@ public float getCraftingProgressNormalized() { } public int getFuel() { - return decomposerState.mainFuel; + return decomposerState.fuel; } public float getFuelNormalized() { - return MathHelper.clamp(decomposerState.mainFuel / (float) DecomposerTileEntity.MAX_FUEL, 0f, 1f); + return MathHelper.clamp(decomposerState.fuel / (float) DecomposerTileEntity.MAX_FUEL, 0f, 1f); } public String getFuelTranslationKey() { @@ -150,10 +150,10 @@ public ItemStack transferStackInSlot(PlayerEntity playerIn, int sourceSlotIndex) case PLAYER_HOTBAR: case PLAYER_MAIN_INVENTORY: - if (DecomposerTileEntity.getRecipeForItem(world, sourceStack).isPresent()) { + if (DecomposerTileEntity.RECIPE_TYPE.getRecipeForItem(world, sourceStack).isPresent()) { successfulTransfer = mergeInto(SlotZone.INPUT_ZONE, sourceStack, false); } - if (!successfulTransfer && DecomposerTileEntity.isItemValidFuel(sourceStack)) { + if (!successfulTransfer && DecomposerTileEntity.VALID_FUEL.test(sourceStack)) { successfulTransfer = mergeInto(SlotZone.FUEL_ZONE, sourceStack, true); } if (!successfulTransfer) { diff --git a/src/main/java/com/github/elenterius/biomancy/inventory/DigesterContainer.java b/src/main/java/com/github/elenterius/biomancy/inventory/DigesterContainer.java index d639350d3..6998cded3 100644 --- a/src/main/java/com/github/elenterius/biomancy/inventory/DigesterContainer.java +++ b/src/main/java/com/github/elenterius/biomancy/inventory/DigesterContainer.java @@ -62,7 +62,7 @@ private DigesterContainer(int screenId, PlayerInventory playerInventory, SimpleI addSlot(new Slot(fuelContents, 0, 17, 17) { @Override public boolean isItemValid(ItemStack stack) { - return DigesterTileEntity.isItemValidFuel(stack); + return DigesterTileEntity.VALID_FUEL.test(stack); } }); @@ -141,10 +141,10 @@ public ItemStack transferStackInSlot(PlayerEntity playerIn, int sourceSlotIndex) case PLAYER_HOTBAR: case PLAYER_MAIN_INVENTORY: - if (DigesterTileEntity.getRecipeForItem(world, sourceStack).isPresent()) { + if (DigesterTileEntity.RECIPE_TYPE.getRecipeForItem(world, sourceStack).isPresent()) { successfulTransfer = mergeInto(SlotZone.INPUT_ZONE, sourceStack, false); } - if (!successfulTransfer && DigesterTileEntity.isItemValidFuel(sourceStack)) { + if (!successfulTransfer && DigesterTileEntity.VALID_FUEL.test(sourceStack)) { successfulTransfer = mergeInto(SlotZone.FUEL_ZONE, sourceStack, true); } if (!successfulTransfer) { diff --git a/src/main/java/com/github/elenterius/biomancy/inventory/EvolutionPoolContainer.java b/src/main/java/com/github/elenterius/biomancy/inventory/EvolutionPoolContainer.java index 911ee38c1..c0d2c620f 100644 --- a/src/main/java/com/github/elenterius/biomancy/inventory/EvolutionPoolContainer.java +++ b/src/main/java/com/github/elenterius/biomancy/inventory/EvolutionPoolContainer.java @@ -63,7 +63,7 @@ private EvolutionPoolContainer(int screenId, PlayerInventory playerInventory, Si addSlot(new Slot(fuelContents, 0, posX, posY) { @Override public boolean isItemValid(ItemStack stack) { - return EvolutionPoolTileEntity.isItemValidFuel(stack); + return EvolutionPoolTileEntity.VALID_FUEL.test(stack); } }); @@ -138,10 +138,10 @@ public ItemStack transferStackInSlot(PlayerEntity playerIn, int sourceSlotIndex) case PLAYER_HOTBAR: case PLAYER_MAIN_INVENTORY: - if (EvolutionPoolTileEntity.getRecipeForItem(world, sourceStack).isPresent()) { + if (EvolutionPoolTileEntity.RECIPE_TYPE.getRecipeForItem(world, sourceStack).isPresent()) { successfulTransfer = mergeInto(SlotZone.INPUT_ZONE, sourceStack, false); } - if (!successfulTransfer && EvolutionPoolTileEntity.isItemValidFuel(sourceStack)) { + if (!successfulTransfer && EvolutionPoolTileEntity.VALID_FUEL.test(sourceStack)) { successfulTransfer = mergeInto(SlotZone.FUEL_ZONE, sourceStack, true); } if (!successfulTransfer) { diff --git a/src/main/java/com/github/elenterius/biomancy/inventory/FuelInvContents.java b/src/main/java/com/github/elenterius/biomancy/inventory/FuelInvContents.java new file mode 100644 index 000000000..6ce61c20e --- /dev/null +++ b/src/main/java/com/github/elenterius/biomancy/inventory/FuelInvContents.java @@ -0,0 +1,31 @@ +package com.github.elenterius.biomancy.inventory; + +import com.github.elenterius.biomancy.capabilities.InputFilterItemStackHandler; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.ItemStack; +import net.minecraftforge.common.util.LazyOptional; +import net.minecraftforge.items.IItemHandler; +import net.minecraftforge.items.ItemStackHandler; + +import java.util.function.Predicate; + +public class FuelInvContents extends SimpleInvContents { + + FuelInvContents(int slotAmount) { + super(slotAmount); + } + + FuelInvContents(ItemStackHandler itemStackHandler, LazyOptional optionalItemStackHandler, Predicate canPlayerAccessInventory, Notify markDirtyNotifier) { + super(itemStackHandler, optionalItemStackHandler, canPlayerAccessInventory, markDirtyNotifier); + } + + public static FuelInvContents createServerContents(int slotAmount, Predicate isItemValid, Predicate canPlayerAccessInventory, Notify markDirtyNotifier) { + ItemStackHandler itemStackHandler = new ItemStackHandler(slotAmount); + return new FuelInvContents(itemStackHandler, LazyOptional.of(() -> new InputFilterItemStackHandler(itemStackHandler, isItemValid)), canPlayerAccessInventory, markDirtyNotifier); + } + + public static FuelInvContents createClientContents(int slotAmount) { + return new FuelInvContents(slotAmount); + } + +} diff --git a/src/main/java/com/github/elenterius/biomancy/inventory/SimpleInvContents.java b/src/main/java/com/github/elenterius/biomancy/inventory/SimpleInvContents.java index 87e256678..3549639aa 100644 --- a/src/main/java/com/github/elenterius/biomancy/inventory/SimpleInvContents.java +++ b/src/main/java/com/github/elenterius/biomancy/inventory/SimpleInvContents.java @@ -32,6 +32,13 @@ public class SimpleInvContents implements IInventory { optionalItemStackHandler = LazyOptional.of(() -> itemStackHandler); } + SimpleInvContents(ItemStackHandler itemStackHandlerIn, LazyOptional optionalItemStackHandlerIn, Predicate canPlayerAccessInventory, Notify markDirtyNotifier) { + itemStackHandler = itemStackHandlerIn; + optionalItemStackHandler = optionalItemStackHandlerIn; + this.canPlayerAccessInventory = canPlayerAccessInventory; + this.markDirtyNotifier = markDirtyNotifier; + } + SimpleInvContents(int slotAmount, ISHandlerType handlerType) { itemStackHandler = new ItemStackHandler(slotAmount); switch (handlerType) { diff --git a/src/main/java/com/github/elenterius/biomancy/recipe/AbstractBioMechanicalRecipe.java b/src/main/java/com/github/elenterius/biomancy/recipe/AbstractBioMechanicalRecipe.java new file mode 100644 index 000000000..28a13a4ab --- /dev/null +++ b/src/main/java/com/github/elenterius/biomancy/recipe/AbstractBioMechanicalRecipe.java @@ -0,0 +1,38 @@ +package com.github.elenterius.biomancy.recipe; + +import net.minecraft.inventory.IInventory; +import net.minecraft.item.crafting.IRecipe; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.items.ItemHandlerHelper; + +public abstract class AbstractBioMechanicalRecipe implements IRecipe { + + private final ResourceLocation registryKey; + private final int time; + + public AbstractBioMechanicalRecipe(ResourceLocation registryKeyIn, int craftingTimeIn) { + registryKey = registryKeyIn; + time = craftingTimeIn; + } + + @Override + public ResourceLocation getId() { + return registryKey; + } + + public int getCraftingTime() { + return time; + } + + public boolean areRecipesEqual(AbstractBioMechanicalRecipe other, boolean relaxed) { + boolean flag = registryKey.equals(other.getId()); + if (!relaxed && !ItemHandlerHelper.canItemStacksStack(getRecipeOutput(), other.getRecipeOutput())) { + return false; + } + return flag; + } + + public static boolean areRecipesEqual(AbstractBioMechanicalRecipe recipeA, AbstractBioMechanicalRecipe recipeB, boolean relaxed) { + return recipeA.areRecipesEqual(recipeB, relaxed); + } +} diff --git a/src/main/java/com/github/elenterius/biomancy/recipe/BioMechanicalRecipeType.java b/src/main/java/com/github/elenterius/biomancy/recipe/BioMechanicalRecipeType.java new file mode 100644 index 000000000..6d541ae60 --- /dev/null +++ b/src/main/java/com/github/elenterius/biomancy/recipe/BioMechanicalRecipeType.java @@ -0,0 +1,41 @@ +package com.github.elenterius.biomancy.recipe; + +import com.github.elenterius.biomancy.mixin.RecipeManagerMixinAccessor; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.IRecipeType; +import net.minecraft.item.crafting.Ingredient; +import net.minecraft.item.crafting.RecipeManager; +import net.minecraft.world.World; + +import java.util.Optional; + +public class BioMechanicalRecipeType implements IRecipeType { + private final String name; + + public BioMechanicalRecipeType(String nameIn) { + this.name = nameIn; + } + + @Override + public String toString() { + return name; + } + + public Optional getRecipeFromInventory(World world, IInventory inputInv) { + RecipeManager recipeManager = world.getRecipeManager(); + return recipeManager.getRecipe(this, inputInv, world); + } + + public Optional getRecipeForItem(World world, ItemStack stack) { + RecipeManagerMixinAccessor recipeManager = (RecipeManagerMixinAccessor) world.getRecipeManager(); + //noinspection unchecked + return recipeManager.callGetRecipes(this).values().stream().map(recipe -> (T) recipe) + .filter(recipe -> { + for (Ingredient ingredient : recipe.getIngredients()) { + if (ingredient.test(stack)) return true; + } + return false; + }).findFirst(); + } +} diff --git a/src/main/java/com/github/elenterius/biomancy/recipe/ChewerRecipe.java b/src/main/java/com/github/elenterius/biomancy/recipe/ChewerRecipe.java index d8cde8f41..044c1d540 100644 --- a/src/main/java/com/github/elenterius/biomancy/recipe/ChewerRecipe.java +++ b/src/main/java/com/github/elenterius/biomancy/recipe/ChewerRecipe.java @@ -4,7 +4,10 @@ import com.google.gson.JsonObject; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.*; +import net.minecraft.item.crafting.IRecipeSerializer; +import net.minecraft.item.crafting.IRecipeType; +import net.minecraft.item.crafting.Ingredient; +import net.minecraft.item.crafting.ShapedRecipe; import net.minecraft.network.PacketBuffer; import net.minecraft.util.JSONUtils; import net.minecraft.util.NonNullList; @@ -14,18 +17,15 @@ import javax.annotation.Nullable; -public class ChewerRecipe implements IRecipe { +public class ChewerRecipe extends AbstractBioMechanicalRecipe { - private final ResourceLocation registryId; private final Ingredient ingredient; private final ItemStack recipeResult; - private final int time; - public ChewerRecipe(ResourceLocation keyIn, ItemStack result, int timeIn, Ingredient ingredientIn) { - registryId = keyIn; + public ChewerRecipe(ResourceLocation registryKey, ItemStack result, int craftingTimeIn, Ingredient ingredientIn) { + super(registryKey, craftingTimeIn); ingredient = ingredientIn; recipeResult = result; - time = timeIn; } @Override @@ -55,11 +55,6 @@ public NonNullList getIngredients() { return list; } - @Override - public ResourceLocation getId() { - return registryId; - } - @Override public IRecipeSerializer getSerializer() { return ModRecipes.CHEWER_SERIALIZER.get(); @@ -70,10 +65,6 @@ public IRecipeType getType() { return ModRecipes.CHEWER_RECIPE_TYPE; } - public int getCraftingTime() { - return time; - } - public static class Serializer extends ForgeRegistryEntry> implements IRecipeSerializer { private static Ingredient readIngredient(JsonObject jsonObj) { @@ -104,7 +95,7 @@ public ChewerRecipe read(ResourceLocation recipeId, PacketBuffer buffer) { public void write(PacketBuffer buffer, ChewerRecipe recipe) { //server side buffer.writeItemStack(recipe.recipeResult); - buffer.writeInt(recipe.time); + buffer.writeInt(recipe.getCraftingTime()); recipe.ingredient.write(buffer); } } diff --git a/src/main/java/com/github/elenterius/biomancy/recipe/DecomposerRecipe.java b/src/main/java/com/github/elenterius/biomancy/recipe/DecomposerRecipe.java index 2812b7dfb..a7270e99e 100644 --- a/src/main/java/com/github/elenterius/biomancy/recipe/DecomposerRecipe.java +++ b/src/main/java/com/github/elenterius/biomancy/recipe/DecomposerRecipe.java @@ -18,23 +18,20 @@ import java.util.ArrayList; import java.util.List; -public class DecomposerRecipe implements IRecipe { +public class DecomposerRecipe extends AbstractBioMechanicalRecipe { public static final int MAX_INGREDIENTS = 2 * 3; public static final int MAX_BYPRODUCTS = 3; private final NonNullList recipeIngredients; private final ItemStack recipeResult; - private final int time; private final List byproducts; - private final ResourceLocation key; private final boolean isSimple; - public DecomposerRecipe(ResourceLocation keyIn, ItemStack result, int timeIn, NonNullList ingredients, List byproducts) { - key = keyIn; + public DecomposerRecipe(ResourceLocation registryKey, ItemStack result, int craftingTime, NonNullList ingredients, List byproducts) { + super(registryKey, craftingTime); recipeIngredients = ingredients; recipeResult = result; - time = timeIn; this.byproducts = byproducts; isSimple = ingredients.stream().allMatch(Ingredient::isSimple); } @@ -76,10 +73,6 @@ public List getByproducts() { return byproducts; } - public int getDecomposingTime() { - return time; - } - @Override public ItemStack getRecipeOutput() { return recipeResult; @@ -95,11 +88,6 @@ public IRecipeType getType() { return ModRecipes.DECOMPOSING_RECIPE_TYPE; } - @Override - public ResourceLocation getId() { - return key; - } - public static class Serializer extends ForgeRegistryEntry> implements IRecipeSerializer { private static NonNullList readIngredients(JsonArray jsonArray) { @@ -168,7 +156,7 @@ public DecomposerRecipe read(ResourceLocation recipeId, PacketBuffer buffer) { public void write(PacketBuffer buffer, DecomposerRecipe recipe) { //server side buffer.writeItemStack(recipe.recipeResult); - buffer.writeInt(recipe.time); + buffer.writeInt(recipe.getCraftingTime()); buffer.writeVarInt(recipe.byproducts.size()); for (Byproduct byproduct : recipe.byproducts) { diff --git a/src/main/java/com/github/elenterius/biomancy/recipe/DigesterRecipe.java b/src/main/java/com/github/elenterius/biomancy/recipe/DigesterRecipe.java index b3fd99c96..3433e9175 100644 --- a/src/main/java/com/github/elenterius/biomancy/recipe/DigesterRecipe.java +++ b/src/main/java/com/github/elenterius/biomancy/recipe/DigesterRecipe.java @@ -4,7 +4,10 @@ import com.google.gson.JsonObject; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.*; +import net.minecraft.item.crafting.IRecipeSerializer; +import net.minecraft.item.crafting.IRecipeType; +import net.minecraft.item.crafting.Ingredient; +import net.minecraft.item.crafting.ShapedRecipe; import net.minecraft.network.PacketBuffer; import net.minecraft.util.JSONUtils; import net.minecraft.util.NonNullList; @@ -14,20 +17,17 @@ import javax.annotation.Nullable; -public class DigesterRecipe implements IRecipe { +public class DigesterRecipe extends AbstractBioMechanicalRecipe { - private final ResourceLocation registryId; private final Ingredient ingredient; private final ItemStack result; private final Byproduct byproduct; - private final int time; - public DigesterRecipe(ResourceLocation keyIn, ItemStack resultIn, @Nullable Byproduct byproductIn, int timeIn, Ingredient ingredientIn) { - registryId = keyIn; + public DigesterRecipe(ResourceLocation registryKey, ItemStack resultIn, @Nullable Byproduct byproductIn, int craftingTime, Ingredient ingredientIn) { + super(registryKey, craftingTime); ingredient = ingredientIn; result = resultIn; byproduct = byproductIn; - time = timeIn; } @Override @@ -62,11 +62,6 @@ public NonNullList getIngredients() { return list; } - @Override - public ResourceLocation getId() { - return registryId; - } - @Override public IRecipeSerializer getSerializer() { return ModRecipes.DIGESTER_SERIALIZER.get(); @@ -77,10 +72,6 @@ public IRecipeType getType() { return ModRecipes.DIGESTER_RECIPE_TYPE; } - public int getCraftingTime() { - return time; - } - public static class Serializer extends ForgeRegistryEntry> implements IRecipeSerializer { private static Ingredient readIngredient(JsonObject jsonObj) { @@ -115,7 +106,7 @@ public DigesterRecipe read(ResourceLocation recipeId, PacketBuffer buffer) { public void write(PacketBuffer buffer, DigesterRecipe recipe) { //server side buffer.writeItemStack(recipe.result); - buffer.writeInt(recipe.time); + buffer.writeInt(recipe.getCraftingTime()); recipe.ingredient.write(buffer); boolean hasByproduct = recipe.byproduct != null; diff --git a/src/main/java/com/github/elenterius/biomancy/recipe/EvolutionPoolRecipe.java b/src/main/java/com/github/elenterius/biomancy/recipe/EvolutionPoolRecipe.java index ec64cbf6a..424787d5f 100644 --- a/src/main/java/com/github/elenterius/biomancy/recipe/EvolutionPoolRecipe.java +++ b/src/main/java/com/github/elenterius/biomancy/recipe/EvolutionPoolRecipe.java @@ -18,22 +18,19 @@ import javax.annotation.Nullable; import java.util.ArrayList; -public class EvolutionPoolRecipe implements IRecipe { +public class EvolutionPoolRecipe extends AbstractBioMechanicalRecipe { public static final int MAX_INGREDIENTS = 6; private final NonNullList recipeIngredients; private final ItemStack recipeResult; - private final int time; private final boolean isSimple; - private final ResourceLocation registryId; - public EvolutionPoolRecipe(ResourceLocation keyIn, ItemStack result, int timeIn, NonNullList ingredients) { - registryId = keyIn; + public EvolutionPoolRecipe(ResourceLocation registryKey, ItemStack result, int craftingTime, NonNullList ingredients) { + super(registryKey, craftingTime); recipeIngredients = ingredients; recipeResult = result; - time = timeIn; isSimple = ingredients.stream().allMatch(Ingredient::isSimple); } @@ -75,11 +72,6 @@ public NonNullList getIngredients() { return recipeIngredients; } - @Override - public ResourceLocation getId() { - return registryId; - } - @Override public IRecipeSerializer getSerializer() { return ModRecipes.EVOLUTION_POOL_SERIALIZER.get(); @@ -90,10 +82,6 @@ public IRecipeType getType() { return ModRecipes.EVOLUTION_POOL_RECIPE_TYPE; } - public int getCraftingTime() { - return time; - } - public static class Serializer extends ForgeRegistryEntry> implements IRecipeSerializer { private static NonNullList readIngredients(JsonArray jsonArray) { @@ -144,7 +132,7 @@ public EvolutionPoolRecipe read(ResourceLocation recipeId, PacketBuffer buffer) public void write(PacketBuffer buffer, EvolutionPoolRecipe recipe) { //server side buffer.writeItemStack(recipe.recipeResult); - buffer.writeInt(recipe.time); + buffer.writeInt(recipe.getCraftingTime()); buffer.writeVarInt(recipe.recipeIngredients.size()); for (Ingredient ingredient : recipe.recipeIngredients) { diff --git a/src/main/java/com/github/elenterius/biomancy/tileentity/ChewerTileEntity.java b/src/main/java/com/github/elenterius/biomancy/tileentity/ChewerTileEntity.java index 98d81a06e..876d24b20 100644 --- a/src/main/java/com/github/elenterius/biomancy/tileentity/ChewerTileEntity.java +++ b/src/main/java/com/github/elenterius/biomancy/tileentity/ChewerTileEntity.java @@ -1,15 +1,14 @@ package com.github.elenterius.biomancy.tileentity; -import com.github.elenterius.biomancy.block.ChewerBlock; import com.github.elenterius.biomancy.init.ModItems; import com.github.elenterius.biomancy.init.ModRecipes; import com.github.elenterius.biomancy.init.ModTileEntityTypes; import com.github.elenterius.biomancy.inventory.ChewerContainer; +import com.github.elenterius.biomancy.inventory.FuelInvContents; import com.github.elenterius.biomancy.inventory.SimpleInvContents; -import com.github.elenterius.biomancy.mixin.RecipeManagerMixinAccessor; +import com.github.elenterius.biomancy.recipe.BioMechanicalRecipeType; import com.github.elenterius.biomancy.recipe.ChewerRecipe; import com.github.elenterius.biomancy.tileentity.state.ChewerStateData; -import com.github.elenterius.biomancy.tileentity.state.CraftingState; import com.github.elenterius.biomancy.util.TextUtil; import net.minecraft.block.BlockState; import net.minecraft.entity.player.PlayerEntity; @@ -17,28 +16,21 @@ import net.minecraft.inventory.IInventory; import net.minecraft.inventory.InventoryHelper; import net.minecraft.inventory.container.Container; -import net.minecraft.inventory.container.INamedContainerProvider; import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.Ingredient; -import net.minecraft.item.crafting.RecipeManager; import net.minecraft.nbt.CompoundNBT; -import net.minecraft.tileentity.ITickableTileEntity; import net.minecraft.util.Direction; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; import net.minecraft.util.text.ITextComponent; import net.minecraft.world.World; import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.util.Constants; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.items.CapabilityItemHandler; -import net.minecraftforge.items.ItemHandlerHelper; import javax.annotation.Nonnull; import javax.annotation.Nullable; -import java.util.Optional; +import java.util.function.Predicate; -public class ChewerTileEntity extends OwnableTileEntity implements INamedContainerProvider, ITickableTileEntity { +public class ChewerTileEntity extends MachineTileEntity { public static final int FUEL_SLOTS_COUNT = 1; public static final int INPUT_SLOTS_COUNT = 1; @@ -47,133 +39,84 @@ public class ChewerTileEntity extends OwnableTileEntity implements INamedContain public static final int DEFAULT_TIME = 200; public static final int MAX_FUEL = 32_000; public static final short FUEL_COST = 2; - public static final float FUEL_CONVERSION = FUEL_COST * DEFAULT_TIME / 4f; + public static final float FUEL_CONVERSION = 100; // FUEL_COST * DEFAULT_TIME / 4f + public static final Predicate VALID_FUEL = stack -> stack.getItem() == ModItems.NUTRIENT_PASTE.get() || stack.getItem() == ModItems.NUTRIENT_BAR.get(); + public static final BioMechanicalRecipeType RECIPE_TYPE = ModRecipes.CHEWER_RECIPE_TYPE; private final ChewerStateData stateData = new ChewerStateData(); - private final SimpleInvContents fuelContents; + private final FuelInvContents fuelContents; private final SimpleInvContents inputContents; private final SimpleInvContents outputContents; public ChewerTileEntity() { super(ModTileEntityTypes.CHEWER.get()); - fuelContents = SimpleInvContents.createServerContents(FUEL_SLOTS_COUNT, this::canPlayerOpenInv, this::markDirty); + fuelContents = FuelInvContents.createServerContents(FUEL_SLOTS_COUNT, this::isItemValidFuel, this::canPlayerOpenInv, this::markDirty); inputContents = SimpleInvContents.createServerContents(INPUT_SLOTS_COUNT, this::canPlayerOpenInv, this::markDirty); outputContents = SimpleInvContents.createServerContents(OUTPUT_SLOTS_COUNT, SimpleInvContents.ISHandlerType.NO_INSERT, this::canPlayerOpenInv, this::markDirty); } - public static Optional getRecipeForItem(World world, ItemStack stackIn) { - RecipeManagerMixinAccessor recipeManager = (RecipeManagerMixinAccessor) world.getRecipeManager(); - - return recipeManager.callGetRecipes(ModRecipes.CHEWER_RECIPE_TYPE).values().stream().map((recipe) -> (ChewerRecipe) recipe) - .filter(recipe -> { - for (Ingredient ingredient : recipe.getIngredients()) { - if (ingredient.test(stackIn)) return true; - } - return false; - }).findFirst(); + @Override + protected ChewerStateData getStateData() { + return stateData; } - public static boolean areRecipesEqual(ChewerRecipe recipeA, ChewerRecipe recipeB, boolean relaxed) { - boolean flag = recipeA.getId().equals(recipeB.getId()); - if (!relaxed && !ItemHandlerHelper.canItemStacksStack(recipeA.getRecipeOutput(), recipeB.getRecipeOutput())) { - return false; - } - return flag; + @Override + public BioMechanicalRecipeType getRecipeType() { + return RECIPE_TYPE; } - public static Optional getRecipeForInput(World world, IInventory inputInv) { - RecipeManager recipeManager = world.getRecipeManager(); - return recipeManager.getRecipe(ModRecipes.CHEWER_RECIPE_TYPE, inputInv, world); + @Override + public int getFuelAmount() { + return stateData.fuel; } - public static boolean isItemValidFuel(ItemStack stack) { - return stack.getItem() == ModItems.NUTRIENT_PASTE.get() || stack.getItem() == ModItems.NUTRIENT_BAR.get(); + @Override + public void setFuelAmount(int newAmount) { + stateData.fuel = (short) newAmount; } @Override - protected ITextComponent getDefaultName() { - return TextUtil.getTranslationText("container", "chewer"); + public void addFuelAmount(int addAmount) { + stateData.fuel += addAmount; } - @Nullable @Override - public Container createMenu(int screenId, PlayerInventory playerInv, PlayerEntity player) { - return ChewerContainer.createServerContainer(screenId, playerInv, fuelContents, inputContents, outputContents, stateData); + public int getMaxFuelAmount() { + return MAX_FUEL; } @Override - public void tick() { - if (world == null || world.isRemote) return; - - if (world.getGameTime() % 10L == 0L) { - refuel(); - } - - ChewerRecipe recipeToCraft = getRecipeForInput(world, inputContents).orElse(null); - if (recipeToCraft == null) { - stateData.cancelCrafting(); - } - else { - ItemStack itemToCraft = recipeToCraft.getRecipeOutput(); // .copy() - if (itemToCraft.isEmpty()) { - stateData.cancelCrafting(); - } - else { - if (outputContents.doesItemStackFit(0, itemToCraft)) { - if (stateData.getCraftingState() == CraftingState.NONE) { - stateData.setCraftingState(CraftingState.IN_PROGRESS); - stateData.clear(); //safe guard, shouldn't be needed - stateData.setCraftingGoalRecipe(recipeToCraft); // this also sets the time required for crafting - } - else if (!stateData.isCraftingCanceled()) { - ChewerRecipe recipeCraftingGoal = stateData.getCraftingGoalRecipe(world).orElse(null); - if (recipeCraftingGoal == null || !areRecipesEqual(recipeToCraft, recipeCraftingGoal, true)) { - stateData.cancelCrafting(); - } - } - } - else { - if (stateData.getCraftingState() != CraftingState.COMPLETED) stateData.cancelCrafting(); - } - } + public int getFuelCost() { + return FUEL_COST; + } - //change crafting progress - if (stateData.getCraftingState() == CraftingState.IN_PROGRESS) { - if (consumeFuel()) stateData.timeElapsed += 1; - else stateData.timeElapsed -= 2; + @Override + public boolean isItemValidFuel(ItemStack stack) { + return VALID_FUEL.test(stack); + } - if (stateData.timeElapsed < 0) stateData.timeElapsed = 0; - } + @Override + public float getFuelConversion(ItemStack stackIn) { + return FUEL_CONVERSION * (stackIn.getItem() == ModItems.NUTRIENT_BAR.get() ? 5 : 1); + } - //craft items - if (stateData.getCraftingState() == CraftingState.IN_PROGRESS || stateData.getCraftingState() == CraftingState.COMPLETED) { - if (stateData.timeElapsed >= stateData.timeForCompletion) { - stateData.setCraftingState(CraftingState.COMPLETED); - if (craftItem(recipeToCraft)) { - stateData.setCraftingState(CraftingState.NONE); - } - } - } - } + @Override + public ItemStack getStackInFuelSlot() { + return fuelContents.getStackInSlot(0); + } - //clean-up states - if (stateData.isCraftingCanceled()) { - stateData.setCraftingState(CraftingState.NONE); - stateData.clear(); - } - else if (stateData.getCraftingState() == CraftingState.NONE) { - stateData.clear(); - } + @Override + public void setStackInFuelSlot(ItemStack stack) { + fuelContents.setInventorySlotContents(0, stack); + } - BlockState oldBlockState = world.getBlockState(pos); - BlockState newBlockState = oldBlockState.with(ChewerBlock.CRAFTING, stateData.getCraftingState() == CraftingState.IN_PROGRESS); - if (!newBlockState.equals(oldBlockState)) { - world.setBlockState(pos, newBlockState, Constants.BlockFlags.BLOCK_UPDATE); - markDirty(); - } + @Override + protected boolean doesItemFitIntoOutputInventory(ItemStack stackToCraft) { + return outputContents.doesItemStackFit(0, stackToCraft); } - private boolean craftItem(ChewerRecipe recipeToCraft) { + @Override + protected boolean craftRecipe(ChewerRecipe recipeToCraft, World world) { ItemStack result = recipeToCraft.getCraftingResult(inputContents); if (!result.isEmpty() && outputContents.doesItemStackFit(0, result)) { for (int idx = 0; idx < inputContents.getSizeInventory(); idx++) { @@ -186,42 +129,23 @@ private boolean craftItem(ChewerRecipe recipeToCraft) { return false; } - private boolean consumeFuel() { - if (stateData.fuel >= FUEL_COST) { - stateData.fuel -= FUEL_COST; - return true; - } - return false; + @Override + protected IInventory getInputInventory() { + return inputContents; } - public void refuel() { - if (stateData.fuel < MAX_FUEL) { - ItemStack stack = fuelContents.getStackInSlot(0); - if (isItemValidFuel(stack)) { - ItemStack remainder = addFuel(stack); - if (remainder.getCount() != stack.getCount()) { - fuelContents.setInventorySlotContents(0, remainder); - markDirty(); - } - } - } + @Override + protected ITextComponent getDefaultName() { + return TextUtil.getTranslationText("container", "chewer"); } - public ItemStack addFuel(ItemStack stackIn) { - if (world == null || world.isRemote()) return stackIn; - - if (!stackIn.isEmpty() && stateData.fuel < MAX_FUEL) { - float fuelConversion = FUEL_CONVERSION * (stackIn.getItem() == ModItems.NUTRIENT_BAR.get() ? 5 : 1); - int itemsNeeded = Math.round(Math.max(0, MAX_FUEL - stateData.fuel) / fuelConversion); - int consumeAmount = Math.min(stackIn.getCount(), itemsNeeded); - if (consumeAmount > 0) { - stateData.fuel = (short) MathHelper.clamp(stateData.fuel + fuelConversion * consumeAmount, 0, MAX_FUEL + fuelConversion); - return ItemHandlerHelper.copyStackWithSize(stackIn, stackIn.getCount() - consumeAmount); - } - } - return stackIn; + @Nullable + @Override + public Container createMenu(int screenId, PlayerInventory playerInv, PlayerEntity player) { + return ChewerContainer.createServerContainer(screenId, playerInv, fuelContents, inputContents, outputContents, stateData); } + @Override public void dropAllInvContents(World world, BlockPos pos) { InventoryHelper.dropInventoryItems(world, pos, fuelContents); InventoryHelper.dropInventoryItems(world, pos, inputContents); diff --git a/src/main/java/com/github/elenterius/biomancy/tileentity/DecomposerTileEntity.java b/src/main/java/com/github/elenterius/biomancy/tileentity/DecomposerTileEntity.java index e11dd2a4c..9554ba5cf 100644 --- a/src/main/java/com/github/elenterius/biomancy/tileentity/DecomposerTileEntity.java +++ b/src/main/java/com/github/elenterius/biomancy/tileentity/DecomposerTileEntity.java @@ -1,15 +1,14 @@ package com.github.elenterius.biomancy.tileentity; -import com.github.elenterius.biomancy.block.DecomposerBlock; import com.github.elenterius.biomancy.init.ModItems; import com.github.elenterius.biomancy.init.ModRecipes; import com.github.elenterius.biomancy.init.ModTileEntityTypes; import com.github.elenterius.biomancy.inventory.DecomposerContainer; +import com.github.elenterius.biomancy.inventory.FuelInvContents; import com.github.elenterius.biomancy.inventory.SimpleInvContents; -import com.github.elenterius.biomancy.mixin.RecipeManagerMixinAccessor; +import com.github.elenterius.biomancy.recipe.BioMechanicalRecipeType; import com.github.elenterius.biomancy.recipe.Byproduct; import com.github.elenterius.biomancy.recipe.DecomposerRecipe; -import com.github.elenterius.biomancy.tileentity.state.CraftingState; import com.github.elenterius.biomancy.tileentity.state.DecomposerStateData; import com.github.elenterius.biomancy.util.TextUtil; import net.minecraft.block.BlockState; @@ -18,29 +17,21 @@ import net.minecraft.inventory.IInventory; import net.minecraft.inventory.InventoryHelper; import net.minecraft.inventory.container.Container; -import net.minecraft.inventory.container.INamedContainerProvider; import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.Ingredient; -import net.minecraft.item.crafting.RecipeManager; import net.minecraft.nbt.CompoundNBT; -import net.minecraft.tileentity.ITickableTileEntity; import net.minecraft.util.Direction; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; import net.minecraft.util.text.ITextComponent; import net.minecraft.world.World; import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.util.Constants; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.items.CapabilityItemHandler; -import net.minecraftforge.items.ItemHandlerHelper; import javax.annotation.Nonnull; import javax.annotation.Nullable; -import java.util.Optional; -import java.util.Random; +import java.util.function.Predicate; -public class DecomposerTileEntity extends OwnableTileEntity implements INamedContainerProvider, ITickableTileEntity { +public class DecomposerTileEntity extends MachineTileEntity { public static final int FUEL_SLOTS_COUNT = 1; public static final int INPUT_SLOTS_COUNT = DecomposerRecipe.MAX_INGREDIENTS; @@ -49,138 +40,84 @@ public class DecomposerTileEntity extends OwnableTileEntity implements INamedCon public static final int DEFAULT_TIME = 200; public static final int MAX_FUEL = 32_000; public static final short FUEL_COST = 5; - public static final float FUEL_CONVERSION = FUEL_COST * DEFAULT_TIME / 4f; + public static final float FUEL_CONVERSION = 250; // FUEL_COST * DEFAULT_TIME / 4f + public static final Predicate VALID_FUEL = stack -> stack.getItem() == ModItems.NUTRIENT_PASTE.get() || stack.getItem() == ModItems.NUTRIENT_BAR.get(); + public static final BioMechanicalRecipeType RECIPE_TYPE = ModRecipes.DECOMPOSING_RECIPE_TYPE; private final DecomposerStateData stateData = new DecomposerStateData(); - private final SimpleInvContents fuelContents; + private final FuelInvContents fuelContents; private final SimpleInvContents inputContents; private final SimpleInvContents outputContents; public DecomposerTileEntity() { super(ModTileEntityTypes.DECOMPOSER.get()); - fuelContents = SimpleInvContents.createServerContents(FUEL_SLOTS_COUNT, this::canPlayerOpenInv, this::markDirty); + fuelContents = FuelInvContents.createServerContents(FUEL_SLOTS_COUNT, this::isItemValidFuel, this::canPlayerOpenInv, this::markDirty); inputContents = SimpleInvContents.createServerContents(INPUT_SLOTS_COUNT, this::canPlayerOpenInv, this::markDirty); outputContents = SimpleInvContents.createServerContents(OUTPUT_SLOTS_COUNT, SimpleInvContents.ISHandlerType.NO_INSERT, this::canPlayerOpenInv, this::markDirty); } - public static boolean areRecipesEqual(DecomposerRecipe recipeA, DecomposerRecipe recipeB, boolean relaxed) { - boolean flag = recipeA.getId().equals(recipeB.getId()); - if (!relaxed && !ItemHandlerHelper.canItemStacksStack(recipeA.getRecipeOutput(), recipeB.getRecipeOutput())) { - return false; - } - return flag; + @Override + protected DecomposerStateData getStateData() { + return stateData; } - public static ItemStack getRecipeResult(World world, IInventory inputInv) { - Optional recipe = getRecipeForInput(world, inputInv); - return recipe.map(decomposingRecipe -> decomposingRecipe.getRecipeOutput().copy()).orElse(ItemStack.EMPTY); + @Override + public BioMechanicalRecipeType getRecipeType() { + return RECIPE_TYPE; } - public static int getCraftingTime(World world, IInventory inputInv) { - Optional recipe = getRecipeForInput(world, inputInv); - return recipe.map(DecomposerRecipe::getDecomposingTime).orElse(0); + @Override + public int getFuelAmount() { + return stateData.fuel; } - public static Optional getRecipeForInput(World world, IInventory inputInv) { - RecipeManager recipeManager = world.getRecipeManager(); - return recipeManager.getRecipe(ModRecipes.DECOMPOSING_RECIPE_TYPE, inputInv, world); + @Override + public void setFuelAmount(int newAmount) { + stateData.fuel = (short) newAmount; } - public static Optional getRecipeForItem(World world, ItemStack stack) { - RecipeManagerMixinAccessor recipeManager = (RecipeManagerMixinAccessor) world.getRecipeManager(); - - return recipeManager.callGetRecipes(ModRecipes.DECOMPOSING_RECIPE_TYPE).values().stream().map((recipe) -> (DecomposerRecipe) recipe) - .filter(recipe -> { - for (Ingredient ingredient : recipe.getIngredients()) { - if (ingredient.test(stack)) return true; - } - return false; - }).findFirst(); + @Override + public void addFuelAmount(int addAmount) { + stateData.fuel += addAmount; } - public static boolean isItemValidFuel(ItemStack stack) { - return stack.getItem() == ModItems.NUTRIENT_PASTE.get() || stack.getItem() == ModItems.NUTRIENT_BAR.get(); + @Override + public int getMaxFuelAmount() { + return MAX_FUEL; } - @Nullable @Override - public Container createMenu(int screenId, PlayerInventory playerInv, PlayerEntity player) { - return DecomposerContainer.createServerContainer(screenId, playerInv, fuelContents, inputContents, outputContents, stateData); + public int getFuelCost() { + return FUEL_COST; } @Override - public void tick() { - if (world == null || world.isRemote) return; - - if (world.getGameTime() % 10L == 0L) { - refuel(); - } - - DecomposerRecipe recipeToCraft = getRecipeForInput(world, inputContents).orElse(null); - if (recipeToCraft == null) { - stateData.cancelCrafting(); - } - else { - ItemStack itemToCraft = recipeToCraft.getRecipeOutput().copy(); - if (itemToCraft.isEmpty()) { - stateData.cancelCrafting(); - } - else { - if (outputContents.doesItemStackFit(0, itemToCraft)) { - if (stateData.getCraftingState() == CraftingState.NONE) { - stateData.setCraftingState(CraftingState.IN_PROGRESS); - stateData.clear(); //safe guard, shouldn't be needed - stateData.setCraftingGoalRecipe(recipeToCraft); // this also sets the time required for crafting - } - else if (!stateData.isCraftingCanceled()) { - DecomposerRecipe recipeCraftingGoal = stateData.getCraftingGoalRecipe(world).orElse(null); - if (recipeCraftingGoal == null || !areRecipesEqual(recipeToCraft, recipeCraftingGoal, true)) { - stateData.cancelCrafting(); - } - } - } - else { - if (stateData.getCraftingState() != CraftingState.COMPLETED) stateData.cancelCrafting(); - } - } - - //change crafting progress - if (stateData.getCraftingState() == CraftingState.IN_PROGRESS) { - if (consumeFuel()) stateData.timeElapsed += consumeSpeedFuel() ? 2 : 1; - else stateData.timeElapsed -= 2; + public boolean isItemValidFuel(ItemStack stack) { + return VALID_FUEL.test(stack); + } - if (stateData.timeElapsed < 0) stateData.timeElapsed = 0; - } + @Override + public float getFuelConversion(ItemStack stackIn) { + return FUEL_CONVERSION * (stackIn.getItem() == ModItems.NUTRIENT_BAR.get() ? 5 : 1); + } - //craft items - if (stateData.getCraftingState() == CraftingState.IN_PROGRESS || stateData.getCraftingState() == CraftingState.COMPLETED) { - if (stateData.timeElapsed >= stateData.timeForCompletion) { - stateData.setCraftingState(CraftingState.COMPLETED); - if (craftItems(recipeToCraft, world.rand)) { - stateData.setCraftingState(CraftingState.NONE); - } - } - } - } + @Override + public ItemStack getStackInFuelSlot() { + return fuelContents.getStackInSlot(0); + } - //clean-up states - if (stateData.isCraftingCanceled()) { - stateData.setCraftingState(CraftingState.NONE); - stateData.clear(); - } - else if (stateData.getCraftingState() == CraftingState.NONE) { - stateData.clear(); - } + @Override + public void setStackInFuelSlot(ItemStack stack) { + fuelContents.setInventorySlotContents(0, stack); + } - BlockState oldBlockState = world.getBlockState(pos); - BlockState newBlockState = oldBlockState.with(DecomposerBlock.DECOMPOSING, stateData.getCraftingState() == CraftingState.IN_PROGRESS); - if (!newBlockState.equals(oldBlockState)) { - world.setBlockState(pos, newBlockState, Constants.BlockFlags.BLOCK_UPDATE); - markDirty(); - } + @Override + protected boolean doesItemFitIntoOutputInventory(ItemStack stackToCraft) { + return outputContents.doesItemStackFit(0, stackToCraft); } - private boolean craftItems(DecomposerRecipe recipeToCraft, Random rand) { + @Override + protected boolean craftRecipe(DecomposerRecipe recipeToCraft, World world) { ItemStack result = recipeToCraft.getCraftingResult(inputContents); if (!result.isEmpty() && outputContents.doesItemStackFit(0, result)) { for (int idx = 0; idx < inputContents.getSizeInventory(); idx++) { @@ -191,7 +128,7 @@ private boolean craftItems(DecomposerRecipe recipeToCraft, Random rand) { //output optional byproducts for (Byproduct byproduct : recipeToCraft.getByproducts()) { - if (rand.nextFloat() <= byproduct.getChance()) { + if (world.rand.nextFloat() <= byproduct.getChance()) { ItemStack stack = byproduct.getItemStack(); for (int idx = 1; idx < outputContents.getSizeInventory(); idx++) { //index 0 is reserved for the main crafting output stack = outputContents.insertItemStack(idx, stack); //update stack with remainder @@ -205,50 +142,31 @@ private boolean craftItems(DecomposerRecipe recipeToCraft, Random rand) { return false; } - private boolean consumeSpeedFuel() { - if (stateData.speedFuel >= FUEL_COST + 5) { - stateData.speedFuel -= FUEL_COST + 5; - return true; - } - return false; + @Override + protected IInventory getInputInventory() { + return inputContents; } - private boolean consumeFuel() { - if (stateData.mainFuel >= FUEL_COST) { - stateData.mainFuel -= FUEL_COST; - return true; - } - return false; + @Override + protected ITextComponent getDefaultName() { + return TextUtil.getTranslationText("container", "decomposer"); } - public void refuel() { - if (stateData.mainFuel < MAX_FUEL) { - ItemStack stack = fuelContents.getStackInSlot(0); - if (isItemValidFuel(stack)) { - ItemStack remainder = addFuel(stack); - if (remainder.getCount() != stack.getCount()) { - fuelContents.setInventorySlotContents(0, remainder); - markDirty(); - } - } - } + @Nullable + @Override + public Container createMenu(int screenId, PlayerInventory playerInv, PlayerEntity player) { + return DecomposerContainer.createServerContainer(screenId, playerInv, fuelContents, inputContents, outputContents, stateData); } - public ItemStack addFuel(ItemStack stackIn) { - if (world == null || world.isRemote()) return stackIn; - - if (!stackIn.isEmpty() && stateData.mainFuel < MAX_FUEL) { - float fuelConversion = FUEL_CONVERSION * (stackIn.getItem() == ModItems.NUTRIENT_BAR.get() ? 5 : 1); - int itemsNeeded = Math.round(Math.max(0, MAX_FUEL - stateData.mainFuel) / fuelConversion); - int consumeAmount = Math.min(stackIn.getCount(), itemsNeeded); - if (consumeAmount > 0) { - stateData.mainFuel = (short) MathHelper.clamp(stateData.mainFuel + fuelConversion * consumeAmount, 0, MAX_FUEL + fuelConversion); - return ItemHandlerHelper.copyStackWithSize(stackIn, stackIn.getCount() - consumeAmount); - } + private boolean consumeSpeedFuel() { + if (stateData.speedFuel >= FUEL_COST + 5) { + stateData.speedFuel -= FUEL_COST + 5; + return true; } - return stackIn; + return false; } + @Override public void dropAllInvContents(World world, BlockPos pos) { InventoryHelper.dropInventoryItems(world, pos, fuelContents); InventoryHelper.dropInventoryItems(world, pos, inputContents); @@ -307,9 +225,4 @@ public LazyOptional getCapability(@Nonnull Capability cap, @Nullable D return super.getCapability(cap, side); } - @Override - protected ITextComponent getDefaultName() { - return TextUtil.getTranslationText("container", "decomposer"); - } - } diff --git a/src/main/java/com/github/elenterius/biomancy/tileentity/DigesterTileEntity.java b/src/main/java/com/github/elenterius/biomancy/tileentity/DigesterTileEntity.java index f1d740431..2854cd00c 100644 --- a/src/main/java/com/github/elenterius/biomancy/tileentity/DigesterTileEntity.java +++ b/src/main/java/com/github/elenterius/biomancy/tileentity/DigesterTileEntity.java @@ -1,14 +1,13 @@ package com.github.elenterius.biomancy.tileentity; -import com.github.elenterius.biomancy.block.DigesterBlock; import com.github.elenterius.biomancy.init.ModRecipes; import com.github.elenterius.biomancy.init.ModTileEntityTypes; import com.github.elenterius.biomancy.inventory.DigesterContainer; +import com.github.elenterius.biomancy.inventory.FuelInvContents; import com.github.elenterius.biomancy.inventory.SimpleInvContents; -import com.github.elenterius.biomancy.mixin.RecipeManagerMixinAccessor; +import com.github.elenterius.biomancy.recipe.BioMechanicalRecipeType; import com.github.elenterius.biomancy.recipe.Byproduct; import com.github.elenterius.biomancy.recipe.DigesterRecipe; -import com.github.elenterius.biomancy.tileentity.state.CraftingState; import com.github.elenterius.biomancy.tileentity.state.DigesterStateData; import com.github.elenterius.biomancy.util.TextUtil; import net.minecraft.block.BlockState; @@ -18,21 +17,16 @@ import net.minecraft.inventory.IInventory; import net.minecraft.inventory.InventoryHelper; import net.minecraft.inventory.container.Container; -import net.minecraft.inventory.container.INamedContainerProvider; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; -import net.minecraft.item.crafting.Ingredient; -import net.minecraft.item.crafting.RecipeManager; import net.minecraft.nbt.CompoundNBT; import net.minecraft.potion.PotionUtils; import net.minecraft.potion.Potions; -import net.minecraft.tileentity.ITickableTileEntity; import net.minecraft.util.Direction; import net.minecraft.util.math.BlockPos; import net.minecraft.util.text.ITextComponent; import net.minecraft.world.World; import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.util.Constants; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.fluids.FluidActionResult; import net.minecraftforge.fluids.FluidStack; @@ -40,14 +34,12 @@ import net.minecraftforge.fluids.capability.CapabilityFluidHandler; import net.minecraftforge.fluids.capability.IFluidHandler; import net.minecraftforge.items.CapabilityItemHandler; -import net.minecraftforge.items.ItemHandlerHelper; import javax.annotation.Nonnull; import javax.annotation.Nullable; -import java.util.Optional; -import java.util.Random; +import java.util.function.Predicate; -public class DigesterTileEntity extends OwnableTileEntity implements INamedContainerProvider, ITickableTileEntity { +public class DigesterTileEntity extends MachineTileEntity { public static final int FUEL_SLOTS_COUNT = 1; public static final int FUEL_OUT_SLOTS_COUNT = 1; @@ -56,130 +48,102 @@ public class DigesterTileEntity extends OwnableTileEntity implements INamedConta public static final int MAX_FUEL = 32_000; public static final short FUEL_COST = 1; + public static final Predicate VALID_FUEL = stack -> { + if (stack.getItem() == Items.POTION && PotionUtils.getPotionFromItem(stack) == Potions.WATER) return true; + return FluidUtil.getFluidContained(stack).map(DigesterTileEntity::isFluidValidFuel).orElse(false); + }; + public static final BioMechanicalRecipeType RECIPE_TYPE = ModRecipes.DIGESTER_RECIPE_TYPE; private final DigesterStateData stateData = new DigesterStateData(); - private final SimpleInvContents fuelContents; + private final FuelInvContents fuelContents; private final SimpleInvContents fuelOutContents; private final SimpleInvContents inputContents; private final SimpleInvContents outputContents; public DigesterTileEntity() { super(ModTileEntityTypes.DIGESTER.get()); - fuelContents = SimpleInvContents.createServerContents(FUEL_SLOTS_COUNT, this::canPlayerOpenInv, this::markDirty); - fuelOutContents = SimpleInvContents.createServerContents(FUEL_OUT_SLOTS_COUNT, this::canPlayerOpenInv, this::markDirty); + fuelContents = FuelInvContents.createServerContents(FUEL_SLOTS_COUNT, this::isItemValidFuel, this::canPlayerOpenInv, this::markDirty); + fuelOutContents = SimpleInvContents.createServerContents(FUEL_OUT_SLOTS_COUNT, SimpleInvContents.ISHandlerType.NO_INSERT, this::canPlayerOpenInv, this::markDirty); inputContents = SimpleInvContents.createServerContents(INPUT_SLOTS_COUNT, this::canPlayerOpenInv, this::markDirty); outputContents = SimpleInvContents.createServerContents(OUTPUT_SLOTS_COUNT, SimpleInvContents.ISHandlerType.NO_INSERT, this::canPlayerOpenInv, this::markDirty); } - public static Optional getRecipeForItem(World world, ItemStack stackIn) { - RecipeManagerMixinAccessor recipeManager = (RecipeManagerMixinAccessor) world.getRecipeManager(); - - return recipeManager.callGetRecipes(ModRecipes.DIGESTER_RECIPE_TYPE).values().stream().map((recipe) -> (DigesterRecipe) recipe) - .filter(recipe -> { - for (Ingredient ingredient : recipe.getIngredients()) { - if (ingredient.test(stackIn)) return true; - } - return false; - }).findFirst(); + @Override + protected DigesterStateData getStateData() { + return stateData; } - public static boolean areRecipesEqual(DigesterRecipe recipeA, DigesterRecipe recipeB, boolean relaxed) { - boolean flag = recipeA.getId().equals(recipeB.getId()); - if (!relaxed && !ItemHandlerHelper.canItemStacksStack(recipeA.getRecipeOutput(), recipeB.getRecipeOutput())) { - return false; - } - return flag; + @Override + public BioMechanicalRecipeType getRecipeType() { + return RECIPE_TYPE; } - public static Optional getRecipeForInput(World world, IInventory inputInv) { - RecipeManager recipeManager = world.getRecipeManager(); - return recipeManager.getRecipe(ModRecipes.DIGESTER_RECIPE_TYPE, inputInv, world); + @Override + public int getFuelAmount() { + return stateData.fuel.getFluidAmount(); } @Override - protected ITextComponent getDefaultName() { - return TextUtil.getTranslationText("container", "digester"); + public void setFuelAmount(int newAmount) { + if (stateData.fuel.isEmpty()) { + stateData.fuel.setFluid(new FluidStack(Fluids.WATER, newAmount)); + } + else { + stateData.fuel.getFluid().setAmount(newAmount); + } } - @Nullable @Override - public Container createMenu(int screenId, PlayerInventory playerInv, PlayerEntity player) { - return DigesterContainer.createServerContainer(screenId, playerInv, fuelContents, fuelOutContents, inputContents, outputContents, stateData); + public void addFuelAmount(int addAmount) { + if (stateData.fuel.isEmpty()) { + if (addAmount > 0) stateData.fuel.setFluid(new FluidStack(Fluids.WATER, addAmount)); + } + else { + stateData.fuel.getFluid().grow(addAmount); + } } @Override - public void tick() { - if (world == null || world.isRemote) return; + public int getMaxFuelAmount() { + return MAX_FUEL; + } - if (world.getGameTime() % 10L == 0L) { - refuel(); - } + @Override + public int getFuelCost() { + return FUEL_COST; + } - DigesterRecipe recipeToCraft = getRecipeForInput(world, inputContents).orElse(null); - if (recipeToCraft == null) { - stateData.cancelCrafting(); - } - else { - ItemStack itemToCraft = recipeToCraft.getRecipeOutput(); // .copy() - if (itemToCraft.isEmpty()) { - stateData.cancelCrafting(); - } - else { - if (outputContents.doesItemStackFit(0, itemToCraft)) { - if (stateData.getCraftingState() == CraftingState.NONE) { - stateData.setCraftingState(CraftingState.IN_PROGRESS); - stateData.clear(); //safe guard, shouldn't be needed - stateData.setCraftingGoalRecipe(recipeToCraft); // this also sets the time required for crafting - } - else if (!stateData.isCraftingCanceled()) { - DigesterRecipe recipeCraftingGoal = stateData.getCraftingGoalRecipe(world).orElse(null); - if (recipeCraftingGoal == null || !areRecipesEqual(recipeToCraft, recipeCraftingGoal, true)) { - stateData.cancelCrafting(); - } - } - } - else { - if (stateData.getCraftingState() != CraftingState.COMPLETED) stateData.cancelCrafting(); - } - } + public static boolean isFluidValidFuel(FluidStack fluidStack) { + return fluidStack.getFluid() == Fluids.WATER; + } - //change crafting progress - if (stateData.getCraftingState() == CraftingState.IN_PROGRESS) { - if (consumeFuel()) stateData.timeElapsed += 1; - else stateData.timeElapsed -= 2; + @Override + public boolean isItemValidFuel(ItemStack stack) { + return VALID_FUEL.test(stack); + } - if (stateData.timeElapsed < 0) stateData.timeElapsed = 0; - } + @Override + public float getFuelConversion(ItemStack stackIn) { + return 1; + } - //craft items - if (stateData.getCraftingState() == CraftingState.IN_PROGRESS || stateData.getCraftingState() == CraftingState.COMPLETED) { - if (stateData.timeElapsed >= stateData.timeForCompletion) { - stateData.setCraftingState(CraftingState.COMPLETED); - if (craftItems(recipeToCraft, world.rand)) { - stateData.setCraftingState(CraftingState.NONE); - } - } - } - } + @Override + public ItemStack getStackInFuelSlot() { + return fuelContents.getStackInSlot(0); + } - //clean-up states - if (stateData.isCraftingCanceled()) { - stateData.setCraftingState(CraftingState.NONE); - stateData.clear(); - } - else if (stateData.getCraftingState() == CraftingState.NONE) { - stateData.clear(); - } + @Override + public void setStackInFuelSlot(ItemStack stack) { + fuelContents.setInventorySlotContents(0, stack); + } - BlockState oldBlockState = world.getBlockState(pos); - BlockState newBlockState = oldBlockState.with(DigesterBlock.CRAFTING, stateData.getCraftingState() == CraftingState.IN_PROGRESS); - if (!newBlockState.equals(oldBlockState)) { - world.setBlockState(pos, newBlockState, Constants.BlockFlags.BLOCK_UPDATE); - markDirty(); - } + @Override + protected boolean doesItemFitIntoOutputInventory(ItemStack stackToCraft) { + return outputContents.doesItemStackFit(0, stackToCraft); } - private boolean craftItems(DigesterRecipe recipeToCraft, Random rand) { + @Override + protected boolean craftRecipe(DigesterRecipe recipeToCraft, World world) { ItemStack result = recipeToCraft.getCraftingResult(inputContents); if (!result.isEmpty() && outputContents.doesItemStackFit(0, result)) { for (int idx = 0; idx < inputContents.getSizeInventory(); idx++) { @@ -188,7 +152,7 @@ private boolean craftItems(DigesterRecipe recipeToCraft, Random rand) { outputContents.insertItemStack(0, result); Byproduct byproduct = recipeToCraft.getByproduct(); - if (byproduct != null && rand.nextFloat() <= byproduct.getChance()) { + if (byproduct != null && world.rand.nextFloat() <= byproduct.getChance()) { ItemStack stack = byproduct.getItemStack(); for (int idx = 1; idx < outputContents.getSizeInventory(); idx++) { //index 0 is reserved for the main crafting output stack = outputContents.insertItemStack(idx, stack); //update stack with remainder @@ -202,23 +166,7 @@ private boolean craftItems(DigesterRecipe recipeToCraft, Random rand) { return false; } - private boolean consumeFuel() { - if (stateData.fuel.getFluidAmount() >= FUEL_COST) { - stateData.fuel.getFluid().shrink(FUEL_COST); - return true; - } - return false; - } - - public static boolean isFluidValidFuel(FluidStack fluidStack) { - return fluidStack.getFluid() == Fluids.WATER; - } - - public static boolean isItemValidFuel(ItemStack stack) { - if (stack.getItem() == Items.POTION && PotionUtils.getPotionFromItem(stack) == Potions.WATER) return true; - return FluidUtil.getFluidContained(stack).map(DigesterTileEntity::isFluidValidFuel).orElse(false); - } - + @Override public void refuel() { int fluidAmount = stateData.fuel.getFluidAmount(); int maxFluidAmount = stateData.fuel.getCapacity(); @@ -253,6 +201,23 @@ public void refuel() { } } + @Override + protected IInventory getInputInventory() { + return inputContents; + } + + @Override + protected ITextComponent getDefaultName() { + return TextUtil.getTranslationText("container", "digester"); + } + + @Nullable + @Override + public Container createMenu(int screenId, PlayerInventory playerInv, PlayerEntity player) { + return DigesterContainer.createServerContainer(screenId, playerInv, fuelContents, fuelOutContents, inputContents, outputContents, stateData); + } + + @Override public void dropAllInvContents(World world, BlockPos pos) { InventoryHelper.dropInventoryItems(world, pos, fuelContents); InventoryHelper.dropInventoryItems(world, pos, fuelOutContents); diff --git a/src/main/java/com/github/elenterius/biomancy/tileentity/EvolutionPoolTileEntity.java b/src/main/java/com/github/elenterius/biomancy/tileentity/EvolutionPoolTileEntity.java index c82b65742..b7cbc8f63 100644 --- a/src/main/java/com/github/elenterius/biomancy/tileentity/EvolutionPoolTileEntity.java +++ b/src/main/java/com/github/elenterius/biomancy/tileentity/EvolutionPoolTileEntity.java @@ -1,13 +1,13 @@ package com.github.elenterius.biomancy.tileentity; -import com.github.elenterius.biomancy.block.EvolutionPoolBlock; import com.github.elenterius.biomancy.init.ModBlocks; import com.github.elenterius.biomancy.init.ModItems; import com.github.elenterius.biomancy.init.ModRecipes; import com.github.elenterius.biomancy.init.ModTileEntityTypes; import com.github.elenterius.biomancy.inventory.EvolutionPoolContainer; +import com.github.elenterius.biomancy.inventory.FuelInvContents; import com.github.elenterius.biomancy.inventory.SimpleInvContents; -import com.github.elenterius.biomancy.mixin.RecipeManagerMixinAccessor; +import com.github.elenterius.biomancy.recipe.BioMechanicalRecipeType; import com.github.elenterius.biomancy.recipe.EvolutionPoolRecipe; import com.github.elenterius.biomancy.tileentity.state.CraftingState; import com.github.elenterius.biomancy.tileentity.state.EvolutionPoolStateData; @@ -18,19 +18,14 @@ import net.minecraft.inventory.IInventory; import net.minecraft.inventory.InventoryHelper; import net.minecraft.inventory.container.Container; -import net.minecraft.inventory.container.INamedContainerProvider; import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.Ingredient; -import net.minecraft.item.crafting.RecipeManager; import net.minecraft.nbt.CompoundNBT; import net.minecraft.nbt.INBT; import net.minecraft.nbt.ListNBT; import net.minecraft.nbt.LongNBT; -import net.minecraft.tileentity.ITickableTileEntity; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Direction; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; import net.minecraft.util.text.ITextComponent; import net.minecraft.world.TickPriority; import net.minecraft.world.World; @@ -38,15 +33,14 @@ import net.minecraftforge.common.util.Constants; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.items.CapabilityItemHandler; -import net.minecraftforge.items.ItemHandlerHelper; import javax.annotation.Nonnull; import javax.annotation.Nullable; import java.util.HashSet; -import java.util.Optional; import java.util.Set; +import java.util.function.Predicate; -public class EvolutionPoolTileEntity extends OwnableTileEntity implements INamedContainerProvider, ITickableTileEntity { +public class EvolutionPoolTileEntity extends MachineTileEntity{ public static final int FUEL_SLOTS_COUNT = 1; public static final int INPUT_SLOTS_COUNT = 6; @@ -55,10 +49,12 @@ public class EvolutionPoolTileEntity extends OwnableTileEntity implements INamed public static final int DEFAULT_TIME = 400; public static final int MAX_FUEL = 32_000; public static final short FUEL_COST = 2; - public static final float FUEL_CONVERSION = FUEL_COST * DEFAULT_TIME / 4f; + public static final float FUEL_CONVERSION = 200; // FUEL_COST * DEFAULT_TIME / 4f + public static final Predicate VALID_FUEL = stack -> stack.getItem() == ModItems.MUTAGENIC_BILE.get(); + public static final BioMechanicalRecipeType RECIPE_TYPE = ModRecipes.EVOLUTION_POOL_RECIPE_TYPE; private final EvolutionPoolStateData stateData = new EvolutionPoolStateData(); - private final SimpleInvContents fuelContents; + private final FuelInvContents fuelContents; private final SimpleInvContents inputContents; private final SimpleInvContents outputContents; private final Set subTiles = new HashSet<>(); @@ -66,38 +62,88 @@ public class EvolutionPoolTileEntity extends OwnableTileEntity implements INamed public EvolutionPoolTileEntity() { super(ModTileEntityTypes.EVOLUTION_POOL.get()); - fuelContents = SimpleInvContents.createServerContents(FUEL_SLOTS_COUNT, this::canPlayerOpenInv, this::markDirty); + fuelContents = FuelInvContents.createServerContents(FUEL_SLOTS_COUNT, this::isItemValidFuel, this::canPlayerOpenInv, this::markDirty); inputContents = SimpleInvContents.createServerContents(INPUT_SLOTS_COUNT, this::canPlayerOpenInv, this::markDirty); outputContents = SimpleInvContents.createServerContents(OUTPUT_SLOTS_COUNT, SimpleInvContents.ISHandlerType.NO_INSERT, this::canPlayerOpenInv, this::markDirty); } - public static Optional getRecipeForItem(World world, ItemStack stackIn) { - RecipeManagerMixinAccessor recipeManager = (RecipeManagerMixinAccessor) world.getRecipeManager(); + @Override + protected EvolutionPoolStateData getStateData() { + return stateData; + } - return recipeManager.callGetRecipes(ModRecipes.EVOLUTION_POOL_RECIPE_TYPE).values().stream().map((recipe) -> (EvolutionPoolRecipe) recipe) - .filter(recipe -> { - for (Ingredient ingredient : recipe.getIngredients()) { - if (ingredient.test(stackIn)) return true; - } - return false; - }).findFirst(); + @Override + public BioMechanicalRecipeType getRecipeType() { + return RECIPE_TYPE; } - public static boolean areRecipesEqual(EvolutionPoolRecipe recipeA, EvolutionPoolRecipe recipeB, boolean relaxed) { - boolean flag = recipeA.getId().equals(recipeB.getId()); - if (!relaxed && !ItemHandlerHelper.canItemStacksStack(recipeA.getRecipeOutput(), recipeB.getRecipeOutput())) { - return false; - } - return flag; + @Override + public int getFuelAmount() { + return stateData.fuel; + } + + @Override + public void setFuelAmount(int newAmount) { + stateData.fuel = (short) newAmount; + } + + @Override + public void addFuelAmount(int addAmount) { + stateData.fuel += addAmount; + } + + @Override + public int getMaxFuelAmount() { + return MAX_FUEL; + } + + @Override + public int getFuelCost() { + return FUEL_COST; + } + + @Override + public boolean isItemValidFuel(ItemStack stack) { + return VALID_FUEL.test(stack); + } + + @Override + public float getFuelConversion(ItemStack stackIn) { + return FUEL_CONVERSION; } - public static Optional getRecipeForInput(World world, IInventory inputInv) { - RecipeManager recipeManager = world.getRecipeManager(); - return recipeManager.getRecipe(ModRecipes.EVOLUTION_POOL_RECIPE_TYPE, inputInv, world); + @Override + public ItemStack getStackInFuelSlot() { + return fuelContents.getStackInSlot(0); + } + + @Override + public void setStackInFuelSlot(ItemStack stack) { + fuelContents.setInventorySlotContents(0, stack); } - public static boolean isItemValidFuel(ItemStack stack) { - return stack.getItem() == ModItems.MUTAGENIC_BILE.get(); + @Override + protected boolean doesItemFitIntoOutputInventory(ItemStack stackToCraft) { + return outputContents.doesItemStackFit(0, stackToCraft); + } + + @Override + protected boolean craftRecipe(EvolutionPoolRecipe recipeToCraft, World world) { + ItemStack result = recipeToCraft.getCraftingResult(inputContents); + if (!result.isEmpty() && outputContents.doesItemStackFit(0, result)) { + for (int idx = 0; idx < inputContents.getSizeInventory(); idx++) { + inputContents.decrStackSize(idx, 1); + } + outputContents.insertItemStack(0, result); + markDirty(); + return true; + } + return false; + } + + @Override + protected IInventory getInputInventory() { + return inputContents; } @Override @@ -213,75 +259,19 @@ public boolean validateSubTile(World worldIn, BlockPos posIn) { @Override public void tick() { if (world == null || world.isRemote || !isValidMultiBlock) return; + super.tick(); + } - if (world.getGameTime() % 10L == 0L) { - refuel(); - } - - EvolutionPoolRecipe recipeToCraft = getRecipeForInput(world, inputContents).orElse(null); - if (recipeToCraft == null) { - stateData.cancelCrafting(); - } - else { - ItemStack itemToCraft = recipeToCraft.getRecipeOutput().copy(); - if (itemToCraft.isEmpty()) { - stateData.cancelCrafting(); - } - else { - if (outputContents.doesItemStackFit(0, itemToCraft)) { - if (stateData.getCraftingState() == CraftingState.NONE) { - stateData.setCraftingState(CraftingState.IN_PROGRESS); - stateData.clear(); //safe guard, shouldn't be needed - stateData.setCraftingGoalRecipe(recipeToCraft); // this also sets the time required for crafting - } - else if (!stateData.isCraftingCanceled()) { - EvolutionPoolRecipe recipeCraftingGoal = stateData.getCraftingGoalRecipe(world).orElse(null); - if (recipeCraftingGoal == null || !areRecipesEqual(recipeToCraft, recipeCraftingGoal, true)) { - stateData.cancelCrafting(); - } - } - } - else { - if (stateData.getCraftingState() != CraftingState.COMPLETED) stateData.cancelCrafting(); - } - } - - //change crafting progress - if (stateData.getCraftingState() == CraftingState.IN_PROGRESS) { - if (consumeFuel()) stateData.timeElapsed += 1; - else stateData.timeElapsed -= 2; - - if (stateData.timeElapsed < 0) stateData.timeElapsed = 0; - } - - //craft items - if (stateData.getCraftingState() == CraftingState.IN_PROGRESS || stateData.getCraftingState() == CraftingState.COMPLETED) { - if (stateData.timeElapsed >= stateData.timeForCompletion) { - stateData.setCraftingState(CraftingState.COMPLETED); - if (craftItem(recipeToCraft)) { - stateData.setCraftingState(CraftingState.NONE); - } - } - } - } - - //clean-up states - if (stateData.isCraftingCanceled()) { - stateData.setCraftingState(CraftingState.NONE); - stateData.clear(); - } - else if (stateData.getCraftingState() == CraftingState.NONE) { - stateData.clear(); - } - - updateMultiBlockStates(world, stateData.getCraftingState() == CraftingState.IN_PROGRESS); + @Override + protected void updateBlockState(World world, EvolutionPoolStateData tileState, boolean powerBlock) { + updateMultiBlockStates(world, tileState.getCraftingState() == CraftingState.IN_PROGRESS); } private void updateMultiBlockStates(World worldIn, boolean isCraftingInProgress) { boolean isDirty = false; BlockState oldBlockState = worldIn.getBlockState(pos); - BlockState newBlockState = oldBlockState.with(EvolutionPoolBlock.CRAFTING, isCraftingInProgress); + BlockState newBlockState = oldBlockState.with(getIsCraftingBlockStateProperty(), isCraftingInProgress); if (!newBlockState.equals(oldBlockState)) { worldIn.setBlockState(pos, newBlockState, Constants.BlockFlags.BLOCK_UPDATE); isDirty = true; @@ -289,7 +279,7 @@ private void updateMultiBlockStates(World worldIn, boolean isCraftingInProgress) for (BlockPos subPos : subTiles) { oldBlockState = worldIn.getBlockState(subPos); - newBlockState = oldBlockState.with(EvolutionPoolBlock.CRAFTING, isCraftingInProgress); + newBlockState = oldBlockState.with(getIsCraftingBlockStateProperty(), isCraftingInProgress); if (!newBlockState.equals(oldBlockState)) { worldIn.setBlockState(subPos, newBlockState, Constants.BlockFlags.BLOCK_UPDATE); isDirty = true; @@ -299,54 +289,7 @@ private void updateMultiBlockStates(World worldIn, boolean isCraftingInProgress) if (isDirty) markDirty(); } - private boolean consumeFuel() { - if (stateData.fuel >= FUEL_COST) { - stateData.fuel -= FUEL_COST; - return true; - } - return false; - } - - private boolean craftItem(EvolutionPoolRecipe recipeToCraft) { - ItemStack result = recipeToCraft.getCraftingResult(inputContents); - if (!result.isEmpty() && outputContents.doesItemStackFit(0, result)) { - for (int idx = 0; idx < inputContents.getSizeInventory(); idx++) { - inputContents.decrStackSize(idx, 1); - } - outputContents.insertItemStack(0, result); - markDirty(); - return true; - } - return false; - } - - public void refuel() { - if (stateData.fuel < MAX_FUEL) { - ItemStack stack = fuelContents.getStackInSlot(0); - if (isItemValidFuel(stack)) { - ItemStack remainder = addFuel(stack); - if (remainder.getCount() != stack.getCount()) { - fuelContents.setInventorySlotContents(0, remainder); - markDirty(); - } - } - } - } - - public ItemStack addFuel(ItemStack stackIn) { - if (world == null || world.isRemote()) return stackIn; - - if (!stackIn.isEmpty() && stateData.fuel < MAX_FUEL) { - int itemsNeeded = Math.round(Math.max(0, MAX_FUEL - stateData.fuel) / FUEL_CONVERSION); - int consumeAmount = Math.min(stackIn.getCount(), itemsNeeded); - if (consumeAmount > 0) { - stateData.fuel = (short) MathHelper.clamp(stateData.fuel + FUEL_CONVERSION * consumeAmount, 0, MAX_FUEL + FUEL_CONVERSION); - return ItemHandlerHelper.copyStackWithSize(stackIn, stackIn.getCount() - consumeAmount); - } - } - return stackIn; - } - + @Override public void dropAllInvContents(World world, BlockPos pos) { InventoryHelper.dropInventoryItems(world, pos, fuelContents); InventoryHelper.dropInventoryItems(world, pos, inputContents); diff --git a/src/main/java/com/github/elenterius/biomancy/tileentity/MachineTileEntity.java b/src/main/java/com/github/elenterius/biomancy/tileentity/MachineTileEntity.java new file mode 100644 index 000000000..2a7d42928 --- /dev/null +++ b/src/main/java/com/github/elenterius/biomancy/tileentity/MachineTileEntity.java @@ -0,0 +1,203 @@ +package com.github.elenterius.biomancy.tileentity; + +import com.github.elenterius.biomancy.block.MachineBlock; +import com.github.elenterius.biomancy.recipe.AbstractBioMechanicalRecipe; +import com.github.elenterius.biomancy.recipe.BioMechanicalRecipeType; +import com.github.elenterius.biomancy.tileentity.state.CraftingState; +import com.github.elenterius.biomancy.tileentity.state.RecipeCraftingStateData; +import net.minecraft.block.BlockState; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.container.INamedContainerProvider; +import net.minecraft.item.ItemStack; +import net.minecraft.state.BooleanProperty; +import net.minecraft.tileentity.ITickableTileEntity; +import net.minecraft.tileentity.TileEntityType; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.util.Constants; +import net.minecraftforge.items.ItemHandlerHelper; + +import javax.annotation.Nullable; + +public abstract class MachineTileEntity> extends OwnableTileEntity implements INamedContainerProvider, ITickableTileEntity { + + public MachineTileEntity(TileEntityType entityType) { + super(entityType); + } + + protected abstract S getStateData(); + + public abstract BioMechanicalRecipeType getRecipeType(); + + public abstract int getFuelAmount(); + + public abstract void setFuelAmount(int newAmount); + + public abstract void addFuelAmount(int addAmount); + + public abstract int getMaxFuelAmount(); + + public abstract int getFuelCost(); + + public abstract boolean isItemValidFuel(ItemStack stack); + + public abstract float getFuelConversion(ItemStack stackIn); + + public abstract ItemStack getStackInFuelSlot(); + + public abstract void setStackInFuelSlot(ItemStack stack); + + protected abstract boolean doesItemFitIntoOutputInventory(ItemStack stackToCraft); + + protected abstract boolean craftRecipe(R recipeToCraft, World world); + + @Nullable + protected R resolveRecipeFromInventory(World world, IInventory inputInv) { + return getRecipeType().getRecipeFromInventory(world, inputInv).orElse(null); + } + + protected abstract IInventory getInputInventory(); + + public abstract void dropAllInvContents(World world, BlockPos pos); + + public boolean consumeFuel() { + int fuelCost = getFuelCost(); + if (getFuelAmount() >= fuelCost) { + addFuelAmount(-fuelCost); + return true; + } + return false; + } + + public void refuel() { + if (getFuelAmount() < getMaxFuelAmount()) { + ItemStack stack = getStackInFuelSlot(); + if (isItemValidFuel(stack)) { + ItemStack remainder = addFuel(stack); + if (remainder.getCount() != stack.getCount()) { + setStackInFuelSlot(remainder); + markDirty(); + } + } + } + } + + public ItemStack addFuel(ItemStack stackIn) { + if (world == null || world.isRemote()) return stackIn; + + if (!stackIn.isEmpty() && getFuelAmount() < getMaxFuelAmount()) { + float fuelConversion = getFuelConversion(stackIn); + int itemsNeeded = Math.round(Math.max(0, getMaxFuelAmount() - getFuelAmount()) / fuelConversion); + int consumeAmount = Math.min(stackIn.getCount(), itemsNeeded); + if (consumeAmount > 0) { + short newFuel = (short) MathHelper.clamp(getFuelAmount() + fuelConversion * consumeAmount, 0, getMaxFuelAmount() + fuelConversion); + setFuelAmount(newFuel); + return ItemHandlerHelper.copyStackWithSize(stackIn, stackIn.getCount() - consumeAmount); + } + } + return stackIn; + } + + @Override + public void tick() { + if (world == null || world.isRemote) return; + + if (world.getGameTime() % 10L == 0L) { + refuel(); + } + + R craftingGoal = resolveRecipeFromInventory(world, getInputInventory()); //get the currently possible crafting goal + S state = getStateData(); + boolean emitRedstoneSignal = false; + if (craftingGoal == null) { + state.cancelCrafting(); + } + else { + ItemStack itemToCraft = craftingGoal.getRecipeOutput(); // this should be a ItemStack.copy() + if (itemToCraft.isEmpty()) { + state.cancelCrafting(); + } + else { + if (doesItemFitIntoOutputInventory(itemToCraft)) { + if (state.getCraftingState() == CraftingState.NONE) { // nothing is being crafted, try to start crafting + int totalFuelCost = craftingGoal.getCraftingTime() * getFuelCost(); + if (getFuelAmount() >= totalFuelCost) { //make sure there is enough fuel to craft the recipe + state.setCraftingState(CraftingState.IN_PROGRESS); + state.clear(); //safe guard, shouldn't be needed + state.setCraftingGoalRecipe(craftingGoal); // this also sets the time required for crafting + } + } + else if (!state.isCraftingCanceled()) { // something is being crafted, check that the crafting goals match + R prevCraftingGoal = state.getCraftingGoalRecipe(world).orElse(null); + if (prevCraftingGoal == null || !craftingGoal.areRecipesEqual(prevCraftingGoal, true)) { + state.cancelCrafting(); + } + } + } + else { + if (state.getCraftingState() != CraftingState.COMPLETED) { + state.cancelCrafting(); + } + } + } + + //change crafting progress + if (state.getCraftingState() == CraftingState.IN_PROGRESS) { + if (consumeFuel()) state.timeElapsed += 1; + else state.timeElapsed -= 2; + + if (state.timeElapsed < 0) state.timeElapsed = 0; + } + + //craft the recipe output + if (state.getCraftingState() == CraftingState.IN_PROGRESS || state.getCraftingState() == CraftingState.COMPLETED) { + if (state.timeElapsed >= state.timeForCompletion) { + state.setCraftingState(CraftingState.COMPLETED); + if (craftRecipe(craftingGoal, world)) { + emitRedstoneSignal = true; + state.setCraftingState(CraftingState.NONE); + } + } + } + } + + //clean-up states + if (state.isCraftingCanceled()) { + state.setCraftingState(CraftingState.NONE); + state.clear(); + } + else if (state.getCraftingState() == CraftingState.NONE) { + state.clear(); + } + + //update BlockState to reflect tile state + updateBlockState(world, state, emitRedstoneSignal); + } + + protected BooleanProperty getIsCraftingBlockStateProperty() { + return MachineBlock.CRAFTING; + } + + protected void updateBlockState(World world, S tileState, boolean redstoneSignal) { + BlockState oldBlockState = world.getBlockState(pos); + BlockState newBlockState = oldBlockState.with(getIsCraftingBlockStateProperty(), tileState.getCraftingState() == CraftingState.IN_PROGRESS); + if (!newBlockState.equals(oldBlockState)) { + if (redstoneSignal) { + if (newBlockState.getBlock() instanceof MachineBlock) { + ((MachineBlock) newBlockState.getBlock()).powerBlock(world, pos, newBlockState); + } + } + else { + world.setBlockState(pos, newBlockState, Constants.BlockFlags.BLOCK_UPDATE); + } + markDirty(); + } + else if (redstoneSignal) { + if (newBlockState.getBlock() instanceof MachineBlock) { + ((MachineBlock) newBlockState.getBlock()).powerBlock(world, pos, oldBlockState); + } + } + } + +} diff --git a/src/main/java/com/github/elenterius/biomancy/tileentity/state/ChewerStateData.java b/src/main/java/com/github/elenterius/biomancy/tileentity/state/ChewerStateData.java index 1f70a651c..3e070066a 100644 --- a/src/main/java/com/github/elenterius/biomancy/tileentity/state/ChewerStateData.java +++ b/src/main/java/com/github/elenterius/biomancy/tileentity/state/ChewerStateData.java @@ -2,20 +2,12 @@ import com.github.elenterius.biomancy.recipe.ChewerRecipe; import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.IIntArray; -public class ChewerStateData extends RecipeCraftingStateData implements IIntArray { +public class ChewerStateData extends RecipeCraftingStateData { - public static final String NBT_KEY_TIME_ELAPSED = "TimeElapsed"; - public static final String NBT_KEY_TIME_FOR_COMPLETION = "TimeForCompletion"; public static final String NBT_KEY_FUEL = "Fuel"; - - public static final int TIME_INDEX = 0; - public static final int TIME_FOR_COMPLETION_INDEX = 1; public static final int FUEL_INDEX = 2; - public int timeElapsed; - public int timeForCompletion; public short fuel; //biofuel (nutrient paste) @Override @@ -23,39 +15,18 @@ Class getRecipeType() { return ChewerRecipe.class; } - @Override - public void setCraftingGoalRecipe(ChewerRecipe recipe) { - super.setCraftingGoalRecipe(recipe); - timeForCompletion = recipe.getCraftingTime(); - } - - @Override - public void clear() { - timeElapsed = 0; - timeForCompletion = 0; - super.clear(); - } - @Override public void serializeNBT(CompoundNBT nbt) { super.serializeNBT(nbt); - nbt.putInt(NBT_KEY_TIME_ELAPSED, timeElapsed); - nbt.putInt(NBT_KEY_TIME_FOR_COMPLETION, timeForCompletion); nbt.putShort(NBT_KEY_FUEL, fuel); } @Override public void deserializeNBT(CompoundNBT nbt) { super.deserializeNBT(nbt); - timeElapsed = nbt.getInt(NBT_KEY_TIME_ELAPSED); - timeForCompletion = nbt.getInt(NBT_KEY_TIME_FOR_COMPLETION); fuel = nbt.getShort(NBT_KEY_FUEL); } - private void validateIndex(int index) { - if (index < 0 || index >= size()) throw new IndexOutOfBoundsException("Index out of bounds:" + index); - } - @Override public int get(int index) { validateIndex(index); diff --git a/src/main/java/com/github/elenterius/biomancy/tileentity/state/DecomposerStateData.java b/src/main/java/com/github/elenterius/biomancy/tileentity/state/DecomposerStateData.java index 07f2ab1bd..0d39e3baf 100644 --- a/src/main/java/com/github/elenterius/biomancy/tileentity/state/DecomposerStateData.java +++ b/src/main/java/com/github/elenterius/biomancy/tileentity/state/DecomposerStateData.java @@ -2,23 +2,16 @@ import com.github.elenterius.biomancy.recipe.DecomposerRecipe; import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.IIntArray; -public class DecomposerStateData extends RecipeCraftingStateData implements IIntArray { +public class DecomposerStateData extends RecipeCraftingStateData { - public static final int TIME_INDEX = 0; - public static final int TIME_FOR_COMPLETION_INDEX = 1; public static final int FUEL_INDEX = 2; public static final int SPEED_FUEL_INDEX = 3; - public static final String NBT_KEY_TIME_ELAPSED = "TimeElapsed"; - public static final String NBT_KEY_TIME_FOR_COMPLETION = "TimeForCompletion"; public static final String NBT_KEY_MAIN_FUEL = "MainFuel"; public static final String NBT_KEY_SPEED_FUEL = "SpeedFuel"; - public int timeElapsed; - public int timeForCompletion; - public short mainFuel; //raw-meat (fake "saturation", we use the food healing value instead) + public short fuel; //raw-meat (fake "saturation", we use the food healing value instead) public short speedFuel; //glucose ("candy", food that contains sugar) @Override @@ -26,34 +19,17 @@ Class getRecipeType() { return DecomposerRecipe.class; } - @Override - public void setCraftingGoalRecipe(DecomposerRecipe recipe) { - super.setCraftingGoalRecipe(recipe); - timeForCompletion = recipe.getDecomposingTime(); - } - - @Override - public void clear() { - timeElapsed = 0; - timeForCompletion = 0; - super.clear(); - } - @Override public void serializeNBT(CompoundNBT nbt) { super.serializeNBT(nbt); - if (timeElapsed > 0) nbt.putInt(NBT_KEY_TIME_ELAPSED, timeElapsed); - if (timeForCompletion > 0) nbt.putInt(NBT_KEY_TIME_FOR_COMPLETION, timeForCompletion); - if (mainFuel > 0) nbt.putShort(NBT_KEY_MAIN_FUEL, mainFuel); + if (fuel > 0) nbt.putShort(NBT_KEY_MAIN_FUEL, fuel); if (speedFuel > 0) nbt.putShort(NBT_KEY_SPEED_FUEL, speedFuel); } @Override public void deserializeNBT(CompoundNBT nbt) { super.deserializeNBT(nbt); - timeElapsed = nbt.getInt(NBT_KEY_TIME_ELAPSED); - timeForCompletion = nbt.getInt(NBT_KEY_TIME_FOR_COMPLETION); - mainFuel = nbt.getShort(NBT_KEY_MAIN_FUEL); + fuel = nbt.getShort(NBT_KEY_MAIN_FUEL); speedFuel = nbt.getShort(NBT_KEY_SPEED_FUEL); } @@ -62,7 +38,7 @@ public int get(int index) { validateIndex(index); if (index == TIME_INDEX) return timeElapsed; else if (index == TIME_FOR_COMPLETION_INDEX) return timeForCompletion; - else if (index == FUEL_INDEX) return mainFuel; + else if (index == FUEL_INDEX) return fuel; else if (index == SPEED_FUEL_INDEX) return speedFuel; else return 0; } @@ -72,14 +48,10 @@ public void set(int index, int value) { validateIndex(index); if (index == TIME_INDEX) timeElapsed = value; else if (index == TIME_FOR_COMPLETION_INDEX) timeForCompletion = value; - else if (index == FUEL_INDEX) mainFuel = (short) value; + else if (index == FUEL_INDEX) fuel = (short) value; else if (index == SPEED_FUEL_INDEX) speedFuel = (short) value; } - private void validateIndex(int index) { - if (index < 0 || index >= size()) throw new IndexOutOfBoundsException("Index out of bounds:" + index); - } - @Override public int size() { return 4; diff --git a/src/main/java/com/github/elenterius/biomancy/tileentity/state/DigesterStateData.java b/src/main/java/com/github/elenterius/biomancy/tileentity/state/DigesterStateData.java index 1538274db..543997592 100644 --- a/src/main/java/com/github/elenterius/biomancy/tileentity/state/DigesterStateData.java +++ b/src/main/java/com/github/elenterius/biomancy/tileentity/state/DigesterStateData.java @@ -4,25 +4,16 @@ import com.github.elenterius.biomancy.tileentity.DigesterTileEntity; import net.minecraft.fluid.Fluids; import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.IIntArray; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.capability.IFluidHandler; import net.minecraftforge.fluids.capability.templates.FluidTank; -public class DigesterStateData extends RecipeCraftingStateData implements IIntArray { +public class DigesterStateData extends RecipeCraftingStateData { - public static final String NBT_KEY_TIME_ELAPSED = "TimeElapsed"; - public static final String NBT_KEY_TIME_FOR_COMPLETION = "TimeForCompletion"; public static final String NBT_KEY_FUEL = "Fuel"; - - public static final int TIME_INDEX = 0; - public static final int TIME_FOR_COMPLETION_INDEX = 1; public static final int FUEL_INDEX = 2; - public int timeElapsed; - public int timeForCompletion; - public FluidTank fuel = new FluidTank(DigesterTileEntity.MAX_FUEL, fluidStack -> fluidStack.getFluid() == Fluids.WATER); private final LazyOptional optionalFluidHandler = LazyOptional.of(() -> fuel); @@ -35,39 +26,18 @@ Class getRecipeType() { return DigesterRecipe.class; } - @Override - public void setCraftingGoalRecipe(DigesterRecipe recipe) { - super.setCraftingGoalRecipe(recipe); - timeForCompletion = recipe.getCraftingTime(); - } - - @Override - public void clear() { - timeElapsed = 0; - timeForCompletion = 0; - super.clear(); - } - @Override public void serializeNBT(CompoundNBT nbt) { super.serializeNBT(nbt); - nbt.putInt(NBT_KEY_TIME_ELAPSED, timeElapsed); - nbt.putInt(NBT_KEY_TIME_FOR_COMPLETION, timeForCompletion); nbt.put(NBT_KEY_FUEL, fuel.writeToNBT(new CompoundNBT())); } @Override public void deserializeNBT(CompoundNBT nbt) { super.deserializeNBT(nbt); - timeElapsed = nbt.getInt(NBT_KEY_TIME_ELAPSED); - timeForCompletion = nbt.getInt(NBT_KEY_TIME_FOR_COMPLETION); fuel.readFromNBT(nbt.getCompound(NBT_KEY_FUEL)); } - private void validateIndex(int index) { - if (index < 0 || index >= size()) throw new IndexOutOfBoundsException("Index out of bounds:" + index); - } - @Override public int get(int index) { validateIndex(index); diff --git a/src/main/java/com/github/elenterius/biomancy/tileentity/state/EvolutionPoolStateData.java b/src/main/java/com/github/elenterius/biomancy/tileentity/state/EvolutionPoolStateData.java index c72a4d967..fcbb54e77 100644 --- a/src/main/java/com/github/elenterius/biomancy/tileentity/state/EvolutionPoolStateData.java +++ b/src/main/java/com/github/elenterius/biomancy/tileentity/state/EvolutionPoolStateData.java @@ -2,20 +2,11 @@ import com.github.elenterius.biomancy.recipe.EvolutionPoolRecipe; import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.IIntArray; -public class EvolutionPoolStateData extends RecipeCraftingStateData implements IIntArray { +public class EvolutionPoolStateData extends RecipeCraftingStateData { - public static final int TIME_INDEX = 0; - public static final int TIME_FOR_COMPLETION_INDEX = 1; public static final int FUEL_INDEX = 2; - - public static final String NBT_KEY_TIME_ELAPSED = "TimeElapsed"; - public static final String NBT_KEY_TIME_FOR_COMPLETION = "TimeForCompletion"; public static final String NBT_KEY_FUEL = "Fuel"; - - public int timeElapsed; - public int timeForCompletion; public short fuel; //mutagenic bile @Override @@ -23,39 +14,18 @@ Class getRecipeType() { return EvolutionPoolRecipe.class; } - @Override - public void setCraftingGoalRecipe(EvolutionPoolRecipe recipe) { - super.setCraftingGoalRecipe(recipe); - timeForCompletion = recipe.getCraftingTime(); - } - - @Override - public void clear() { - timeElapsed = 0; - timeForCompletion = 0; - super.clear(); - } - @Override public void serializeNBT(CompoundNBT nbt) { super.serializeNBT(nbt); - nbt.putInt(NBT_KEY_TIME_ELAPSED, timeElapsed); - nbt.putInt(NBT_KEY_TIME_FOR_COMPLETION, timeForCompletion); nbt.putShort(NBT_KEY_FUEL, fuel); } @Override public void deserializeNBT(CompoundNBT nbt) { super.deserializeNBT(nbt); - timeElapsed = nbt.getInt(NBT_KEY_TIME_ELAPSED); - timeForCompletion = nbt.getInt(NBT_KEY_TIME_FOR_COMPLETION); fuel = nbt.getShort(NBT_KEY_FUEL); } - private void validateIndex(int index) { - if (index < 0 || index >= size()) throw new IndexOutOfBoundsException("Index out of bounds:" + index); - } - @Override public int get(int index) { validateIndex(index); diff --git a/src/main/java/com/github/elenterius/biomancy/tileentity/state/RecipeCraftingStateData.java b/src/main/java/com/github/elenterius/biomancy/tileentity/state/RecipeCraftingStateData.java index 9ecaa1f0d..5c7e25725 100644 --- a/src/main/java/com/github/elenterius/biomancy/tileentity/state/RecipeCraftingStateData.java +++ b/src/main/java/com/github/elenterius/biomancy/tileentity/state/RecipeCraftingStateData.java @@ -1,16 +1,26 @@ package com.github.elenterius.biomancy.tileentity.state; +import com.github.elenterius.biomancy.recipe.AbstractBioMechanicalRecipe; import net.minecraft.item.crafting.IRecipe; import net.minecraft.item.crafting.RecipeManager; import net.minecraft.nbt.CompoundNBT; +import net.minecraft.util.IIntArray; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import java.util.Optional; -public abstract class RecipeCraftingStateData> { +public abstract class RecipeCraftingStateData implements IIntArray { public static final String NBT_KEY_RECIPE_ID = "RecipeId"; + public static final String NBT_KEY_TIME_ELAPSED = "TimeElapsed"; + public static final String NBT_KEY_TIME_FOR_COMPLETION = "TimeForCompletion"; + + public static final int TIME_INDEX = 0; + public static final int TIME_FOR_COMPLETION_INDEX = 1; + + public int timeElapsed; + public int timeForCompletion; private CraftingState craftingState = CraftingState.NONE; private ResourceLocation recipeId; //we don't store the recipe reference, this way we don't have to check if the recipe was changed in the meantime @@ -52,10 +62,13 @@ public Optional getCraftingGoalRecipe(World world) { public void setCraftingGoalRecipe(T recipe) { recipeId = recipe.getId(); + timeForCompletion = recipe.getCraftingTime(); } public void clear() { recipeId = null; + timeElapsed = 0; + timeForCompletion = 0; } public void serializeNBT(CompoundNBT nbt) { @@ -63,6 +76,8 @@ public void serializeNBT(CompoundNBT nbt) { if (recipeId != null) { nbt.putString(NBT_KEY_RECIPE_ID, recipeId.toString()); } + nbt.putInt(NBT_KEY_TIME_ELAPSED, timeElapsed); + nbt.putInt(NBT_KEY_TIME_FOR_COMPLETION, timeForCompletion); } public void deserializeNBT(CompoundNBT nbt) { @@ -72,6 +87,32 @@ public void deserializeNBT(CompoundNBT nbt) { recipeId = ResourceLocation.tryCreate(id); } else recipeId = null; + timeElapsed = nbt.getInt(NBT_KEY_TIME_ELAPSED); + timeForCompletion = nbt.getInt(NBT_KEY_TIME_FOR_COMPLETION); } + protected void validateIndex(int index) { + if (index < 0 || index >= size()) throw new IndexOutOfBoundsException("Index out of bounds:" + index); + } + + @Override + public int get(int index) { + validateIndex(index); + if (index == TIME_INDEX) return timeElapsed; + else if (index == TIME_FOR_COMPLETION_INDEX) return timeForCompletion; + return 0; + } + + @Override + public void set(int index, int value) { + validateIndex(index); + if (index == TIME_INDEX) timeElapsed = value; + else if (index == TIME_FOR_COMPLETION_INDEX) timeForCompletion = value; + } + + @Override + public int size() { + return 2; + }; + } From e56e31dd1a1951bcde630649338ce399c32e4c62 Mon Sep 17 00:00:00 2001 From: Kai <6061273+Elenterius@users.noreply.github.com> Date: Thu, 24 Jun 2021 10:49:15 +0200 Subject: [PATCH 03/24] added comparator output to bio-machines (isCrafting = 15, else 0) --- .../biomancy/block/EvolutionPoolBlock.java | 13 +++++++++++++ .../elenterius/biomancy/block/MachineBlock.java | 13 +++++++++++++ 2 files changed, 26 insertions(+) diff --git a/src/main/java/com/github/elenterius/biomancy/block/EvolutionPoolBlock.java b/src/main/java/com/github/elenterius/biomancy/block/EvolutionPoolBlock.java index 4e85c9450..d235c564b 100644 --- a/src/main/java/com/github/elenterius/biomancy/block/EvolutionPoolBlock.java +++ b/src/main/java/com/github/elenterius/biomancy/block/EvolutionPoolBlock.java @@ -150,6 +150,9 @@ else if (tile instanceof EvolutionPoolTileEntity) { ((EvolutionPoolTileEntity) tile).dropAllInvContents(worldIn, pos); ((EvolutionPoolTileEntity) tile).scheduleMultiBlockDeconstruction(true); } + if (state.get(MachineBlock.CRAFTING)) { + worldIn.updateComparatorOutputLevel(pos, this); + } super.onReplaced(state, worldIn, pos, newState, isMoving); } } @@ -330,6 +333,16 @@ public void onEntityCollision(BlockState state, World worldIn, BlockPos pos, Ent } } + @Override + public boolean hasComparatorInputOverride(BlockState state) { + return true; + } + + @Override + public int getComparatorInputOverride(BlockState blockState, World worldIn, BlockPos pos) { + return blockState.get(MachineBlock.CRAFTING) ? 15 : 0; + } + @Override public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) { MultiBlockPart part = state.get(MULTI_BLOCK_PART); diff --git a/src/main/java/com/github/elenterius/biomancy/block/MachineBlock.java b/src/main/java/com/github/elenterius/biomancy/block/MachineBlock.java index f7e6f06c4..dae98f857 100644 --- a/src/main/java/com/github/elenterius/biomancy/block/MachineBlock.java +++ b/src/main/java/com/github/elenterius/biomancy/block/MachineBlock.java @@ -91,6 +91,9 @@ public void onReplaced(BlockState state, World worldIn, BlockPos pos, BlockState if (tileEntity instanceof MachineTileEntity) { ((MachineTileEntity) tileEntity).dropAllInvContents(worldIn, pos); } + if (state.get(CRAFTING)) { + worldIn.updateComparatorOutputLevel(pos, this); + } super.onReplaced(state, worldIn, pos, newState, isMoving); } } @@ -116,6 +119,16 @@ public boolean canProvidePower(BlockState state) { return true; } + @Override + public boolean hasComparatorInputOverride(BlockState state) { + return true; + } + + @Override + public int getComparatorInputOverride(BlockState blockState, World worldIn, BlockPos pos) { + return blockState.get(CRAFTING) ? 15 : 0; + } + protected void updateNeighbors(World worldIn, BlockPos pos) { worldIn.notifyNeighborsOfStateChange(pos, this); // worldIn.notifyNeighborsOfStateChange(pos.down(), this); From 4c47931f94f36672e37e56d62855daea5983d181 Mon Sep 17 00:00:00 2001 From: Kai <6061273+Elenterius@users.noreply.github.com> Date: Thu, 24 Jun 2021 19:03:53 +0200 Subject: [PATCH 04/24] rebalanced biofuel again --- .../biomancy/block/EvolutionPoolBlock.java | 2 +- .../biomancy/inventory/ChewerContainer.java | 5 ++-- .../inventory/DecomposerContainer.java | 5 ++-- .../biomancy/inventory/DigesterContainer.java | 4 +-- .../inventory/EvolutionPoolContainer.java | 4 +-- .../biomancy/tileentity/ChewerTileEntity.java | 11 +++---- .../tileentity/DecomposerTileEntity.java | 12 +++----- .../tileentity/DigesterTileEntity.java | 6 ++-- .../tileentity/EvolutionPoolTileEntity.java | 10 +++---- .../tileentity/MachineTileEntity.java | 10 ++++--- .../elenterius/biomancy/util/BiofuelUtil.java | 30 +++++++++++++++++++ 11 files changed, 63 insertions(+), 36 deletions(-) create mode 100644 src/main/java/com/github/elenterius/biomancy/util/BiofuelUtil.java diff --git a/src/main/java/com/github/elenterius/biomancy/block/EvolutionPoolBlock.java b/src/main/java/com/github/elenterius/biomancy/block/EvolutionPoolBlock.java index d235c564b..11b7fdf18 100644 --- a/src/main/java/com/github/elenterius/biomancy/block/EvolutionPoolBlock.java +++ b/src/main/java/com/github/elenterius/biomancy/block/EvolutionPoolBlock.java @@ -306,7 +306,7 @@ public void onEntityCollision(BlockState state, World worldIn, BlockPos pos, Ent tile = ((OwnableTileEntityDelegator) tile).getDelegate(); } if (tile instanceof EvolutionPoolTileEntity) { - if (EvolutionPoolTileEntity.VALID_FUEL.test(stack)) { + if (EvolutionPoolTileEntity.VALID_FUEL_ITEM.test(stack)) { ItemStack remainder = ((EvolutionPoolTileEntity) tile).addFuel(stack); if (remainder.getCount() != stack.getCount()) { ((ItemEntity) entityIn).setItem(remainder); diff --git a/src/main/java/com/github/elenterius/biomancy/inventory/ChewerContainer.java b/src/main/java/com/github/elenterius/biomancy/inventory/ChewerContainer.java index 17761db6b..f283d4b85 100644 --- a/src/main/java/com/github/elenterius/biomancy/inventory/ChewerContainer.java +++ b/src/main/java/com/github/elenterius/biomancy/inventory/ChewerContainer.java @@ -4,6 +4,7 @@ import com.github.elenterius.biomancy.init.ModContainerTypes; import com.github.elenterius.biomancy.tileentity.ChewerTileEntity; import com.github.elenterius.biomancy.tileentity.state.ChewerStateData; +import com.github.elenterius.biomancy.util.BiofuelUtil; import com.github.elenterius.biomancy.util.TextUtil; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerInventory; @@ -63,7 +64,7 @@ private ChewerContainer(int screenId, PlayerInventory playerInventory, FuelInvCo addSlot(new Slot(fuelContents, 0, posX, posY) { @Override public boolean isItemValid(ItemStack stack) { - return ChewerTileEntity.VALID_FUEL.test(stack); + return BiofuelUtil.isItemValidFuel(stack); } }); @@ -139,7 +140,7 @@ public ItemStack transferStackInSlot(PlayerEntity playerIn, int sourceSlotIndex) if (ChewerTileEntity.RECIPE_TYPE.getRecipeForItem(world, sourceStack).isPresent()) { successfulTransfer = mergeInto(SlotZone.INPUT_ZONE, sourceStack, false); } - if (!successfulTransfer && ChewerTileEntity.VALID_FUEL.test(sourceStack)) { + if (!successfulTransfer && BiofuelUtil.isItemValidFuel(sourceStack)) { successfulTransfer = mergeInto(SlotZone.FUEL_ZONE, sourceStack, true); } if (!successfulTransfer) { diff --git a/src/main/java/com/github/elenterius/biomancy/inventory/DecomposerContainer.java b/src/main/java/com/github/elenterius/biomancy/inventory/DecomposerContainer.java index aaea121ed..70134d719 100644 --- a/src/main/java/com/github/elenterius/biomancy/inventory/DecomposerContainer.java +++ b/src/main/java/com/github/elenterius/biomancy/inventory/DecomposerContainer.java @@ -4,6 +4,7 @@ import com.github.elenterius.biomancy.init.ModContainerTypes; import com.github.elenterius.biomancy.tileentity.DecomposerTileEntity; import com.github.elenterius.biomancy.tileentity.state.DecomposerStateData; +import com.github.elenterius.biomancy.util.BiofuelUtil; import com.github.elenterius.biomancy.util.TextUtil; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerInventory; @@ -63,7 +64,7 @@ private DecomposerContainer(int screenId, PlayerInventory playerInventory, FuelI addSlot(new Slot(fuelContents, 0, posX, posY) { @Override public boolean isItemValid(ItemStack stack) { - return DecomposerTileEntity.VALID_FUEL.test(stack); + return BiofuelUtil.isItemValidFuel(stack); } }); @@ -153,7 +154,7 @@ public ItemStack transferStackInSlot(PlayerEntity playerIn, int sourceSlotIndex) if (DecomposerTileEntity.RECIPE_TYPE.getRecipeForItem(world, sourceStack).isPresent()) { successfulTransfer = mergeInto(SlotZone.INPUT_ZONE, sourceStack, false); } - if (!successfulTransfer && DecomposerTileEntity.VALID_FUEL.test(sourceStack)) { + if (!successfulTransfer && BiofuelUtil.isItemValidFuel(sourceStack)) { successfulTransfer = mergeInto(SlotZone.FUEL_ZONE, sourceStack, true); } if (!successfulTransfer) { diff --git a/src/main/java/com/github/elenterius/biomancy/inventory/DigesterContainer.java b/src/main/java/com/github/elenterius/biomancy/inventory/DigesterContainer.java index 6998cded3..61f0752ca 100644 --- a/src/main/java/com/github/elenterius/biomancy/inventory/DigesterContainer.java +++ b/src/main/java/com/github/elenterius/biomancy/inventory/DigesterContainer.java @@ -62,7 +62,7 @@ private DigesterContainer(int screenId, PlayerInventory playerInventory, SimpleI addSlot(new Slot(fuelContents, 0, 17, 17) { @Override public boolean isItemValid(ItemStack stack) { - return DigesterTileEntity.VALID_FUEL.test(stack); + return DigesterTileEntity.VALID_FUEL_ITEM.test(stack); } }); @@ -144,7 +144,7 @@ public ItemStack transferStackInSlot(PlayerEntity playerIn, int sourceSlotIndex) if (DigesterTileEntity.RECIPE_TYPE.getRecipeForItem(world, sourceStack).isPresent()) { successfulTransfer = mergeInto(SlotZone.INPUT_ZONE, sourceStack, false); } - if (!successfulTransfer && DigesterTileEntity.VALID_FUEL.test(sourceStack)) { + if (!successfulTransfer && DigesterTileEntity.VALID_FUEL_ITEM.test(sourceStack)) { successfulTransfer = mergeInto(SlotZone.FUEL_ZONE, sourceStack, true); } if (!successfulTransfer) { diff --git a/src/main/java/com/github/elenterius/biomancy/inventory/EvolutionPoolContainer.java b/src/main/java/com/github/elenterius/biomancy/inventory/EvolutionPoolContainer.java index c0d2c620f..0e44b7c70 100644 --- a/src/main/java/com/github/elenterius/biomancy/inventory/EvolutionPoolContainer.java +++ b/src/main/java/com/github/elenterius/biomancy/inventory/EvolutionPoolContainer.java @@ -63,7 +63,7 @@ private EvolutionPoolContainer(int screenId, PlayerInventory playerInventory, Si addSlot(new Slot(fuelContents, 0, posX, posY) { @Override public boolean isItemValid(ItemStack stack) { - return EvolutionPoolTileEntity.VALID_FUEL.test(stack); + return EvolutionPoolTileEntity.VALID_FUEL_ITEM.test(stack); } }); @@ -141,7 +141,7 @@ public ItemStack transferStackInSlot(PlayerEntity playerIn, int sourceSlotIndex) if (EvolutionPoolTileEntity.RECIPE_TYPE.getRecipeForItem(world, sourceStack).isPresent()) { successfulTransfer = mergeInto(SlotZone.INPUT_ZONE, sourceStack, false); } - if (!successfulTransfer && EvolutionPoolTileEntity.VALID_FUEL.test(sourceStack)) { + if (!successfulTransfer && EvolutionPoolTileEntity.VALID_FUEL_ITEM.test(sourceStack)) { successfulTransfer = mergeInto(SlotZone.FUEL_ZONE, sourceStack, true); } if (!successfulTransfer) { diff --git a/src/main/java/com/github/elenterius/biomancy/tileentity/ChewerTileEntity.java b/src/main/java/com/github/elenterius/biomancy/tileentity/ChewerTileEntity.java index 876d24b20..4ecee69e7 100644 --- a/src/main/java/com/github/elenterius/biomancy/tileentity/ChewerTileEntity.java +++ b/src/main/java/com/github/elenterius/biomancy/tileentity/ChewerTileEntity.java @@ -1,6 +1,5 @@ package com.github.elenterius.biomancy.tileentity; -import com.github.elenterius.biomancy.init.ModItems; import com.github.elenterius.biomancy.init.ModRecipes; import com.github.elenterius.biomancy.init.ModTileEntityTypes; import com.github.elenterius.biomancy.inventory.ChewerContainer; @@ -9,6 +8,7 @@ import com.github.elenterius.biomancy.recipe.BioMechanicalRecipeType; import com.github.elenterius.biomancy.recipe.ChewerRecipe; import com.github.elenterius.biomancy.tileentity.state.ChewerStateData; +import com.github.elenterius.biomancy.util.BiofuelUtil; import com.github.elenterius.biomancy.util.TextUtil; import net.minecraft.block.BlockState; import net.minecraft.entity.player.PlayerEntity; @@ -28,7 +28,6 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; -import java.util.function.Predicate; public class ChewerTileEntity extends MachineTileEntity { @@ -39,8 +38,6 @@ public class ChewerTileEntity extends MachineTileEntity VALID_FUEL = stack -> stack.getItem() == ModItems.NUTRIENT_PASTE.get() || stack.getItem() == ModItems.NUTRIENT_BAR.get(); public static final BioMechanicalRecipeType RECIPE_TYPE = ModRecipes.CHEWER_RECIPE_TYPE; private final ChewerStateData stateData = new ChewerStateData(); @@ -92,12 +89,12 @@ public int getFuelCost() { @Override public boolean isItemValidFuel(ItemStack stack) { - return VALID_FUEL.test(stack); + return BiofuelUtil.isItemValidFuel(stack); } @Override - public float getFuelConversion(ItemStack stackIn) { - return FUEL_CONVERSION * (stackIn.getItem() == ModItems.NUTRIENT_BAR.get() ? 5 : 1); + public float getItemFuelValue(ItemStack stackIn) { + return BiofuelUtil.getItemFuelValue(stackIn); } @Override diff --git a/src/main/java/com/github/elenterius/biomancy/tileentity/DecomposerTileEntity.java b/src/main/java/com/github/elenterius/biomancy/tileentity/DecomposerTileEntity.java index 9554ba5cf..fa95e2e39 100644 --- a/src/main/java/com/github/elenterius/biomancy/tileentity/DecomposerTileEntity.java +++ b/src/main/java/com/github/elenterius/biomancy/tileentity/DecomposerTileEntity.java @@ -1,6 +1,5 @@ package com.github.elenterius.biomancy.tileentity; -import com.github.elenterius.biomancy.init.ModItems; import com.github.elenterius.biomancy.init.ModRecipes; import com.github.elenterius.biomancy.init.ModTileEntityTypes; import com.github.elenterius.biomancy.inventory.DecomposerContainer; @@ -10,6 +9,7 @@ import com.github.elenterius.biomancy.recipe.Byproduct; import com.github.elenterius.biomancy.recipe.DecomposerRecipe; import com.github.elenterius.biomancy.tileentity.state.DecomposerStateData; +import com.github.elenterius.biomancy.util.BiofuelUtil; import com.github.elenterius.biomancy.util.TextUtil; import net.minecraft.block.BlockState; import net.minecraft.entity.player.PlayerEntity; @@ -29,7 +29,6 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; -import java.util.function.Predicate; public class DecomposerTileEntity extends MachineTileEntity { @@ -37,11 +36,8 @@ public class DecomposerTileEntity extends MachineTileEntity VALID_FUEL = stack -> stack.getItem() == ModItems.NUTRIENT_PASTE.get() || stack.getItem() == ModItems.NUTRIENT_BAR.get(); public static final BioMechanicalRecipeType RECIPE_TYPE = ModRecipes.DECOMPOSING_RECIPE_TYPE; private final DecomposerStateData stateData = new DecomposerStateData(); @@ -93,12 +89,12 @@ public int getFuelCost() { @Override public boolean isItemValidFuel(ItemStack stack) { - return VALID_FUEL.test(stack); + return BiofuelUtil.isItemValidFuel(stack); } @Override - public float getFuelConversion(ItemStack stackIn) { - return FUEL_CONVERSION * (stackIn.getItem() == ModItems.NUTRIENT_BAR.get() ? 5 : 1); + public float getItemFuelValue(ItemStack stackIn) { + return BiofuelUtil.getItemFuelValue(stackIn); } @Override diff --git a/src/main/java/com/github/elenterius/biomancy/tileentity/DigesterTileEntity.java b/src/main/java/com/github/elenterius/biomancy/tileentity/DigesterTileEntity.java index 2854cd00c..118351cb6 100644 --- a/src/main/java/com/github/elenterius/biomancy/tileentity/DigesterTileEntity.java +++ b/src/main/java/com/github/elenterius/biomancy/tileentity/DigesterTileEntity.java @@ -48,7 +48,7 @@ public class DigesterTileEntity extends MachineTileEntity VALID_FUEL = stack -> { + public static final Predicate VALID_FUEL_ITEM = stack -> { if (stack.getItem() == Items.POTION && PotionUtils.getPotionFromItem(stack) == Potions.WATER) return true; return FluidUtil.getFluidContained(stack).map(DigesterTileEntity::isFluidValidFuel).orElse(false); }; @@ -119,11 +119,11 @@ public static boolean isFluidValidFuel(FluidStack fluidStack) { @Override public boolean isItemValidFuel(ItemStack stack) { - return VALID_FUEL.test(stack); + return VALID_FUEL_ITEM.test(stack); } @Override - public float getFuelConversion(ItemStack stackIn) { + public float getItemFuelValue(ItemStack stackIn) { return 1; } diff --git a/src/main/java/com/github/elenterius/biomancy/tileentity/EvolutionPoolTileEntity.java b/src/main/java/com/github/elenterius/biomancy/tileentity/EvolutionPoolTileEntity.java index b7cbc8f63..5dd7a7903 100644 --- a/src/main/java/com/github/elenterius/biomancy/tileentity/EvolutionPoolTileEntity.java +++ b/src/main/java/com/github/elenterius/biomancy/tileentity/EvolutionPoolTileEntity.java @@ -49,8 +49,8 @@ public class EvolutionPoolTileEntity extends MachineTileEntity VALID_FUEL = stack -> stack.getItem() == ModItems.MUTAGENIC_BILE.get(); + public static final float ITEM_FUEL_VALUE = 200; // FUEL_COST * DEFAULT_TIME / 4f + public static final Predicate VALID_FUEL_ITEM = stack -> stack.getItem() == ModItems.MUTAGENIC_BILE.get(); public static final BioMechanicalRecipeType RECIPE_TYPE = ModRecipes.EVOLUTION_POOL_RECIPE_TYPE; private final EvolutionPoolStateData stateData = new EvolutionPoolStateData(); @@ -104,12 +104,12 @@ public int getFuelCost() { @Override public boolean isItemValidFuel(ItemStack stack) { - return VALID_FUEL.test(stack); + return VALID_FUEL_ITEM.test(stack); } @Override - public float getFuelConversion(ItemStack stackIn) { - return FUEL_CONVERSION; + public float getItemFuelValue(ItemStack stackIn) { + return ITEM_FUEL_VALUE; } @Override diff --git a/src/main/java/com/github/elenterius/biomancy/tileentity/MachineTileEntity.java b/src/main/java/com/github/elenterius/biomancy/tileentity/MachineTileEntity.java index 2a7d42928..21d890450 100644 --- a/src/main/java/com/github/elenterius/biomancy/tileentity/MachineTileEntity.java +++ b/src/main/java/com/github/elenterius/biomancy/tileentity/MachineTileEntity.java @@ -42,7 +42,7 @@ public MachineTileEntity(TileEntityType entityType) { public abstract boolean isItemValidFuel(ItemStack stack); - public abstract float getFuelConversion(ItemStack stackIn); + public abstract float getItemFuelValue(ItemStack stackIn); public abstract ItemStack getStackInFuelSlot(); @@ -87,11 +87,13 @@ public ItemStack addFuel(ItemStack stackIn) { if (world == null || world.isRemote()) return stackIn; if (!stackIn.isEmpty() && getFuelAmount() < getMaxFuelAmount()) { - float fuelConversion = getFuelConversion(stackIn); - int itemsNeeded = Math.round(Math.max(0, getMaxFuelAmount() - getFuelAmount()) / fuelConversion); + float itemFuelValue = getItemFuelValue(stackIn); + if (itemFuelValue <= 0f) return stackIn; + + int itemsNeeded = Math.round(Math.max(0, getMaxFuelAmount() - getFuelAmount()) / itemFuelValue); int consumeAmount = Math.min(stackIn.getCount(), itemsNeeded); if (consumeAmount > 0) { - short newFuel = (short) MathHelper.clamp(getFuelAmount() + fuelConversion * consumeAmount, 0, getMaxFuelAmount() + fuelConversion); + short newFuel = (short) MathHelper.clamp(getFuelAmount() + itemFuelValue * consumeAmount, 0, getMaxFuelAmount() + itemFuelValue); setFuelAmount(newFuel); return ItemHandlerHelper.copyStackWithSize(stackIn, stackIn.getCount() - consumeAmount); } diff --git a/src/main/java/com/github/elenterius/biomancy/util/BiofuelUtil.java b/src/main/java/com/github/elenterius/biomancy/util/BiofuelUtil.java new file mode 100644 index 000000000..918513215 --- /dev/null +++ b/src/main/java/com/github/elenterius/biomancy/util/BiofuelUtil.java @@ -0,0 +1,30 @@ +package com.github.elenterius.biomancy.util; + +import com.github.elenterius.biomancy.init.ModItems; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import java.util.function.Predicate; + +public final class BiofuelUtil { + + private BiofuelUtil() {} + + public static short DEFAULT_FUEL_VALUE = 200; + public static byte NUTRIENT_PASTE_MULTIPLIER = 1; + public static byte NUTRIENT_BAR_MULTIPLIER = 6; + + public static final Predicate VALID_SOLID_FUEL = stack -> stack.getItem() == ModItems.NUTRIENT_PASTE.get() || stack.getItem() == ModItems.NUTRIENT_BAR.get(); + + public static boolean isItemValidFuel(ItemStack stackIn) { + return VALID_SOLID_FUEL.test(stackIn); + } + + public static float getItemFuelValue(ItemStack stackIn) { + Item item = stackIn.getItem(); + if (item == ModItems.NUTRIENT_BAR.get()) return DEFAULT_FUEL_VALUE * NUTRIENT_BAR_MULTIPLIER; + if (item == ModItems.NUTRIENT_PASTE.get()) return DEFAULT_FUEL_VALUE * NUTRIENT_PASTE_MULTIPLIER; + return 0; + } + +} From 9e17a3b662906e34b6754ba305cbb66257841ae5 Mon Sep 17 00:00:00 2001 From: Kai <6061273+Elenterius@users.noreply.github.com> Date: Fri, 25 Jun 2021 02:53:15 +0200 Subject: [PATCH 05/24] temporarily remove vile melon stuff & mutated flesh block until ready --- .../biomancy/vile_melon_from_campfire.json | 32 ---------------- .../biomancy/vile_melon_from_smelting.json | 32 ---------------- .../recipes/biomancy/vile_melon_seeds.json | 32 ---------------- .../blocks/mutated_flesh_block.json | 28 -------------- .../loot_tables/blocks/vile_melon_block.json | 19 ---------- .../loot_tables/blocks/vile_melon_crop.json | 37 ------------------- .../recipes/vile_melon_from_campfire.json | 9 ----- .../recipes/vile_melon_from_smelting.json | 9 ----- .../biomancy/recipes/vile_melon_seeds.json | 11 ------ .../biomancy/block/FleshMelonCropBlock.java | 5 ++- .../biomancy/datagen/ModBlockLootTables.java | 17 ++++----- .../biomancy/datagen/ModRecipeProvider.java | 16 ++++---- .../biomancy/init/ClientSetupHandler.java | 8 ++-- .../elenterius/biomancy/init/ModBlocks.java | 6 +-- .../elenterius/biomancy/init/ModItems.java | 10 ++--- .../statuseffect/RavenousHungerEffect.java | 2 +- 16 files changed, 31 insertions(+), 242 deletions(-) delete mode 100644 src/generated/resources/data/biomancy/advancements/recipes/biomancy/vile_melon_from_campfire.json delete mode 100644 src/generated/resources/data/biomancy/advancements/recipes/biomancy/vile_melon_from_smelting.json delete mode 100644 src/generated/resources/data/biomancy/advancements/recipes/biomancy/vile_melon_seeds.json delete mode 100644 src/generated/resources/data/biomancy/loot_tables/blocks/mutated_flesh_block.json delete mode 100644 src/generated/resources/data/biomancy/loot_tables/blocks/vile_melon_block.json delete mode 100644 src/generated/resources/data/biomancy/loot_tables/blocks/vile_melon_crop.json delete mode 100644 src/generated/resources/data/biomancy/recipes/vile_melon_from_campfire.json delete mode 100644 src/generated/resources/data/biomancy/recipes/vile_melon_from_smelting.json delete mode 100644 src/generated/resources/data/biomancy/recipes/vile_melon_seeds.json diff --git a/src/generated/resources/data/biomancy/advancements/recipes/biomancy/vile_melon_from_campfire.json b/src/generated/resources/data/biomancy/advancements/recipes/biomancy/vile_melon_from_campfire.json deleted file mode 100644 index ef41d9488..000000000 --- a/src/generated/resources/data/biomancy/advancements/recipes/biomancy/vile_melon_from_campfire.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "rewards": { - "recipes": [ - "biomancy:vile_melon_from_campfire" - ] - }, - "criteria": { - "has_vile_melon_slice": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "item": "biomancy:vile_melon_slice" - } - ] - } - }, - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "biomancy:vile_melon_from_campfire" - } - } - }, - "requirements": [ - [ - "has_vile_melon_slice", - "has_the_recipe" - ] - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/biomancy/advancements/recipes/biomancy/vile_melon_from_smelting.json b/src/generated/resources/data/biomancy/advancements/recipes/biomancy/vile_melon_from_smelting.json deleted file mode 100644 index 956869eb1..000000000 --- a/src/generated/resources/data/biomancy/advancements/recipes/biomancy/vile_melon_from_smelting.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "rewards": { - "recipes": [ - "biomancy:vile_melon_from_smelting" - ] - }, - "criteria": { - "has_vile_melon_slice": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "item": "biomancy:vile_melon_slice" - } - ] - } - }, - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "biomancy:vile_melon_from_smelting" - } - } - }, - "requirements": [ - [ - "has_vile_melon_slice", - "has_the_recipe" - ] - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/biomancy/advancements/recipes/biomancy/vile_melon_seeds.json b/src/generated/resources/data/biomancy/advancements/recipes/biomancy/vile_melon_seeds.json deleted file mode 100644 index d7751c112..000000000 --- a/src/generated/resources/data/biomancy/advancements/recipes/biomancy/vile_melon_seeds.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "rewards": { - "recipes": [ - "biomancy:vile_melon_seeds" - ] - }, - "criteria": { - "has_vile_melon_slice": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "item": "biomancy:vile_melon_slice" - } - ] - } - }, - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "biomancy:vile_melon_seeds" - } - } - }, - "requirements": [ - [ - "has_vile_melon_slice", - "has_the_recipe" - ] - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/biomancy/loot_tables/blocks/mutated_flesh_block.json b/src/generated/resources/data/biomancy/loot_tables/blocks/mutated_flesh_block.json deleted file mode 100644 index b14fbad75..000000000 --- a/src/generated/resources/data/biomancy/loot_tables/blocks/mutated_flesh_block.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "functions": [ - { - "function": "minecraft:copy_state", - "block": "biomancy:mutated_flesh_block", - "properties": [ - "type" - ] - } - ], - "name": "biomancy:mutated_flesh_block" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/biomancy/loot_tables/blocks/vile_melon_block.json b/src/generated/resources/data/biomancy/loot_tables/blocks/vile_melon_block.json deleted file mode 100644 index f945360e1..000000000 --- a/src/generated/resources/data/biomancy/loot_tables/blocks/vile_melon_block.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "biomancy:vile_melon_block" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/biomancy/loot_tables/blocks/vile_melon_crop.json b/src/generated/resources/data/biomancy/loot_tables/blocks/vile_melon_crop.json deleted file mode 100644 index ad3e820d4..000000000 --- a/src/generated/resources/data/biomancy/loot_tables/blocks/vile_melon_crop.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1.0, - "entries": [ - { - "type": "minecraft:alternatives", - "children": [ - { - "type": "minecraft:item", - "conditions": [ - { - "condition": "minecraft:block_state_property", - "block": "biomancy:vile_melon_crop", - "properties": { - "age": "7" - } - } - ], - "name": "biomancy:vile_melon_block" - }, - { - "type": "minecraft:item", - "name": "biomancy:vile_melon_seeds" - } - ] - } - ] - } - ], - "functions": [ - { - "function": "minecraft:explosion_decay" - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/biomancy/recipes/vile_melon_from_campfire.json b/src/generated/resources/data/biomancy/recipes/vile_melon_from_campfire.json deleted file mode 100644 index c83d4574e..000000000 --- a/src/generated/resources/data/biomancy/recipes/vile_melon_from_campfire.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "type": "minecraft:campfire_cooking", - "ingredient": { - "item": "biomancy:vile_melon_slice" - }, - "result": "biomancy:cooked_vile_melon_slice", - "experience": 0.35, - "cookingtime": 600 -} \ No newline at end of file diff --git a/src/generated/resources/data/biomancy/recipes/vile_melon_from_smelting.json b/src/generated/resources/data/biomancy/recipes/vile_melon_from_smelting.json deleted file mode 100644 index 42fbee594..000000000 --- a/src/generated/resources/data/biomancy/recipes/vile_melon_from_smelting.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "type": "minecraft:smelting", - "ingredient": { - "item": "biomancy:vile_melon_slice" - }, - "result": "biomancy:cooked_vile_melon_slice", - "experience": 0.35, - "cookingtime": 100 -} \ No newline at end of file diff --git a/src/generated/resources/data/biomancy/recipes/vile_melon_seeds.json b/src/generated/resources/data/biomancy/recipes/vile_melon_seeds.json deleted file mode 100644 index 9598fbe46..000000000 --- a/src/generated/resources/data/biomancy/recipes/vile_melon_seeds.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "biomancy:vile_melon_slice" - } - ], - "result": { - "item": "biomancy:vile_melon_seeds" - } -} \ No newline at end of file diff --git a/src/main/java/com/github/elenterius/biomancy/block/FleshMelonCropBlock.java b/src/main/java/com/github/elenterius/biomancy/block/FleshMelonCropBlock.java index 482c329c5..c1b6fab00 100644 --- a/src/main/java/com/github/elenterius/biomancy/block/FleshMelonCropBlock.java +++ b/src/main/java/com/github/elenterius/biomancy/block/FleshMelonCropBlock.java @@ -1,8 +1,8 @@ package com.github.elenterius.biomancy.block; -import com.github.elenterius.biomancy.init.ModItems; import net.minecraft.block.Block; import net.minecraft.block.BlockState; +import net.minecraft.item.Items; import net.minecraft.util.IItemProvider; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.shapes.ISelectionContext; @@ -35,7 +35,8 @@ public VoxelShape getCollisionShape(BlockState state, IBlockReader worldIn, Bloc @Override public IItemProvider getSeedsItem() { - return ModItems.VILE_MELON_SEEDS.get(); + return Items.AIR; //TODO: revert this +// return ModItems.VILE_MELON_SEEDS.get(); } } diff --git a/src/main/java/com/github/elenterius/biomancy/datagen/ModBlockLootTables.java b/src/main/java/com/github/elenterius/biomancy/datagen/ModBlockLootTables.java index 0c58745d1..9541841f8 100644 --- a/src/main/java/com/github/elenterius/biomancy/datagen/ModBlockLootTables.java +++ b/src/main/java/com/github/elenterius/biomancy/datagen/ModBlockLootTables.java @@ -7,13 +7,10 @@ import net.minecraft.advancements.criterion.StatePropertiesPredicate; import net.minecraft.block.Block; import net.minecraft.block.Blocks; -import net.minecraft.block.CropsBlock; import net.minecraft.block.DoorBlock; import net.minecraft.data.loot.BlockLootTables; -import net.minecraft.item.Item; import net.minecraft.loot.*; import net.minecraft.loot.conditions.BlockStateProperty; -import net.minecraft.loot.conditions.ILootCondition; import net.minecraft.loot.functions.CopyBlockState; import net.minecraft.loot.functions.CopyName; import net.minecraft.loot.functions.CopyNbt; @@ -91,23 +88,23 @@ protected static LootTable.Builder droppingMutatedFlesh(Block flesh) { .addEntry(ItemLootEntry.builder(flesh).acceptFunction(CopyBlockState.func_227545_a_(flesh).func_227552_a_(MutatedFleshBlock.MUTATION_TYPE))))); } - protected static LootTable.Builder droppingFruitWithBonusOrSeeds(Block block, Item fruit, Item seeds) { - ILootCondition.IBuilder conditionBuilder = BlockStateProperty.builder(ModBlocks.VILE_MELON_CROP.get()).fromProperties(StatePropertiesPredicate.Builder.newBuilder().withIntProp(CropsBlock.AGE, 7)); - return withExplosionDecay(block, LootTable.builder().addLootPool(LootPool.builder().addEntry(ItemLootEntry.builder(fruit).acceptCondition(conditionBuilder).alternatively(ItemLootEntry.builder(seeds))))); - } +// protected static LootTable.Builder droppingFruitWithBonusOrSeeds(Block block, Item fruit, Item seeds) { +// ILootCondition.IBuilder conditionBuilder = BlockStateProperty.builder(ModBlocks.VILE_MELON_CROP.get()).fromProperties(StatePropertiesPredicate.Builder.newBuilder().withIntProp(CropsBlock.AGE, 7)); +// return withExplosionDecay(block, LootTable.builder().addLootPool(LootPool.builder().addEntry(ItemLootEntry.builder(fruit).acceptCondition(conditionBuilder).alternatively(ItemLootEntry.builder(seeds))))); +// } @Override protected void addTables() { - registerDropSelfLootTable(ModBlocks.VILE_MELON_BLOCK.get()); - registerLootTable(ModBlocks.VILE_MELON_CROP.get(), droppingFruitWithBonusOrSeeds(ModBlocks.VILE_MELON_CROP.get(), ModItems.VILE_MELON_BLOCK.get(), ModItems.VILE_MELON_SEEDS.get())); +// registerDropSelfLootTable(ModBlocks.VILE_MELON_BLOCK.get()); +// registerLootTable(ModBlocks.VILE_MELON_CROP.get(), droppingFruitWithBonusOrSeeds(ModBlocks.VILE_MELON_CROP.get(), ModItems.VILE_MELON_BLOCK.get(), ModItems.VILE_MELON_SEEDS.get())); registerDropSelfLootTable(ModBlocks.FLESH_TENTACLE.get()); registerDropSelfLootTable(ModBlocks.FLESH_BLOCK.get()); registerLootTable(ModBlocks.NECROTIC_FLESH_BLOCK.get(), droppingRandomly(ModItems.NECROTIC_FLESH.get(), BinomialRange.of(9, 0.5f))); registerLootTable(ModBlocks.FLESH_BLOCK_SLAB.get(), BlockLootTables::droppingSlab); registerDropSelfLootTable(ModBlocks.FLESH_BLOCK_STAIRS.get()); - registerLootTable(ModBlocks.MUTATED_FLESH_BLOCK.get(), ModBlockLootTables::droppingMutatedFlesh); +// registerLootTable(ModBlocks.MUTATED_FLESH_BLOCK.get(), ModBlockLootTables::droppingMutatedFlesh); registerLootTable(ModBlocks.FLESHBORN_DOOR.get(), ModBlockLootTables::droppingSimpleOwnableDoor); registerLootTable(ModBlocks.FLESHBORN_TRAPDOOR.get(), ModBlockLootTables::droppingSimpleOwnable); registerLootTable(ModBlocks.FLESHBORN_PRESSURE_PLATE.get(), ModBlockLootTables::droppingSimpleOwnable); diff --git a/src/main/java/com/github/elenterius/biomancy/datagen/ModRecipeProvider.java b/src/main/java/com/github/elenterius/biomancy/datagen/ModRecipeProvider.java index 6d5b3fdca..0bba96f38 100644 --- a/src/main/java/com/github/elenterius/biomancy/datagen/ModRecipeProvider.java +++ b/src/main/java/com/github/elenterius/biomancy/datagen/ModRecipeProvider.java @@ -619,11 +619,11 @@ private void registerCookingRecipes(Consumer consumer) { CookingRecipeBuilder.smeltingRecipe(Ingredient.fromItems(ModItems.SILICATE_PASTE.get()), Items.GLASS_PANE, 0.1F, 100) .addCriterion("has_silicate", hasItem(ModItems.SILICATE_PASTE.get())).build(consumer, new ResourceLocation(BiomancyMod.MOD_ID, "glass_pane_from_smelting_silicate")); - CookingRecipeBuilder.cookingRecipe(Ingredient.fromItems(ModItems.VILE_MELON_SLICE.get()), ModItems.COOKED_VILE_MELON_SLICE.get(), 0.35F, 100, IRecipeSerializer.SMELTING) - .addCriterion("has_vile_melon_slice", hasItem(ModItems.VILE_MELON_SLICE.get())).build(consumer, new ResourceLocation(BiomancyMod.MOD_ID, "vile_melon_from_smelting")); - - CookingRecipeBuilder.cookingRecipe(Ingredient.fromItems(ModItems.VILE_MELON_SLICE.get()), ModItems.COOKED_VILE_MELON_SLICE.get(), 0.35F, 600, IRecipeSerializer.CAMPFIRE_COOKING) - .addCriterion("has_vile_melon_slice", hasItem(ModItems.VILE_MELON_SLICE.get())).build(consumer, new ResourceLocation(BiomancyMod.MOD_ID, "vile_melon_from_campfire")); +// CookingRecipeBuilder.cookingRecipe(Ingredient.fromItems(ModItems.VILE_MELON_SLICE.get()), ModItems.COOKED_VILE_MELON_SLICE.get(), 0.35F, 100, IRecipeSerializer.SMELTING) +// .addCriterion("has_vile_melon_slice", hasItem(ModItems.VILE_MELON_SLICE.get())).build(consumer, new ResourceLocation(BiomancyMod.MOD_ID, "vile_melon_from_smelting")); +// +// CookingRecipeBuilder.cookingRecipe(Ingredient.fromItems(ModItems.VILE_MELON_SLICE.get()), ModItems.COOKED_VILE_MELON_SLICE.get(), 0.35F, 600, IRecipeSerializer.CAMPFIRE_COOKING) +// .addCriterion("has_vile_melon_slice", hasItem(ModItems.VILE_MELON_SLICE.get())).build(consumer, new ResourceLocation(BiomancyMod.MOD_ID, "vile_melon_from_campfire")); } private void registerWorkbenchRecipes(Consumer consumer) { @@ -791,9 +791,9 @@ private void registerWorkbenchRecipes(Consumer consumer) { .patternLine("SBS").patternLine("NNN") .addCriterion("has_nutrient_paste", hasItem(ModItems.NUTRIENT_PASTE.get())).build(consumer); - ShapelessRecipeBuilder.shapelessRecipe(ModItems.VILE_MELON_SEEDS.get()) - .addIngredient(ModItems.VILE_MELON_SLICE.get()) - .addCriterion("has_vile_melon_slice", hasItem(ModItems.VILE_MELON_SLICE.get())).build(consumer); +// ShapelessRecipeBuilder.shapelessRecipe(ModItems.VILE_MELON_SEEDS.get()) +// .addIngredient(ModItems.VILE_MELON_SLICE.get()) +// .addCriterion("has_vile_melon_slice", hasItem(ModItems.VILE_MELON_SLICE.get())).build(consumer); // misc //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ShapelessRecipeBuilder.shapelessRecipe(Items.DIORITE) diff --git a/src/main/java/com/github/elenterius/biomancy/init/ClientSetupHandler.java b/src/main/java/com/github/elenterius/biomancy/init/ClientSetupHandler.java index 696724f62..03e43c102 100644 --- a/src/main/java/com/github/elenterius/biomancy/init/ClientSetupHandler.java +++ b/src/main/java/com/github/elenterius/biomancy/init/ClientSetupHandler.java @@ -81,7 +81,7 @@ public static void onClientSetup(FMLClientSetupEvent event) { ItemModelsProperties.registerProperty(ModItems.BONE_SCRAPS.get(), new ResourceLocation("type"), (stack, clientWorld, livingEntity) -> stack.getOrCreateTag().getInt("ScrapType")); RenderTypeLookup.setRenderLayer(ModBlocks.FLESH_TENTACLE.get(), RenderType.getCutout()); - RenderTypeLookup.setRenderLayer(ModBlocks.VILE_MELON_CROP.get(), RenderType.getCutout()); +// RenderTypeLookup.setRenderLayer(ModBlocks.VILE_MELON_CROP.get(), RenderType.getCutout()); RenderTypeLookup.setRenderLayer(ModBlocks.FLESHBORN_DOOR.get(), RenderType.getCutout()); RenderTypeLookup.setRenderLayer(ModBlocks.FLESHBORN_TRAPDOOR.get(), RenderType.getCutout()); @@ -97,8 +97,8 @@ public static void onBlockModelRegistry(final ModelRegistryEvent event) {} @SubscribeEvent public static void onItemColorRegistry(final ColorHandlerEvent.Item event) { - event.getItemColors().register((stack, index) -> 0xff6981, ModItems.VILE_MELON_BLOCK.get(), ModItems.VILE_MELON_SEEDS.get(), ModItems.VILE_MELON_SLICE.get()); - event.getItemColors().register((stack, index) -> 0x6c2e1f, ModItems.COOKED_VILE_MELON_SLICE.get()); +// event.getItemColors().register((stack, index) -> 0xff6981, ModItems.VILE_MELON_BLOCK.get(), ModItems.VILE_MELON_SEEDS.get(), ModItems.VILE_MELON_SLICE.get()); +// event.getItemColors().register((stack, index) -> 0x6c2e1f, ModItems.COOKED_VILE_MELON_SLICE.get()); event.getItemColors().register((stack, index) -> 0x8d758c, ModItems.NECROTIC_FLESH.get(), ModItems.NECROTIC_FLESH_BLOCK.get()); event.getItemColors().register((stack, index) -> index == 1 ? ModItems.INJECTION_DEVICE.get().getReagentColor(stack) : -1, ModItems.INJECTION_DEVICE.get()); @@ -108,7 +108,7 @@ public static void onItemColorRegistry(final ColorHandlerEvent.Item event) { @SubscribeEvent public static void onItemColorRegistry(final ColorHandlerEvent.Block event) { - event.getBlockColors().register((state, displayReader, pos, index) -> 0xff6981, ModBlocks.VILE_MELON_BLOCK.get(), ModBlocks.VILE_MELON_CROP.get()); +// event.getBlockColors().register((state, displayReader, pos, index) -> 0xff6981, ModBlocks.VILE_MELON_BLOCK.get(), ModBlocks.VILE_MELON_CROP.get()); event.getBlockColors().register((state, displayReader, pos, index) -> 0x8d758c, ModBlocks.NECROTIC_FLESH_BLOCK.get()); } diff --git a/src/main/java/com/github/elenterius/biomancy/init/ModBlocks.java b/src/main/java/com/github/elenterius/biomancy/init/ModBlocks.java index dbd2c199f..2e178bf19 100644 --- a/src/main/java/com/github/elenterius/biomancy/init/ModBlocks.java +++ b/src/main/java/com/github/elenterius/biomancy/init/ModBlocks.java @@ -43,12 +43,12 @@ public final class ModBlocks { public static final RegistryObject FLESH_BLOCK = BLOCKS.register("flesh_block", () -> new FleshBlock(createFleshProperties())); public static final RegistryObject FLESH_BLOCK_SLAB = BLOCKS.register("flesh_block_slab", () -> new SlabBlock(createFleshProperties())); public static final RegistryObject FLESH_BLOCK_STAIRS = BLOCKS.register("flesh_block_stairs", () -> new StairsBlock(() -> FLESH_BLOCK.get().getDefaultState(), createFleshProperties())); - public static final RegistryObject MUTATED_FLESH_BLOCK = BLOCKS.register("mutated_flesh_block", () -> new MutatedFleshBlock(createFleshProperties())); +// public static final RegistryObject MUTATED_FLESH_BLOCK = BLOCKS.register("mutated_flesh_block", () -> new MutatedFleshBlock(createFleshProperties())); public static final RegistryObject NECROTIC_FLESH_BLOCK = BLOCKS.register("necrotic_flesh_block", () -> new FleshBlock(createFleshProperties())); //Plant - public static final RegistryObject VILE_MELON_BLOCK = BLOCKS.register("vile_melon_block", () -> new Block(Block.Properties.create(Material.GOURD, MaterialColor.PINK).hardnessAndResistance(1f).sound(SoundType.WOOD))); - public static final RegistryObject VILE_MELON_CROP = BLOCKS.register("vile_melon_crop", () -> new FleshMelonCropBlock(Block.Properties.create(Material.PLANTS, MaterialColor.PINK).tickRandomly().hardnessAndResistance(0.2f).sound(SoundType.STEM))); +// public static final RegistryObject VILE_MELON_BLOCK = BLOCKS.register("vile_melon_block", () -> new Block(Block.Properties.create(Material.GOURD, MaterialColor.PINK).hardnessAndResistance(1f).sound(SoundType.WOOD))); +// public static final RegistryObject VILE_MELON_CROP = BLOCKS.register("vile_melon_crop", () -> new FleshMelonCropBlock(Block.Properties.create(Material.PLANTS, MaterialColor.PINK).tickRandomly().hardnessAndResistance(0.2f).sound(SoundType.STEM))); //Bio-Constructs public static final RegistryObject FLESHBORN_DOOR = BLOCKS.register("fleshborn_door", () -> new OwnableDoorBlock(createFleshProperties().notSolid())); diff --git a/src/main/java/com/github/elenterius/biomancy/init/ModItems.java b/src/main/java/com/github/elenterius/biomancy/init/ModItems.java index 2fb215d68..424586e33 100644 --- a/src/main/java/com/github/elenterius/biomancy/init/ModItems.java +++ b/src/main/java/com/github/elenterius/biomancy/init/ModItems.java @@ -79,8 +79,8 @@ public final class ModItems { public static final RegistryObject HORMONE_BILE = ITEMS.register("hormone_bile", () -> new Item(createItemProperties())); // Food - public static final RegistryObject VILE_MELON_SLICE = ITEMS.register("vile_melon_slice", () -> new Item(createItemProperties().food(ModFoods.VILE_MELON_SLICE))); - public static final RegistryObject COOKED_VILE_MELON_SLICE = ITEMS.register("cooked_vile_melon_slice", () -> new Item(createItemProperties().food(ModFoods.COOKED_VILE_MELON_SLICE))); +// public static final RegistryObject VILE_MELON_SLICE = ITEMS.register("vile_melon_slice", () -> new Item(createItemProperties().food(ModFoods.VILE_MELON_SLICE))); +// public static final RegistryObject COOKED_VILE_MELON_SLICE = ITEMS.register("cooked_vile_melon_slice", () -> new Item(createItemProperties().food(ModFoods.COOKED_VILE_MELON_SLICE))); public static final RegistryObject NUTRIENT_BAR = ITEMS.register("nutrient_bar", () -> new Item(createItemProperties().food(ModFoods.NUTRIENT_BAR))); // Spawn Eggs @@ -99,8 +99,8 @@ public final class ModItems { /* **** Block Items ********************************************* */ //crops - public static final RegistryObject VILE_MELON_SEEDS = ITEMS.register("vile_melon_seeds", () -> new BlockNamedItem(ModBlocks.VILE_MELON_CROP.get(), createItemProperties())); - public static final RegistryObject VILE_MELON_BLOCK = ITEMS.register("vile_melon_block", () -> new BlockItem(ModBlocks.VILE_MELON_BLOCK.get(), createItemProperties())); +// public static final RegistryObject VILE_MELON_SEEDS = ITEMS.register("vile_melon_seeds", () -> new BlockNamedItem(ModBlocks.VILE_MELON_CROP.get(), createItemProperties())); +// public static final RegistryObject VILE_MELON_BLOCK = ITEMS.register("vile_melon_block", () -> new BlockItem(ModBlocks.VILE_MELON_BLOCK.get(), createItemProperties())); //decoration blocks public static final RegistryObject FLESH_TENTACLE = ITEMS.register("flesh_tentacle", () -> new BlockItem(ModBlocks.FLESH_TENTACLE.get(), createItemProperties())); @@ -109,7 +109,7 @@ public final class ModItems { public static final RegistryObject FLESH_BLOCK = ITEMS.register("flesh_block", () -> new BlockItem(ModBlocks.FLESH_BLOCK.get(), createItemProperties())); public static final RegistryObject FLESH_BLOCK_SLAB = ITEMS.register("flesh_block_slab", () -> new BlockItem(ModBlocks.FLESH_BLOCK_SLAB.get(), createItemProperties())); public static final RegistryObject FLESH_BLOCK_STAIRS = ITEMS.register("flesh_block_stairs", () -> new BlockItem(ModBlocks.FLESH_BLOCK_STAIRS.get(), createItemProperties())); - public static final RegistryObject MUTATED_FLESH_BLOCK = ITEMS.register("mutated_flesh_block", () -> new BlockItem(ModBlocks.MUTATED_FLESH_BLOCK.get(), createItemProperties())); +// public static final RegistryObject MUTATED_FLESH_BLOCK = ITEMS.register("mutated_flesh_block", () -> new BlockItem(ModBlocks.MUTATED_FLESH_BLOCK.get(), createItemProperties())); public static final RegistryObject NECROTIC_FLESH_BLOCK = ITEMS.register("necrotic_flesh_block", () -> new BlockItem(ModBlocks.NECROTIC_FLESH_BLOCK.get(), createItemProperties())); //bio-construct blocks diff --git a/src/main/java/com/github/elenterius/biomancy/statuseffect/RavenousHungerEffect.java b/src/main/java/com/github/elenterius/biomancy/statuseffect/RavenousHungerEffect.java index b19cfea60..259c48f53 100644 --- a/src/main/java/com/github/elenterius/biomancy/statuseffect/RavenousHungerEffect.java +++ b/src/main/java/com/github/elenterius/biomancy/statuseffect/RavenousHungerEffect.java @@ -42,6 +42,6 @@ public boolean isReady(int duration, int amplifier) { @Override public List getCurativeItems() { // ModTags.Items.RAW_MEATS.getAllElements().stream().map(ItemStack::new).collect(Collectors.toList()); - return ImmutableList.of(new ItemStack(Items.MELON_SLICE), new ItemStack(Items.HONEY_BOTTLE), new ItemStack(ModItems.NUTRIENT_BAR.get()), new ItemStack(ModItems.VILE_MELON_SLICE.get()), new ItemStack(ModItems.COOKED_VILE_MELON_SLICE.get())); + return ImmutableList.of(new ItemStack(Items.MELON_SLICE), new ItemStack(Items.HONEY_BOTTLE), new ItemStack(ModItems.NUTRIENT_BAR.get()) /*, new ItemStack(ModItems.VILE_MELON_SLICE.get()), new ItemStack(ModItems.COOKED_VILE_MELON_SLICE.get())*/); } } From ff0ced6ea3b6b23dbd602e7cfb40a634c157ab8c Mon Sep 17 00:00:00 2001 From: Kai <6061273+Elenterius@users.noreply.github.com> Date: Fri, 25 Jun 2021 02:54:45 +0200 Subject: [PATCH 06/24] removed enchantment from long reach claw in creative menu --- .../biomancy/item/weapon/LongRangeClawItem.java | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/src/main/java/com/github/elenterius/biomancy/item/weapon/LongRangeClawItem.java b/src/main/java/com/github/elenterius/biomancy/item/weapon/LongRangeClawItem.java index 023f4bb75..2968dc84e 100644 --- a/src/main/java/com/github/elenterius/biomancy/item/weapon/LongRangeClawItem.java +++ b/src/main/java/com/github/elenterius/biomancy/item/weapon/LongRangeClawItem.java @@ -10,7 +10,6 @@ import com.google.common.collect.Multimap; import net.minecraft.block.BlockState; import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.enchantment.Enchantments; import net.minecraft.entity.Entity; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.ai.attributes.Attribute; @@ -20,10 +19,8 @@ import net.minecraft.inventory.EquipmentSlotType; import net.minecraft.item.IItemTier; import net.minecraft.item.Item; -import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.NonNullList; import net.minecraft.util.SoundEvents; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockRayTraceResult; @@ -86,15 +83,6 @@ public ITextComponent getHighlightTip(ItemStack stack, ITextComponent displayNam return displayName; } - @Override - public void fillItemGroup(ItemGroup group, NonNullList items) { - if (isInGroup(group)) { - ItemStack stack = new ItemStack(this); - stack.addEnchantment(Enchantments.SWEEPING, 3); - items.add(stack); - } - } - protected Multimap createAttributeModifiersV2() { ImmutableMultimap.Builder builder = ImmutableMultimap.builder(); Multimap clawAttributes = lazyAttributeModifiers.get(); From 8dc2a3a01b309178586d12aafac47075981d0b9e Mon Sep 17 00:00:00 2001 From: Kai <6061273+Elenterius@users.noreply.github.com> Date: Fri, 25 Jun 2021 03:09:58 +0200 Subject: [PATCH 07/24] fixed item bag overlay not being centered --- .../biomancy/client/renderer/ClientRenderHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/github/elenterius/biomancy/client/renderer/ClientRenderHandler.java b/src/main/java/com/github/elenterius/biomancy/client/renderer/ClientRenderHandler.java index da6b3d44b..634248679 100644 --- a/src/main/java/com/github/elenterius/biomancy/client/renderer/ClientRenderHandler.java +++ b/src/main/java/com/github/elenterius/biomancy/client/renderer/ClientRenderHandler.java @@ -160,7 +160,7 @@ private static void renderItemStorageBagOverlay(MatrixStack matrixStack, int sca LazyOptional capability = tile.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY); if (capability.isPresent()) { mc.getTextureManager().bindTexture(ITEM_BAG_INDICATOR_TEX); - int x = scaledWidth / 2 - 33; + int x = scaledWidth / 2 - 16 - 8; int y = scaledHeight / 2 + 9; AbstractGui.blit(matrixStack, x, y, 0, mode == ItemStorageBagItem.Mode.DEVOUR ? 0 : 16, 32, 16, 32, 32); From ba130f2165bc2969df03463ef81dae1af708c0cc Mon Sep 17 00:00:00 2001 From: Kai <6061273+Elenterius@users.noreply.github.com> Date: Fri, 25 Jun 2021 03:26:02 +0200 Subject: [PATCH 08/24] fixed #18 CTD with Optifine due to mixin --- .../mixin/client/LivingRendererMixin.java | 38 ++++++++----------- 1 file changed, 16 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/github/elenterius/biomancy/mixin/client/LivingRendererMixin.java b/src/main/java/com/github/elenterius/biomancy/mixin/client/LivingRendererMixin.java index f121893a8..b1980befc 100644 --- a/src/main/java/com/github/elenterius/biomancy/mixin/client/LivingRendererMixin.java +++ b/src/main/java/com/github/elenterius/biomancy/mixin/client/LivingRendererMixin.java @@ -1,10 +1,5 @@ package com.github.elenterius.biomancy.mixin.client; -import com.mojang.blaze3d.matrix.MatrixStack; -import com.mojang.blaze3d.vertex.IVertexBuilder; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.IRenderTypeBuffer; -import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.entity.EntityRenderer; import net.minecraft.client.renderer.entity.EntityRendererManager; import net.minecraft.client.renderer.entity.IEntityRenderer; @@ -12,29 +7,28 @@ import net.minecraft.client.renderer.entity.model.EntityModel; import net.minecraft.entity.LivingEntity; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import org.spongepowered.asm.mixin.injection.callback.LocalCapture; @Mixin(LivingRenderer.class) public abstract class LivingRendererMixin> extends EntityRenderer implements IEntityRenderer { - @Shadow - protected M entityModel; +// @Shadow +// protected M entityModel; +// protected LivingRendererMixin(EntityRendererManager renderManager) { super(renderManager); } - @Inject(method = "render", locals = LocalCapture.CAPTURE_FAILSOFT, at = @At(value = "FIELD", ordinal = 5, shift = At.Shift.AFTER, - target = "Lnet/minecraft/client/renderer/entity/LivingRenderer;entityModel:Lnet/minecraft/client/renderer/entity/model/EntityModel;")) - protected void biomancy_onPostRenderModel(LivingEntity entityIn, float entityYaw, float partialTicks, MatrixStack matrixStackIn, IRenderTypeBuffer bufferIn, int packedLightIn, CallbackInfo ci, - boolean shouldSit, float f, float f1, float f2, float f6, float f7, float f8, float f5, Minecraft minecraft, boolean flag, boolean flag1, boolean flag2, - RenderType rendertype, IVertexBuilder ivertexbuilder, int i) { - // if the entity is invisible but visible to player then render the entity a second time - if (flag1) { - entityModel.render(matrixStackIn, ivertexbuilder, packedLightIn, i, 1.0F, 1.0F, 1.0F, 0.5F); // - } - } + //FIXME: Incompatible with Optifine. Removing this doesn't affect gameplay. + //TODO: Write more robust & better mixin. +// @Inject(method = "render", locals = LocalCapture.CAPTURE_FAILSOFT, at = @At(value = "FIELD", ordinal = 5, shift = At.Shift.AFTER, +// target = "Lnet/minecraft/client/renderer/entity/LivingRenderer;entityModel:Lnet/minecraft/client/renderer/entity/model/EntityModel;")) +// protected void biomancy_onPostRenderModel(LivingEntity entityIn, float entityYaw, float partialTicks, MatrixStack matrixStackIn, IRenderTypeBuffer bufferIn, int packedLightIn, CallbackInfo ci, +// boolean shouldSit, float f, float f1, float f2, float f6, float f7, float f8, float f5, Minecraft minecraft, boolean flag, boolean flag1, boolean flag2, +// RenderType rendertype, IVertexBuilder ivertexbuilder, int i) { +// // if the entity is invisible but visible to player then render the entity a second time +// if (flag1) { +// entityModel.render(matrixStackIn, ivertexbuilder, packedLightIn, i, 1.0F, 1.0F, 1.0F, 0.5F); // +// } +// } + } From 78cc36854aac16bbfacff59c4b3ba1758d0b8742 Mon Sep 17 00:00:00 2001 From: Kai <6061273+Elenterius@users.noreply.github.com> Date: Fri, 25 Jun 2021 03:37:33 +0200 Subject: [PATCH 09/24] fixed #3 and removed potion effect amplifier requirement for mutation --- .../github/elenterius/biomancy/reagent/MutagenReagent.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/github/elenterius/biomancy/reagent/MutagenReagent.java b/src/main/java/com/github/elenterius/biomancy/reagent/MutagenReagent.java index d8ff1c8f3..7f9984330 100644 --- a/src/main/java/com/github/elenterius/biomancy/reagent/MutagenReagent.java +++ b/src/main/java/com/github/elenterius/biomancy/reagent/MutagenReagent.java @@ -46,7 +46,7 @@ public boolean affectEntity(CompoundNBT nbt, @Nullable LivingEntity source, Livi int amplifier = 0; int duration = 0; for (EffectInstance effectInstance : effects) { - if (effectInstance.getPotion() == ModEffects.FLESH_EATING_DISEASE.get()) { + if (effectInstance.getPotion() == ModEffects.RAVENOUS_HUNGER.get()) { amplifier = effectInstance.getAmplifier(); duration = effectInstance.getDuration(); break; @@ -56,7 +56,7 @@ public boolean affectEntity(CompoundNBT nbt, @Nullable LivingEntity source, Livi duration += 5 * 120; if (!convertLivingEntity(source, target, amplifier)) { - EffectInstance effectInstance = new EffectInstance(ModEffects.FLESH_EATING_DISEASE.get(), duration, amplifier); + EffectInstance effectInstance = new EffectInstance(ModEffects.RAVENOUS_HUNGER.get(), duration, amplifier); target.addPotionEffect(effectInstance); } } @@ -84,7 +84,7 @@ public boolean affectPlayerSelf(CompoundNBT nbt, PlayerEntity targetSelf) { private boolean convertLivingEntity(@Nullable LivingEntity source, LivingEntity target, int amplifier) { ServerWorld world = (ServerWorld) target.world; - if (amplifier < 2) return false; + if (amplifier < 1) return false; if (target instanceof GuardianEntity) { return convertMobEntityTo(world, (GuardianEntity) target, EntityType.ELDER_GUARDIAN); From 0b5104d874f3519cb0a2978295ac6efa475657e1 Mon Sep 17 00:00:00 2001 From: Kai <6061273+Elenterius@users.noreply.github.com> Date: Fri, 25 Jun 2021 03:43:32 +0200 Subject: [PATCH 10/24] fixed #2 being unable to extract blood from yourself --- .../biomancy/item/InjectionDeviceItem.java | 24 ++++++++++++-- .../biomancy/reagent/BloodSampleReagent.java | 33 ++++++++++++------- 2 files changed, 44 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/github/elenterius/biomancy/item/InjectionDeviceItem.java b/src/main/java/com/github/elenterius/biomancy/item/InjectionDeviceItem.java index 8c32cea4d..ae4b60585 100644 --- a/src/main/java/com/github/elenterius/biomancy/item/InjectionDeviceItem.java +++ b/src/main/java/com/github/elenterius/biomancy/item/InjectionDeviceItem.java @@ -204,7 +204,7 @@ public ActionResultType itemInteractionForEntity(ItemStack stack, PlayerEntity p if (player.world.isRemote) playSFX(player.world, player, SoundEvents.BLOCK_DISPENSER_FAIL); return ActionResultType.FAIL; } - else { //it's essentially empty + else { //the device is empty if (!target.world.isRemote) { CompoundNBT reagentNbt = BloodSampleReagent.getBloodSampleFromEntity(player, target); if (reagentNbt != null && !reagentNbt.isEmpty()) { @@ -236,7 +236,27 @@ public boolean interactWithPlayerSelf(ItemStack stack, PlayerEntity player) { } return success; } - return false; + else { //the device is empty + if (!player.world.isRemote) { + CompoundNBT reagentNbt = BloodSampleReagent.getBloodSampleFromEntityUnchecked(player); + if (reagentNbt != null && !reagentNbt.isEmpty()) { + CompoundNBT nbt = stack.getOrCreateTag(); + Reagent.serialize(ModReagents.BLOOD_SAMPLE.get(), nbt); + nbt.put(Reagent.NBT_KEY_DATA, reagentNbt); + setReagentAmount(stack, getMaxReagentAmount()); + + playSFX(player.world, player, ModSoundEvents.INJECT.get()); + player.attackEntityFrom(DamageSource.causeBeeStingDamage(player), 0.5f); + + if (player.isCreative()) { + player.setHeldItem(player.getActiveHand(), stack); //fix for creative mode (normally the stack is not modified in creative) + } + return true; + } + else return false; + } + else return true; + } } @OnlyIn(Dist.CLIENT) diff --git a/src/main/java/com/github/elenterius/biomancy/reagent/BloodSampleReagent.java b/src/main/java/com/github/elenterius/biomancy/reagent/BloodSampleReagent.java index 4642f1931..98d6b9fba 100644 --- a/src/main/java/com/github/elenterius/biomancy/reagent/BloodSampleReagent.java +++ b/src/main/java/com/github/elenterius/biomancy/reagent/BloodSampleReagent.java @@ -35,27 +35,38 @@ private static boolean isNonBoss(LivingEntity target) { @Nullable public static CompoundNBT getBloodSampleFromEntity(PlayerEntity player, LivingEntity target) { boolean isValidEntity = target.isAlive() && (isNonBoss(target) || player.isCreative()); - if (isValidEntity) { - CompoundNBT nbt = new CompoundNBT(); - String typeId = target.getEntityString(); - if (typeId != null) { - nbt.putString("EntityTypeId", typeId); - nbt.putString("Name", target.getType().getTranslationKey()); - nbt.putBoolean("IsPlayer", target instanceof PlayerEntity); - nbt.putUniqueId("EntityUUID", target.getUniqueID()); - return nbt; - } + return isValidEntity ? getBloodSampleFromEntityUnchecked(target) : null; + } + + @Nullable + public static CompoundNBT getBloodSampleFromEntityUnchecked(LivingEntity target) { + CompoundNBT nbt = new CompoundNBT(); + String typeId = target instanceof PlayerEntity ? getPlayerTypeId((PlayerEntity) target) : target.getEntityString(); + if (typeId != null) { + nbt.putString("EntityTypeId", typeId); + nbt.putString("Name", target.getType().getTranslationKey()); + nbt.putBoolean("IsPlayer", target instanceof PlayerEntity); + nbt.putUniqueId("EntityUUID", target.getUniqueID()); + return nbt; } return null; } + private static String getPlayerTypeId(PlayerEntity playerEntity) { + return EntityType.getKey(playerEntity.getType()).toString(); + } + @OnlyIn(Dist.CLIENT) @Override public void addInfoToTooltip(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag flagIn) { CompoundNBT nbt = stack.getOrCreateTag(); if (nbt.contains(NBT_KEY_DATA)) { CompoundNBT reagentNbt = nbt.getCompound(NBT_KEY_DATA); - tooltip.add(ClientTextUtil.getTooltipText("contains_dna", new TranslationTextComponent(reagentNbt.getString("Name"))).mergeStyle(TextFormatting.GRAY)); + if (reagentNbt.getBoolean("IsPlayer")) { + String playerName = " " + ClientTextUtil.tryToGetPlayerNameOnClientSide(reagentNbt.getUniqueId("EntityUUID")); + tooltip.add(ClientTextUtil.getTooltipText("contains_dna", new TranslationTextComponent(reagentNbt.getString("Name")).appendString(playerName)).mergeStyle(TextFormatting.GRAY)); + } + else tooltip.add(ClientTextUtil.getTooltipText("contains_dna", new TranslationTextComponent(reagentNbt.getString("Name"))).mergeStyle(TextFormatting.GRAY)); } if (ClientTextUtil.showExtraInfo(tooltip)) { tooltip.add(new TranslationTextComponent(getTranslationKey().replace("reagent", "tooltip")).mergeStyle(ClientTextUtil.LORE_STYLE)); From f20ae757c9604b93369ae85cb738904c3eacd09e Mon Sep 17 00:00:00 2001 From: Kai <6061273+Elenterius@users.noreply.github.com> Date: Fri, 25 Jun 2021 21:30:25 +0200 Subject: [PATCH 11/24] fixed #19 which was caused by an undecorated Accessor method mixin error (mixin 0.8.2 bug), added modid prefix to all other mixin accessors to prevent future incompatibilities with other mods related to the mixin accessor bug --- .../biomancy/item/weapon/ClawWeaponItem.java | 2 +- .../biomancy/item/weapon/PoleWeaponItem.java | 2 +- .../biomancy/mixin/ArmorStandEntityAccessor.java | 4 ++-- .../biomancy/mixin/RecipeManagerMixinAccessor.java | 4 ++-- .../elenterius/biomancy/mixin/SlimeEntityAccessor.java | 4 ++-- .../biomancy/mixin/SwordItemMixinAccessor.java | 4 ++-- ...Accessor.java => ClientItemStackMixinAccessor.java} | 10 +++++----- .../elenterius/biomancy/reagent/GrowthReagent.java | 4 ++-- .../biomancy/reagent/RejuvenationReagent.java | 4 ++-- .../biomancy/recipe/BioMechanicalRecipeType.java | 2 +- .../elenterius/biomancy/util/ClientTextUtil.java | 6 +++--- src/main/resources/biomancy.mixins.json | 2 +- 12 files changed, 24 insertions(+), 24 deletions(-) rename src/main/java/com/github/elenterius/biomancy/mixin/client/{ItemStackMixinAccessor.java => ClientItemStackMixinAccessor.java} (52%) diff --git a/src/main/java/com/github/elenterius/biomancy/item/weapon/ClawWeaponItem.java b/src/main/java/com/github/elenterius/biomancy/item/weapon/ClawWeaponItem.java index 26db79e71..9bd0cb796 100644 --- a/src/main/java/com/github/elenterius/biomancy/item/weapon/ClawWeaponItem.java +++ b/src/main/java/com/github/elenterius/biomancy/item/weapon/ClawWeaponItem.java @@ -37,7 +37,7 @@ public ClawWeaponItem(IItemTier tier, int attackDamageIn, float attackSpeedIn, P protected Multimap createAttributeModifiers() { ImmutableMultimap.Builder builder = ImmutableMultimap.builder(); - Multimap swordAttributes = ((SwordItemMixinAccessor) this).getAttributeModifiers(); + Multimap swordAttributes = ((SwordItemMixinAccessor) this).biomancy_attributeModifiers(); swordAttributes.forEach(builder::put); addAdditionalAttributeModifiers(builder); return builder.build(); diff --git a/src/main/java/com/github/elenterius/biomancy/item/weapon/PoleWeaponItem.java b/src/main/java/com/github/elenterius/biomancy/item/weapon/PoleWeaponItem.java index a53d98808..4ed4f1a8f 100644 --- a/src/main/java/com/github/elenterius/biomancy/item/weapon/PoleWeaponItem.java +++ b/src/main/java/com/github/elenterius/biomancy/item/weapon/PoleWeaponItem.java @@ -25,7 +25,7 @@ public PoleWeaponItem(IItemTier tier, int attackDamageIn, float attackSpeedIn, P protected Multimap createAttributeModifiers() { ImmutableMultimap.Builder builder = ImmutableMultimap.builder(); - Multimap swordAttributes = ((SwordItemMixinAccessor) this).getAttributeModifiers(); + Multimap swordAttributes = ((SwordItemMixinAccessor) this).biomancy_attributeModifiers(); swordAttributes.forEach(builder::put); addAdditionalAttributeModifiers(builder); return builder.build(); diff --git a/src/main/java/com/github/elenterius/biomancy/mixin/ArmorStandEntityAccessor.java b/src/main/java/com/github/elenterius/biomancy/mixin/ArmorStandEntityAccessor.java index bb1178e48..a2e16e848 100644 --- a/src/main/java/com/github/elenterius/biomancy/mixin/ArmorStandEntityAccessor.java +++ b/src/main/java/com/github/elenterius/biomancy/mixin/ArmorStandEntityAccessor.java @@ -7,7 +7,7 @@ @Mixin(ArmorStandEntity.class) public interface ArmorStandEntityAccessor { - @Invoker - void callSetSmall(boolean flag); + @Invoker("setSmall") + void biomancy_setSmall(boolean flag); } diff --git a/src/main/java/com/github/elenterius/biomancy/mixin/RecipeManagerMixinAccessor.java b/src/main/java/com/github/elenterius/biomancy/mixin/RecipeManagerMixinAccessor.java index 21b0f181f..919fe429b 100644 --- a/src/main/java/com/github/elenterius/biomancy/mixin/RecipeManagerMixinAccessor.java +++ b/src/main/java/com/github/elenterius/biomancy/mixin/RecipeManagerMixinAccessor.java @@ -13,7 +13,7 @@ @Mixin(RecipeManager.class) public interface RecipeManagerMixinAccessor { - @Invoker - > Map> callGetRecipes(IRecipeType recipeTypeIn); + @Invoker("getRecipes") + > Map> biomancy_getRecipes(IRecipeType recipeTypeIn); } diff --git a/src/main/java/com/github/elenterius/biomancy/mixin/SlimeEntityAccessor.java b/src/main/java/com/github/elenterius/biomancy/mixin/SlimeEntityAccessor.java index 9ac4a551c..fb8c2c125 100644 --- a/src/main/java/com/github/elenterius/biomancy/mixin/SlimeEntityAccessor.java +++ b/src/main/java/com/github/elenterius/biomancy/mixin/SlimeEntityAccessor.java @@ -7,7 +7,7 @@ @Mixin(SlimeEntity.class) public interface SlimeEntityAccessor { - @Invoker - void callSetSlimeSize(int size, boolean resetHealth); + @Invoker("setSlimeSize") + void biomancy_setSlimeSize(int size, boolean resetHealth); } diff --git a/src/main/java/com/github/elenterius/biomancy/mixin/SwordItemMixinAccessor.java b/src/main/java/com/github/elenterius/biomancy/mixin/SwordItemMixinAccessor.java index 797ecf733..8a4424a3a 100644 --- a/src/main/java/com/github/elenterius/biomancy/mixin/SwordItemMixinAccessor.java +++ b/src/main/java/com/github/elenterius/biomancy/mixin/SwordItemMixinAccessor.java @@ -10,7 +10,7 @@ @Mixin(SwordItem.class) public interface SwordItemMixinAccessor { - @Accessor - Multimap getAttributeModifiers(); + @Accessor("attributeModifiers") + Multimap biomancy_attributeModifiers(); } diff --git a/src/main/java/com/github/elenterius/biomancy/mixin/client/ItemStackMixinAccessor.java b/src/main/java/com/github/elenterius/biomancy/mixin/client/ClientItemStackMixinAccessor.java similarity index 52% rename from src/main/java/com/github/elenterius/biomancy/mixin/client/ItemStackMixinAccessor.java rename to src/main/java/com/github/elenterius/biomancy/mixin/client/ClientItemStackMixinAccessor.java index 779e4ebde..d220b45ec 100644 --- a/src/main/java/com/github/elenterius/biomancy/mixin/client/ItemStackMixinAccessor.java +++ b/src/main/java/com/github/elenterius/biomancy/mixin/client/ClientItemStackMixinAccessor.java @@ -5,14 +5,14 @@ import org.spongepowered.asm.mixin.gen.Invoker; @Mixin(ItemStack.class) -public interface ItemStackMixinAccessor { +public interface ClientItemStackMixinAccessor { // client side - @Invoker(value = "func_242393_J") - int getHideFlags(); + @Invoker("func_242393_J") + int biomancy_getHideFlags(); //client side - @Invoker(value = "func_242394_a") - static boolean isToolTipVisible(int hideFlags, ItemStack.TooltipDisplayFlags tooltipFlag) { + @Invoker("func_242394_a") + static boolean biomancy_isToolTipVisible(int hideFlags, ItemStack.TooltipDisplayFlags tooltipFlag) { return false; } } diff --git a/src/main/java/com/github/elenterius/biomancy/reagent/GrowthReagent.java b/src/main/java/com/github/elenterius/biomancy/reagent/GrowthReagent.java index 7fa3571f6..3f197b86a 100644 --- a/src/main/java/com/github/elenterius/biomancy/reagent/GrowthReagent.java +++ b/src/main/java/com/github/elenterius/biomancy/reagent/GrowthReagent.java @@ -117,7 +117,7 @@ public boolean affectEntity(CompoundNBT nbt, @Nullable LivingEntity source, Livi if (!target.world.isRemote) { int slimeSize = ((SlimeEntity) target).getSlimeSize(); if (slimeSize < 25) { - ((SlimeEntityAccessor) target).callSetSlimeSize(slimeSize + 1, false); + ((SlimeEntityAccessor) target).biomancy_setSlimeSize(slimeSize + 1, false); } else { target.attackEntityFrom(DamageSource.causeExplosionDamage(source), target.getHealth()); //"explode" slime @@ -143,7 +143,7 @@ else if (target instanceof ArmorStandEntity) { // EntityDataManager dataManager = target.getDataManager(); // byte status = dataManager.get(ArmorStandEntity.STATUS); // dataManager.set(ArmorStandEntity.STATUS, (byte) (status & ~1)); - ((ArmorStandEntityAccessor) target).callSetSmall(false); + ((ArmorStandEntityAccessor) target).biomancy_setSmall(false); return true; } } diff --git a/src/main/java/com/github/elenterius/biomancy/reagent/RejuvenationReagent.java b/src/main/java/com/github/elenterius/biomancy/reagent/RejuvenationReagent.java index 009a9cf0a..cc5f9e02a 100644 --- a/src/main/java/com/github/elenterius/biomancy/reagent/RejuvenationReagent.java +++ b/src/main/java/com/github/elenterius/biomancy/reagent/RejuvenationReagent.java @@ -63,7 +63,7 @@ public boolean affectEntity(CompoundNBT nbt, @Nullable LivingEntity source, Livi if (!target.world.isRemote) { int slimeSize = ((SlimeEntity) target).getSlimeSize(); if (slimeSize > 1) { - ((SlimeEntityAccessor) target).callSetSlimeSize(slimeSize - 1, false); + ((SlimeEntityAccessor) target).biomancy_setSlimeSize(slimeSize - 1, false); } } return true; @@ -86,7 +86,7 @@ else if (target instanceof ArmorStandEntity) { // EntityDataManager dataManager = target.getDataManager(); // byte status = dataManager.get(ArmorStandEntity.STATUS); // dataManager.set(ArmorStandEntity.STATUS, (byte) (status | 1)); //inverse = (byte)(status & ~1) - ((ArmorStandEntityAccessor) target).callSetSmall(true); + ((ArmorStandEntityAccessor) target).biomancy_setSmall(true); return true; } } diff --git a/src/main/java/com/github/elenterius/biomancy/recipe/BioMechanicalRecipeType.java b/src/main/java/com/github/elenterius/biomancy/recipe/BioMechanicalRecipeType.java index 6d541ae60..d82a3fad2 100644 --- a/src/main/java/com/github/elenterius/biomancy/recipe/BioMechanicalRecipeType.java +++ b/src/main/java/com/github/elenterius/biomancy/recipe/BioMechanicalRecipeType.java @@ -30,7 +30,7 @@ public Optional getRecipeFromInventory(World world, IInventory inputInv) { public Optional getRecipeForItem(World world, ItemStack stack) { RecipeManagerMixinAccessor recipeManager = (RecipeManagerMixinAccessor) world.getRecipeManager(); //noinspection unchecked - return recipeManager.callGetRecipes(this).values().stream().map(recipe -> (T) recipe) + return recipeManager.biomancy_getRecipes(this).values().stream().map(recipe -> (T) recipe) .filter(recipe -> { for (Ingredient ingredient : recipe.getIngredients()) { if (ingredient.test(stack)) return true; diff --git a/src/main/java/com/github/elenterius/biomancy/util/ClientTextUtil.java b/src/main/java/com/github/elenterius/biomancy/util/ClientTextUtil.java index 3d49e33ae..03a99fb7d 100644 --- a/src/main/java/com/github/elenterius/biomancy/util/ClientTextUtil.java +++ b/src/main/java/com/github/elenterius/biomancy/util/ClientTextUtil.java @@ -1,7 +1,7 @@ package com.github.elenterius.biomancy.util; import com.github.elenterius.biomancy.init.ClientSetupHandler; -import com.github.elenterius.biomancy.mixin.client.ItemStackMixinAccessor; +import com.github.elenterius.biomancy.mixin.client.ClientItemStackMixinAccessor; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.screen.Screen; import net.minecraft.entity.player.PlayerEntity; @@ -68,11 +68,11 @@ public static IFormattableTextComponent getDefaultKey() { public static int getHideFlags(ItemStack stack) { //noinspection ConstantConditions - return ((ItemStackMixinAccessor) (Object) stack).getHideFlags(); + return ((ClientItemStackMixinAccessor) (Object) stack).biomancy_getHideFlags(); } public static boolean isToolTipVisible(ItemStack stack, ItemStack.TooltipDisplayFlags flags) { - return ItemStackMixinAccessor.isToolTipVisible(getHideFlags(stack), flags); + return ClientItemStackMixinAccessor.biomancy_isToolTipVisible(getHideFlags(stack), flags); } public static void setTooltipVisible(ItemStack stack, ItemStack.TooltipDisplayFlags tooltipDisplay) { diff --git a/src/main/resources/biomancy.mixins.json b/src/main/resources/biomancy.mixins.json index b30843b42..55a5a0c3e 100644 --- a/src/main/resources/biomancy.mixins.json +++ b/src/main/resources/biomancy.mixins.json @@ -17,10 +17,10 @@ "SwordItemMixinAccessor" ], "client": [ + "client.ClientItemStackMixinAccessor", "client.ClientRecipeBookMixin", "client.EntityMixin", "client.GetMouseOverMixin", - "client.ItemStackMixinAccessor", "client.LivingRendererMixin", "client.MinecraftMixin", "client.PlayerRendererMixin" From 7b3cb24041e93928e2eb461b77778850ee6ac4b4 Mon Sep 17 00:00:00 2001 From: Kai <6061273+Elenterius@users.noreply.github.com> Date: Fri, 25 Jun 2021 21:49:01 +0200 Subject: [PATCH 12/24] fixed injection device not returning any glass vial when reloading --- .../biomancy/item/InjectionDeviceItem.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/github/elenterius/biomancy/item/InjectionDeviceItem.java b/src/main/java/com/github/elenterius/biomancy/item/InjectionDeviceItem.java index ae4b60585..32de4a05f 100644 --- a/src/main/java/com/github/elenterius/biomancy/item/InjectionDeviceItem.java +++ b/src/main/java/com/github/elenterius/biomancy/item/InjectionDeviceItem.java @@ -93,7 +93,7 @@ public ActionResult onItemRightClick(World worldIn, PlayerEntity play ItemStack offhandStack = playerIn.getHeldItemOffhand(); if (!offhandStack.isEmpty()) { if (offhandStack.getItem() == ModItems.REAGENT.get()) { - if (addReagent(offhandStack, heldStack)) { + if (addReagent(offhandStack, heldStack, playerIn)) { playSFX(worldIn, playerIn, SoundEvents.ITEM_ARMOR_EQUIP_GENERIC); return ActionResult.resultFail(heldStack); } @@ -128,7 +128,7 @@ private boolean extractReagent(ItemStack containerStack, ItemStack gunStack, Pla return false; } - private boolean addReagent(ItemStack ammoStack, ItemStack gunStack) { + private boolean addReagent(ItemStack ammoStack, ItemStack gunStack, PlayerEntity playerIn) { byte amount = getReagentAmount(gunStack); if (amount >= getMaxReagentAmount()) return false; @@ -141,6 +141,11 @@ private boolean addReagent(ItemStack ammoStack, ItemStack gunStack) { Reagent.copyAdditionalData(ammoStack.getOrCreateTag(), nbt); setReagentAmount(gunStack, (byte) 1); ammoStack.grow(-1); + + ItemStack stack = new ItemStack(ModItems.GLASS_VIAL.get()); + if (!playerIn.addItemStackToInventory(stack)) { + playerIn.entityDropItem(stack); + } return true; } else { @@ -153,6 +158,11 @@ private boolean addReagent(ItemStack ammoStack, ItemStack gunStack) { } setReagentAmount(gunStack, (byte) (amount + 1)); ammoStack.grow(-1); + + ItemStack stack = new ItemStack(ModItems.GLASS_VIAL.get()); + if (!playerIn.addItemStackToInventory(stack)) { + playerIn.entityDropItem(stack); + } return true; } } From 5ee1565f411368407f1f4f2ba189239c7fbf56c2 Mon Sep 17 00:00:00 2001 From: Kai <6061273+Elenterius@users.noreply.github.com> Date: Fri, 25 Jun 2021 22:36:53 +0200 Subject: [PATCH 13/24] fixed injection device not consuming reagent when self-injecting --- .../elenterius/biomancy/item/InjectionDeviceItem.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/github/elenterius/biomancy/item/InjectionDeviceItem.java b/src/main/java/com/github/elenterius/biomancy/item/InjectionDeviceItem.java index 32de4a05f..e1ecaadff 100644 --- a/src/main/java/com/github/elenterius/biomancy/item/InjectionDeviceItem.java +++ b/src/main/java/com/github/elenterius/biomancy/item/InjectionDeviceItem.java @@ -183,7 +183,7 @@ public ActionResultType onItemUse(ItemUseContext context) { boolean success = reagent.affectBlock(stack.getOrCreateTag().getCompound(Reagent.NBT_KEY_DATA), context.getPlayer(), world, context.getPos(), context.getFace()); if (success) { if (!world.isRemote) { - addReagentAmount(stack, (byte) -1); + if (context.getPlayer() == null || !context.getPlayer().isCreative()) addReagentAmount(stack, (byte) -1); world.playEvent(Constants.WorldEvents.BONEMEAL_PARTICLES, context.getPos().up(), 0); playSFX(world, context.getPlayer(), ModSoundEvents.INJECT.get()); } @@ -204,7 +204,8 @@ public ActionResultType itemInteractionForEntity(ItemStack stack, PlayerEntity p if (reagent.affectEntity(stack.getOrCreateTag().getCompound(Reagent.NBT_KEY_DATA), player, target)) { if (!target.world.isRemote) { if (reagent.isAttributeModifier()) reagent.applyAttributesModifiersToEntity(target); - addReagentAmount(stack, (byte) -1); + if (!player.isCreative()) addReagentAmount(stack, (byte) -1); + target.world.playEvent(Constants.WorldEvents.SPAWN_EXPLOSION_PARTICLE, target.getPosition(), 0); playSFX(target.world, player, ModSoundEvents.INJECT.get()); } @@ -241,8 +242,9 @@ public boolean interactWithPlayerSelf(ItemStack stack, PlayerEntity player) { Reagent reagent = Reagent.deserialize(stack.getOrCreateTag()); if (reagent != null) { boolean success = reagent.affectPlayerSelf(stack.getOrCreateTag().getCompound(Reagent.NBT_KEY_DATA), player); - if (!player.world.isRemote && success && reagent.isAttributeModifier()) { - reagent.applyAttributesModifiersToEntity(player); + if (success && !player.world.isRemote) { + if (reagent.isAttributeModifier()) reagent.applyAttributesModifiersToEntity(player); + if (!player.isCreative()) addReagentAmount(stack, (byte) -1); } return success; } From 1e3e39f716d35aea6b4a69925942879383b3ec9d Mon Sep 17 00:00:00 2001 From: serpentarium Date: Thu, 24 Jun 2021 18:36:35 +0300 Subject: [PATCH 14/24] Add new Digester & Decomposer model by @arsserpentarium --- .../assets/biomancy/blockstates/chewer.json | 8 +- .../assets/biomancy/blockstates/digester.json | 8 +- .../assets/biomancy/models/block/chewer.json | 4 +- .../biomancy/models/block/decomposer.json | 2816 +++++------------ .../biomancy/models/block/digester.json | 2244 +------------ ...{decomposer_front.png => chewer_front.png} | Bin .../biomancy/textures/block/nutrients.png | Bin 0 -> 71467 bytes .../assets/biomancy/textures/block/teeth.png | Bin 0 -> 79 bytes .../block/{tooths.png => teeth_0.png} | Bin 9 files changed, 850 insertions(+), 4230 deletions(-) rename src/main/resources/assets/biomancy/textures/block/{decomposer_front.png => chewer_front.png} (100%) create mode 100644 src/main/resources/assets/biomancy/textures/block/nutrients.png create mode 100644 src/main/resources/assets/biomancy/textures/block/teeth.png rename src/main/resources/assets/biomancy/textures/block/{tooths.png => teeth_0.png} (100%) diff --git a/src/main/resources/assets/biomancy/blockstates/chewer.json b/src/main/resources/assets/biomancy/blockstates/chewer.json index b408684eb..85768d129 100644 --- a/src/main/resources/assets/biomancy/blockstates/chewer.json +++ b/src/main/resources/assets/biomancy/blockstates/chewer.json @@ -1,18 +1,18 @@ { "variants": { "facing=east": { - "model": "biomancy:block/decomposer", + "model": "biomancy:block/chewer", "y": 90 }, "facing=north": { - "model": "biomancy:block/decomposer" + "model": "biomancy:block/chewer" }, "facing=south": { - "model": "biomancy:block/decomposer", + "model": "biomancy:block/chewer", "y": 180 }, "facing=west": { - "model": "biomancy:block/decomposer", + "model": "biomancy:block/chewer", "y": 270 } } diff --git a/src/main/resources/assets/biomancy/blockstates/digester.json b/src/main/resources/assets/biomancy/blockstates/digester.json index b408684eb..cfd967795 100644 --- a/src/main/resources/assets/biomancy/blockstates/digester.json +++ b/src/main/resources/assets/biomancy/blockstates/digester.json @@ -1,18 +1,18 @@ { "variants": { "facing=east": { - "model": "biomancy:block/decomposer", + "model": "biomancy:block/digester", "y": 90 }, "facing=north": { - "model": "biomancy:block/decomposer" + "model": "biomancy:block/digester" }, "facing=south": { - "model": "biomancy:block/decomposer", + "model": "biomancy:block/digester", "y": 180 }, "facing=west": { - "model": "biomancy:block/decomposer", + "model": "biomancy:block/digester", "y": 270 } } diff --git a/src/main/resources/assets/biomancy/models/block/chewer.json b/src/main/resources/assets/biomancy/models/block/chewer.json index ba2a84102..f01e4a2a1 100644 --- a/src/main/resources/assets/biomancy/models/block/chewer.json +++ b/src/main/resources/assets/biomancy/models/block/chewer.json @@ -5,8 +5,8 @@ "particle": "biomancy:block/flesh_bland", "flesh": "biomancy:block/flesh_bland", "neck": "biomancy:block/neck_hole", - "tooths": "biomancy:block/tooths", - "front": "biomancy:block/decomposer_front" + "tooths": "biomancy:block/teeth_0", + "front": "biomancy:block/chewer_front" }, "elements": [ { diff --git a/src/main/resources/assets/biomancy/models/block/decomposer.json b/src/main/resources/assets/biomancy/models/block/decomposer.json index ba2a84102..d05a05c7c 100644 --- a/src/main/resources/assets/biomancy/models/block/decomposer.json +++ b/src/main/resources/assets/biomancy/models/block/decomposer.json @@ -1,2111 +1,707 @@ { - "credit": "Made by Elenterius", - "parent": "block/block", - "textures": { - "particle": "biomancy:block/flesh_bland", - "flesh": "biomancy:block/flesh_bland", - "neck": "biomancy:block/neck_hole", - "tooths": "biomancy:block/tooths", - "front": "biomancy:block/decomposer_front" - }, - "elements": [ - { - "name": "container", - "from": [ - 0, - 0, - 3 - ], - "to": [ - 16, - 14, - 16 - ], - "rotation": { - "angle": 0, - "axis": "y", - "origin": [ - 7, - 6, - 7 - ] - }, - "faces": { - "north": { - "uv": [ - 0, - 2, - 16, - 16 - ], - "texture": "#front" - }, - "east": { - "uv": [ - 0, - 2, - 13, - 16 - ], - "texture": "#flesh", - "cullface": "east" - }, - "south": { - "uv": [ - 0, - 2, - 16, - 16 - ], - "texture": "#flesh", - "cullface": "south" - }, - "west": { - "uv": [ - 3, - 2, - 16, - 16 - ], - "texture": "#flesh", - "cullface": "west" - }, - "up": { - "uv": [ - 16, - 16, - 0, - 3 - ], - "texture": "#flesh" - }, - "down": { - "uv": [ - 16, - 0, - 0, - 13 - ], - "texture": "#flesh", - "cullface": "down" - } - } - }, - { - "name": "neck", - "from": [ - 4, - 14, - 4 - ], - "to": [ - 12, - 16, - 12 - ], - "rotation": { - "angle": 0, - "axis": "y", - "origin": [ - 8, - 15, - 8 - ] - }, - "faces": { - "north": { - "uv": [ - 8, - 8, - 16, - 10 - ], - "texture": "#neck" - }, - "east": { - "uv": [ - 8, - 0, - 16, - 2 - ], - "texture": "#neck" - }, - "south": { - "uv": [ - 8, - 2, - 16, - 4 - ], - "texture": "#neck" - }, - "west": { - "uv": [ - 8, - 4, - 16, - 6 - ], - "texture": "#neck" - }, - "up": { - "uv": [ - 8, - 8, - 0, - 0 - ], - "texture": "#neck", - "cullface": "up" - } - } - }, - { - "from": [ - 7, - 7.425, - 2.125 - ], - "to": [ - 9, - 9.425, - 4.125 - ], - "rotation": { - "angle": 0, - "axis": "y", - "origin": [ - 8, - 7.82145, - 1.625 - ] - }, - "faces": { - "north": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 0, - 1, - 1, - 2 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 1, - 1, - 2, - 2 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 1, - 0, - 2, - 1 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 1, - 3, - 0, - 2 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 2, - 2, - 1, - 3 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 7.5, - 6.925, - 0.125 - ], - "to": [ - 8.5, - 7.925, - 2.125 - ], - "rotation": { - "angle": 0, - "axis": "y", - "origin": [ - 8, - 7.82145, - 1.625 - ] - }, - "faces": { - "north": { - "uv": [ - 6.5, - 0.5, - 7, - 1 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 0, - 6, - 1, - 6.5 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 6.5, - 1, - 7, - 1.5 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 1, - 6, - 2, - 6.5 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 2.5, - 7, - 2, - 6 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 3, - 6, - 2.5, - 7 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 7.5, - 5.925, - 0.125 - ], - "to": [ - 8.5, - 6.925, - 1.125 - ], - "rotation": { - "angle": 0, - "axis": "y", - "origin": [ - 8, - 7.82145, - 1.625 - ] - }, - "faces": { - "north": { - "uv": [ - 6.5, - 1.5, - 7, - 2 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 6.5, - 2, - 7, - 2.5 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 6.5, - 3.5, - 7, - 4 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 6.5, - 4, - 7, - 4.5 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 7, - 5, - 6.5, - 4.5 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 7, - 5, - 6.5, - 5.5 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 7.5, - 7.925, - 1.125 - ], - "to": [ - 8.5, - 8.925, - 2.125 - ], - "rotation": { - "angle": 0, - "axis": "y", - "origin": [ - 8, - 7.82145, - 1.625 - ] - }, - "faces": { - "north": { - "uv": [ - 0, - 7, - 0.5, - 7.5 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 0.5, - 7, - 1, - 7.5 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 2, - 7, - 2.5, - 7.5 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 2.5, - 7, - 3, - 7.5 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 3.5, - 7.5, - 3, - 7 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 4, - 7, - 3.5, - 7.5 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 3, - 6.425, - 2.125 - ], - "to": [ - 5, - 8.425, - 4.125 - ], - "rotation": { - "angle": 0, - "axis": "y", - "origin": [ - 8, - 6.82145, - 1.625 - ] - }, - "faces": { - "north": { - "uv": [ - 2, - 2, - 3, - 3 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 2, - 0, - 3, - 1 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 2, - 1, - 3, - 2 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 0, - 3, - 1, - 4 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 2, - 4, - 1, - 3 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 3, - 3, - 2, - 4 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 5.09835, - 8.57665, - 0.125 - ], - "to": [ - 6.09835, - 9.57665, - 2.125 - ], - "rotation": { - "angle": 45, - "axis": "z", - "origin": [ - 8, - 6.82145, - 1.625 - ] - }, - "faces": { - "north": { - "uv": [ - 4, - 7, - 4.5, - 7.5 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 3, - 6, - 4, - 6.5 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 4.5, - 7, - 5, - 7.5 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 4, - 6, - 5, - 6.5 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 5.5, - 7, - 5, - 6 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 6, - 6, - 5.5, - 7 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 5.09835, - 9.57665, - 1.125 - ], - "to": [ - 6.09835, - 10.57665, - 2.125 - ], - "rotation": { - "angle": 45, - "axis": "z", - "origin": [ - 8, - 6.82145, - 1.625 - ] - }, - "faces": { - "north": { - "uv": [ - 5, - 7, - 5.5, - 7.5 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 5.5, - 7, - 6, - 7.5 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 7, - 7, - 7.5, - 7.5 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 7, - 0, - 7.5, - 0.5 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 7.5, - 1, - 7, - 0.5 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 7.5, - 1, - 7, - 1.5 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 5.09835, - 7.57665, - 0.125 - ], - "to": [ - 6.09835, - 8.57665, - 1.125 - ], - "rotation": { - "angle": 45, - "axis": "z", - "origin": [ - 8, - 6.82145, - 1.625 - ] - }, - "faces": { - "north": { - "uv": [ - 7, - 1.5, - 7.5, - 2 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 7, - 2, - 7.5, - 2.5 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 7, - 2.5, - 7.5, - 3 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 7, - 3, - 7.5, - 3.5 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 7.5, - 4, - 7, - 3.5 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 7.5, - 4, - 7, - 4.5 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 11, - 6.425, - 2.125 - ], - "to": [ - 13, - 8.425, - 4.125 - ], - "rotation": { - "angle": 0, - "axis": "y", - "origin": [ - 8, - 6.82145, - 1.625 - ] - }, - "faces": { - "north": { - "uv": [ - 3, - 3, - 4, - 4 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 3, - 0, - 4, - 1 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 3, - 1, - 4, - 2 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 3, - 2, - 4, - 3 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 1, - 5, - 0, - 4 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 2, - 4, - 1, - 5 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 9.90165, - 8.57665, - 0.125 - ], - "to": [ - 10.90165, - 9.57665, - 2.125 - ], - "rotation": { - "angle": -45, - "axis": "z", - "origin": [ - 8, - 6.82145, - 1.625 - ] - }, - "faces": { - "north": { - "uv": [ - 7, - 4.5, - 7.5, - 5 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 6, - 6, - 7, - 6.5 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 7, - 5, - 7.5, - 5.5 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 6, - 0, - 7, - 0.5 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 6.5, - 1.5, - 6, - 0.5 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 6.5, - 1.5, - 6, - 2.5 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 9.90165, - 7.57665, - 0.125 - ], - "to": [ - 10.90165, - 8.57665, - 1.125 - ], - "rotation": { - "angle": -45, - "axis": "z", - "origin": [ - 8, - 6.82145, - 1.625 - ] - }, - "faces": { - "north": { - "uv": [ - 7, - 5.5, - 7.5, - 6 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 7, - 6, - 7.5, - 6.5 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 7, - 6.5, - 7.5, - 7 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 0, - 7.5, - 0.5, - 8 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 1, - 8, - 0.5, - 7.5 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 1.5, - 7.5, - 1, - 8 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 9.90165, - 9.57665, - 1.125 - ], - "to": [ - 10.90165, - 10.57665, - 2.125 - ], - "rotation": { - "angle": -45, - "axis": "z", - "origin": [ - 8, - 6.82145, - 1.625 - ] - }, - "faces": { - "north": { - "uv": [ - 1.5, - 7.5, - 2, - 8 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 2, - 7.5, - 2.5, - 8 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 2.5, - 7.5, - 3, - 8 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 3, - 7.5, - 3.5, - 8 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 4, - 8, - 3.5, - 7.5 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 4.5, - 7.5, - 4, - 8 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 7, - 1.125, - 2.125 - ], - "to": [ - 9, - 3.125, - 4.125 - ], - "rotation": { - "angle": 0, - "axis": "y", - "origin": [ - 8.125, - 2.25, - 1.875 - ] - }, - "faces": { - "north": { - "uv": [ - 2, - 4, - 3, - 5 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 3, - 4, - 4, - 5 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 4, - 4, - 5, - 5 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 4, - 0, - 5, - 1 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 5, - 2, - 4, - 1 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 5, - 2, - 4, - 3 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 7.5, - 2.625, - 0.125 - ], - "to": [ - 8.5, - 3.625, - 2.125 - ], - "rotation": { - "angle": 0, - "axis": "y", - "origin": [ - 7.625, - 2.75, - 1.875 - ] - }, - "faces": { - "north": { - "uv": [ - 4.5, - 7.5, - 5, - 8 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 6, - 2.5, - 7, - 3 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 5, - 7.5, - 5.5, - 8 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 6, - 3, - 7, - 3.5 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 6.5, - 4.5, - 6, - 3.5 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 6.5, - 4.5, - 6, - 5.5 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 7.5, - 3.625, - 0.125 - ], - "to": [ - 8.5, - 4.625, - 1.125 - ], - "rotation": { - "angle": 0, - "axis": "y", - "origin": [ - 8.625, - 3.75, - 0.875 - ] - }, - "faces": { - "north": { - "uv": [ - 5.5, - 7.5, - 6, - 8 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 6, - 7.5, - 6.5, - 8 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 6.5, - 7.5, - 7, - 8 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 7, - 7.5, - 7.5, - 8 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 8, - 8, - 7.5, - 7.5 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 8, - 0, - 7.5, - 0.5 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 7.5, - 1.625, - 1.125 - ], - "to": [ - 8.5, - 2.625, - 2.125 - ], - "rotation": { - "angle": 0, - "axis": "y", - "origin": [ - 7.625, - 2.75, - 1.875 - ] - }, - "faces": { - "north": { - "uv": [ - 7.5, - 0.5, - 8, - 1 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 7.5, - 1, - 8, - 1.5 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 7.5, - 1.5, - 8, - 2 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 7.5, - 2, - 8, - 2.5 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 8, - 3, - 7.5, - 2.5 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 8, - 3, - 7.5, - 3.5 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 3, - 2.125, - 2.125 - ], - "to": [ - 5, - 4.125, - 4.125 - ], - "rotation": { - "angle": 0, - "axis": "y", - "origin": [ - 4.125, - 3.25, - 1.875 - ] - }, - "faces": { - "north": { - "uv": [ - 4, - 3, - 5, - 4 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 0, - 5, - 1, - 6 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 1, - 5, - 2, - 6 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 2, - 5, - 3, - 6 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 4, - 6, - 3, - 5 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 5, - 5, - 4, - 6 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 3.5, - 3.625, - 0.125 - ], - "to": [ - 4.5, - 4.625, - 2.125 - ], - "rotation": { - "angle": -45, - "axis": "z", - "origin": [ - 4, - 3.125, - 2.125 - ] - }, - "faces": { - "north": { - "uv": [ - 7.5, - 3.5, - 8, - 4 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 6, - 5.5, - 7, - 6 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 7.5, - 4, - 8, - 4.5 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 0, - 6.5, - 1, - 7 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 1.5, - 7.5, - 1, - 6.5 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 2, - 6.5, - 1.5, - 7.5 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 3.5, - 2.625, - 1.125 - ], - "to": [ - 4.5, - 3.625, - 2.125 - ], - "rotation": { - "angle": -45, - "axis": "z", - "origin": [ - 4, - 3.125, - 2.125 - ] - }, - "faces": { - "north": { - "uv": [ - 7.5, - 4.5, - 8, - 5 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 7.5, - 5, - 8, - 5.5 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 7.5, - 5.5, - 8, - 6 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 7.5, - 6, - 8, - 6.5 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 8, - 7, - 7.5, - 6.5 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 8, - 7, - 7.5, - 7.5 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 3.5, - 4.625, - 0.125 - ], - "to": [ - 4.5, - 5.625, - 1.125 - ], - "rotation": { - "angle": -45, - "axis": "z", - "origin": [ - 4, - 3.125, - 2.125 - ] - }, - "faces": { - "north": { - "uv": [ - 0, - 8, - 0.5, - 8.5 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 0.5, - 8, - 1, - 8.5 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 1, - 8, - 1.5, - 8.5 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 1.5, - 8, - 2, - 8.5 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 2.5, - 8.5, - 2, - 8 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 3, - 8, - 2.5, - 8.5 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 11, - 2.125, - 2.125 - ], - "to": [ - 13, - 4.125, - 4.125 - ], - "rotation": { - "angle": 0, - "axis": "y", - "origin": [ - 12, - 3.125, - 2.125 - ] - }, - "faces": { - "north": { - "uv": [ - 5, - 5, - 6, - 6 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 5, - 0, - 6, - 1 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 5, - 1, - 6, - 2 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 5, - 2, - 6, - 3 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 6, - 4, - 5, - 3 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 6, - 4, - 5, - 5 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 11.5, - 3.625, - 0.125 - ], - "to": [ - 12.5, - 4.625, - 2.125 - ], - "rotation": { - "angle": 45, - "axis": "z", - "origin": [ - 12, - 3.125, - 2.125 - ] - }, - "faces": { - "north": { - "uv": [ - 3, - 8, - 3.5, - 8.5 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 3, - 6.5, - 4, - 7 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 3.5, - 8, - 4, - 8.5 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 4, - 6.5, - 5, - 7 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 6.5, - 7.5, - 6, - 6.5 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 7, - 6.5, - 6.5, - 7.5 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 11.5, - 4.625, - 0.125 - ], - "to": [ - 12.5, - 5.625, - 1.125 - ], - "rotation": { - "angle": 45, - "axis": "z", - "origin": [ - 12, - 3.125, - 2.125 - ] - }, - "faces": { - "north": { - "uv": [ - 4, - 8, - 4.5, - 8.5 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 4.5, - 8, - 5, - 8.5 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 5, - 8, - 5.5, - 8.5 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 5.5, - 8, - 6, - 8.5 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 6.5, - 8.5, - 6, - 8 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 7, - 8, - 6.5, - 8.5 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 11.5, - 2.625, - 1.125 - ], - "to": [ - 12.5, - 3.625, - 2.125 - ], - "rotation": { - "angle": 45, - "axis": "z", - "origin": [ - 12, - 3.125, - 2.125 - ] - }, - "faces": { - "north": { - "uv": [ - 7, - 8, - 7.5, - 8.5 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 7.5, - 8, - 8, - 8.5 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 8, - 8, - 8.5, - 8.5 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 8, - 0, - 8.5, - 0.5 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 8.5, - 1, - 8, - 0.5 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 8.5, - 1, - 8, - 1.5 - ], - "texture": "#tooths" - } - } - } - ], - "groups": [ - 0, - 1, - { - "name": "group", - "origin": [ - 8, - 12, - 8 - ], - "children": [ - { - "name": "tooth", - "origin": [ - 8, - 8, - 8 - ], - "children": [ - 2, - 3, - 4, - 5 - ] - }, - { - "name": "tooth", - "origin": [ - 8, - 8, - 8 - ], - "children": [ - 6, - 7, - 8, - 9 - ] - }, - { - "name": "tooth", - "origin": [ - 8, - 8, - 8 - ], - "children": [ - 10, - 11, - 12, - 13 - ] - }, - { - "name": "tooth", - "origin": [ - 8, - 8, - 8 - ], - "children": [ - 14, - 15, - 16, - 17 - ] - }, - { - "name": "tooth", - "origin": [ - 8, - 8, - 8 - ], - "children": [ - 18, - 19, - 20, - 21 - ] - }, - { - "name": "tooth", - "origin": [ - 8, - 8, - 8 - ], - "children": [ - 22, - 23, - 24, - 25 - ] - } - ] - } - ] -} \ No newline at end of file + "credit": "Made by Selea", + "parent": "block/block", + "textures": { + "0": "biomancy:block/chewer_front", + "1": "biomancy:block/flesh_bland", + "19": "biomancy:block/muscle", + "26": "biomancy:block/teeth", + "27": "biomancy:block/nutrients", + "particle": "biomancy:block/flesh_bland" + }, + "elements": [ + { + "from": [1, 0, 1], + "to": [15, 1, 15], + "faces": { + "north": {"uv": [0, 0, 14, 1], "texture": "#1"}, + "east": {"uv": [0, 0, 14, 1], "texture": "#1"}, + "south": {"uv": [0, 0, 14, 1], "texture": "#1"}, + "west": {"uv": [0, 0, 14, 1], "texture": "#1"}, + "up": {"uv": [0, 0, 14, 14], "texture": "#1"}, + "down": {"uv": [1, 2, 15, 16], "texture": "#0"} + } + }, + { + "from": [1, 1, 0], + "to": [15, 10, 1], + "faces": { + "north": {"uv": [0, 0, 14, 9], "texture": "#1"}, + "east": {"uv": [0, 0, 1, 9], "texture": "#1"}, + "south": {"uv": [0, 0, 14, 9], "texture": "#19"}, + "west": {"uv": [0, 0, 1, 9], "texture": "#1"}, + "up": {"uv": [0, 0, 14, 1], "texture": "#1"}, + "down": {"uv": [0, 0, 14, 1], "texture": "#1"} + } + }, + { + "from": [0, 1, 1], + "to": [1, 10, 15], + "faces": { + "north": {"uv": [0, 0, 1, 9], "texture": "#1"}, + "east": {"uv": [0, 0, 14, 9], "texture": "#19"}, + "south": {"uv": [0, 0, 1, 9], "texture": "#1"}, + "west": {"uv": [0, 0, 14, 9], "texture": "#1"}, + "up": {"uv": [0, 0, 1, 14], "texture": "#1"}, + "down": {"uv": [0, 0, 1, 14], "texture": "#1"} + } + }, + { + "from": [15, 1, 1], + "to": [16, 10, 15], + "faces": { + "north": {"uv": [0, 0, 1, 9], "texture": "#1"}, + "east": {"uv": [0, 0, 14, 9], "texture": "#1"}, + "south": {"uv": [0, 0, 1, 9], "texture": "#1"}, + "west": {"uv": [0, 0, 14, 9], "texture": "#19"}, + "up": {"uv": [0, 0, 1, 14], "texture": "#1"}, + "down": {"uv": [0, 0, 1, 14], "texture": "#1"} + } + }, + { + "from": [1, 1, 15], + "to": [15, 10, 16], + "faces": { + "north": {"uv": [0, 0, 14, 9], "texture": "#19"}, + "east": {"uv": [0, 0, 1, 9], "texture": "#1"}, + "south": {"uv": [0, 0, 14, 9], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 9], "texture": "#1"}, + "up": {"uv": [0, 0, 14, 1], "texture": "#1"}, + "down": {"uv": [0, 0, 14, 1], "texture": "#1"} + } + }, + { + "from": [1, 1, 1], + "to": [15, 6, 15], + "faces": { + "north": {"uv": [0, 0, 14, 5], "texture": "#27"}, + "east": {"uv": [0, 0, 14, 5], "texture": "#27"}, + "south": {"uv": [0, 0, 14, 5], "texture": "#27"}, + "west": {"uv": [0, 0, 14, 5], "texture": "#27"}, + "up": {"uv": [10, 7, 11, 8], "texture": "#27"}, + "down": {"uv": [0, 0, 14, 14], "texture": "#27"} + } + }, + { + "from": [6, 1, 3], + "to": [10, 9, 5], + "faces": { + "north": {"uv": [0, 0, 4, 8], "texture": "#19"}, + "east": {"uv": [0, 0, 2, 8], "texture": "#19"}, + "south": {"uv": [0, 0, 4, 8], "texture": "#19"}, + "west": {"uv": [0, 0, 2, 8], "texture": "#19"}, + "up": {"uv": [0, 0, 4, 2], "texture": "#19"}, + "down": {"uv": [0, 0, 4, 2], "texture": "#19"} + } + }, + { + "from": [3, 15, 3], + "to": [6, 16, 6], + "faces": { + "north": {"uv": [0, 0, 3, 1], "texture": "#1"}, + "east": {"uv": [0, 0, 3, 1], "texture": "#1"}, + "south": {"uv": [0, 0, 3, 1], "texture": "#1"}, + "west": {"uv": [0, 0, 3, 1], "texture": "#1"}, + "up": {"uv": [0, 0, 3, 3], "texture": "#1"}, + "down": {"uv": [0, 0, 3, 3], "texture": "#19"} + } + }, + { + "from": [1, 10, 1], + "to": [7, 12, 2], + "faces": { + "north": {"uv": [0, 0, 6, 2], "texture": "#1"}, + "east": {"uv": [0, 0, 1, 2], "texture": "#1"}, + "south": {"uv": [0, 0, 6, 2], "texture": "#19"}, + "west": {"uv": [0, 0, 1, 2], "texture": "#1"}, + "up": {"uv": [0, 0, 6, 1], "texture": "#1"}, + "down": {"uv": [0, 0, 6, 1], "texture": "#19"} + } + }, + { + "from": [2, 12, 2], + "to": [6, 15, 3], + "faces": { + "north": {"uv": [0, 0, 4, 3], "texture": "#1"}, + "east": {"uv": [0, 0, 1, 3], "texture": "#1"}, + "south": {"uv": [0, 0, 4, 3], "texture": "#19"}, + "west": {"uv": [0, 0, 1, 3], "texture": "#1"}, + "up": {"uv": [0, 0, 4, 1], "texture": "#1"}, + "down": {"uv": [0, 0, 4, 1], "texture": "#19"} + } + }, + { + "from": [2, 12, 3], + "to": [3, 15, 6], + "faces": { + "north": {"uv": [0, 0, 1, 3], "texture": "#1"}, + "east": {"uv": [0, 0, 3, 3], "texture": "#19"}, + "south": {"uv": [0, 0, 1, 3], "texture": "#1"}, + "west": {"uv": [0, 0, 3, 3], "texture": "#1"}, + "up": {"uv": [0, 0, 1, 3], "texture": "#1"}, + "down": {"uv": [0, 0, 1, 3], "texture": "#19"} + } + }, + { + "from": [1, 10, 2], + "to": [2, 12, 7], + "faces": { + "north": {"uv": [0, 0, 1, 2], "texture": "#1"}, + "east": {"uv": [0, 0, 5, 2], "texture": "#19"}, + "south": {"uv": [0, 0, 1, 2], "texture": "#1"}, + "west": {"uv": [0, 0, 5, 2], "texture": "#1"}, + "up": {"uv": [0, 0, 1, 5], "texture": "#1"}, + "down": {"uv": [0, 0, 1, 5], "texture": "#19"} + } + }, + { + "from": [3, 15, 6], + "to": [4, 16, 7], + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "up": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "down": {"uv": [0, 0, 1, 1], "texture": "#26"} + } + }, + { + "from": [2, 13, 6], + "to": [3, 14, 7], + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "up": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "down": {"uv": [0, 0, 1, 1], "texture": "#26"} + } + }, + { + "from": [5, 15, 6], + "to": [6, 16, 7], + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "up": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "down": {"uv": [0, 0, 1, 1], "texture": "#26"} + } + }, + { + "from": [6, 15, 5], + "to": [7, 16, 6], + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "up": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "down": {"uv": [0, 0, 1, 1], "texture": "#26"} + } + }, + { + "from": [6, 15, 3], + "to": [7, 16, 4], + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "up": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "down": {"uv": [0, 0, 1, 1], "texture": "#26"} + } + }, + { + "from": [6, 13, 2], + "to": [7, 14, 3], + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "up": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "down": {"uv": [0, 0, 1, 1], "texture": "#26"} + } + }, + { + "from": [3, 15, 10], + "to": [6, 16, 13], + "faces": { + "north": {"uv": [0, 0, 3, 1], "texture": "#1"}, + "east": {"uv": [0, 0, 3, 1], "texture": "#1"}, + "south": {"uv": [0, 0, 3, 1], "texture": "#1"}, + "west": {"uv": [0, 0, 3, 1], "texture": "#1"}, + "up": {"uv": [0, 0, 3, 3], "rotation": 270, "texture": "#1"}, + "down": {"uv": [0, 0, 3, 3], "rotation": 90, "texture": "#19"} + } + }, + { + "from": [1, 10, 9], + "to": [2, 12, 15], + "faces": { + "north": {"uv": [0, 0, 1, 2], "texture": "#1"}, + "east": {"uv": [0, 0, 6, 2], "texture": "#19"}, + "south": {"uv": [0, 0, 1, 2], "texture": "#1"}, + "west": {"uv": [0, 0, 6, 2], "texture": "#1"}, + "up": {"uv": [0, 0, 6, 1], "rotation": 270, "texture": "#1"}, + "down": {"uv": [0, 0, 6, 1], "rotation": 90, "texture": "#19"} + } + }, + { + "from": [2, 12, 10], + "to": [3, 15, 14], + "faces": { + "north": {"uv": [0, 0, 1, 3], "texture": "#19"}, + "east": {"uv": [0, 0, 4, 3], "texture": "#19"}, + "south": {"uv": [0, 0, 1, 3], "texture": "#1"}, + "west": {"uv": [0, 0, 4, 3], "texture": "#1"}, + "up": {"uv": [0, 0, 4, 1], "rotation": 270, "texture": "#1"}, + "down": {"uv": [0, 0, 4, 1], "rotation": 90, "texture": "#19"} + } + }, + { + "from": [3, 12, 13], + "to": [6, 15, 14], + "faces": { + "north": {"uv": [0, 0, 3, 3], "texture": "#19"}, + "east": {"uv": [0, 0, 1, 3], "texture": "#1"}, + "south": {"uv": [0, 0, 3, 3], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 3], "texture": "#1"}, + "up": {"uv": [0, 0, 1, 3], "rotation": 270, "texture": "#1"}, + "down": {"uv": [0, 0, 1, 3], "rotation": 90, "texture": "#19"} + } + }, + { + "from": [2, 10, 14], + "to": [7, 12, 15], + "faces": { + "north": {"uv": [0, 0, 5, 2], "texture": "#19"}, + "east": {"uv": [0, 0, 1, 2], "texture": "#1"}, + "south": {"uv": [0, 0, 5, 2], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 2], "texture": "#1"}, + "up": {"uv": [0, 0, 1, 5], "rotation": 270, "texture": "#1"}, + "down": {"uv": [0, 0, 1, 5], "rotation": 90, "texture": "#19"} + } + }, + { + "from": [6, 15, 12], + "to": [7, 16, 13], + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "up": {"uv": [0, 0, 1, 1], "rotation": 270, "texture": "#26"}, + "down": {"uv": [0, 0, 1, 1], "rotation": 90, "texture": "#26"} + } + }, + { + "from": [6, 13, 13], + "to": [7, 14, 14], + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "up": {"uv": [0, 0, 1, 1], "rotation": 270, "texture": "#26"}, + "down": {"uv": [0, 0, 1, 1], "rotation": 90, "texture": "#26"} + } + }, + { + "from": [6, 15, 10], + "to": [7, 16, 11], + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "up": {"uv": [0, 0, 1, 1], "rotation": 270, "texture": "#26"}, + "down": {"uv": [0, 0, 1, 1], "rotation": 90, "texture": "#26"} + } + }, + { + "from": [5, 15, 9], + "to": [6, 16, 10], + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "up": {"uv": [0, 0, 1, 1], "rotation": 270, "texture": "#26"}, + "down": {"uv": [0, 0, 1, 1], "rotation": 90, "texture": "#26"} + } + }, + { + "from": [3, 15, 9], + "to": [4, 16, 10], + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "up": {"uv": [0, 0, 1, 1], "rotation": 270, "texture": "#26"}, + "down": {"uv": [0, 0, 1, 1], "rotation": 90, "texture": "#26"} + } + }, + { + "from": [2, 13, 9], + "to": [3, 14, 10], + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "up": {"uv": [0, 0, 1, 1], "rotation": 270, "texture": "#26"}, + "down": {"uv": [0, 0, 1, 1], "rotation": 90, "texture": "#26"} + } + }, + { + "from": [10, 15, 10], + "to": [13, 16, 13], + "faces": { + "north": {"uv": [0, 0, 3, 1], "texture": "#1"}, + "east": {"uv": [0, 0, 3, 1], "texture": "#1"}, + "south": {"uv": [0, 0, 3, 1], "texture": "#1"}, + "west": {"uv": [0, 0, 3, 1], "texture": "#1"}, + "up": {"uv": [0, 0, 3, 3], "rotation": 180, "texture": "#1"}, + "down": {"uv": [0, 0, 3, 3], "rotation": 180, "texture": "#19"} + } + }, + { + "from": [9, 10, 14], + "to": [15, 12, 15], + "faces": { + "north": {"uv": [0, 0, 6, 2], "texture": "#19"}, + "east": {"uv": [0, 0, 1, 2], "texture": "#1"}, + "south": {"uv": [0, 0, 6, 2], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 2], "texture": "#1"}, + "up": {"uv": [0, 0, 6, 1], "rotation": 180, "texture": "#1"}, + "down": {"uv": [0, 0, 6, 1], "rotation": 180, "texture": "#19"} + } + }, + { + "from": [10, 12, 13], + "to": [14, 15, 14], + "faces": { + "north": {"uv": [0, 0, 4, 3], "texture": "#19"}, + "east": {"uv": [0, 0, 1, 3], "texture": "#1"}, + "south": {"uv": [0, 0, 4, 3], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 3], "texture": "#1"}, + "up": {"uv": [0, 0, 4, 1], "rotation": 180, "texture": "#1"}, + "down": {"uv": [0, 0, 4, 1], "rotation": 180, "texture": "#19"} + } + }, + { + "from": [13, 12, 10], + "to": [14, 15, 13], + "faces": { + "north": {"uv": [0, 0, 1, 3], "texture": "#1"}, + "east": {"uv": [0, 0, 3, 3], "texture": "#1"}, + "south": {"uv": [0, 0, 1, 3], "texture": "#1"}, + "west": {"uv": [0, 0, 3, 3], "texture": "#19"}, + "up": {"uv": [0, 0, 1, 3], "rotation": 180, "texture": "#1"}, + "down": {"uv": [0, 0, 1, 3], "rotation": 180, "texture": "#19"} + } + }, + { + "from": [14, 10, 9], + "to": [15, 12, 14], + "faces": { + "north": {"uv": [0, 0, 1, 2], "texture": "#1"}, + "east": {"uv": [0, 0, 5, 2], "texture": "#1"}, + "south": {"uv": [0, 0, 1, 2], "texture": "#1"}, + "west": {"uv": [0, 0, 5, 2], "texture": "#19"}, + "up": {"uv": [0, 0, 1, 5], "rotation": 180, "texture": "#1"}, + "down": {"uv": [0, 0, 1, 5], "rotation": 180, "texture": "#19"} + } + }, + { + "from": [12, 15, 9], + "to": [13, 16, 10], + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "up": {"uv": [0, 0, 1, 1], "rotation": 180, "texture": "#26"}, + "down": {"uv": [0, 0, 1, 1], "rotation": 180, "texture": "#26"} + } + }, + { + "from": [13, 13, 9], + "to": [14, 14, 10], + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "up": {"uv": [0, 0, 1, 1], "rotation": 180, "texture": "#26"}, + "down": {"uv": [0, 0, 1, 1], "rotation": 180, "texture": "#26"} + } + }, + { + "from": [10, 15, 9], + "to": [11, 16, 10], + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "up": {"uv": [0, 0, 1, 1], "rotation": 180, "texture": "#26"}, + "down": {"uv": [0, 0, 1, 1], "rotation": 180, "texture": "#26"} + } + }, + { + "from": [9, 15, 10], + "to": [10, 16, 11], + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "up": {"uv": [0, 0, 1, 1], "rotation": 180, "texture": "#26"}, + "down": {"uv": [0, 0, 1, 1], "rotation": 180, "texture": "#26"} + } + }, + { + "from": [9, 15, 12], + "to": [10, 16, 13], + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "up": {"uv": [0, 0, 1, 1], "rotation": 180, "texture": "#26"}, + "down": {"uv": [0, 0, 1, 1], "rotation": 180, "texture": "#26"} + } + }, + { + "from": [9, 13, 13], + "to": [10, 14, 14], + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "up": {"uv": [0, 0, 1, 1], "rotation": 180, "texture": "#26"}, + "down": {"uv": [0, 0, 1, 1], "rotation": 180, "texture": "#26"} + } + }, + { + "from": [10, 15, 3], + "to": [13, 16, 6], + "faces": { + "north": {"uv": [0, 0, 3, 1], "texture": "#1"}, + "east": {"uv": [0, 0, 3, 1], "texture": "#1"}, + "south": {"uv": [0, 0, 3, 1], "texture": "#1"}, + "west": {"uv": [0, 0, 3, 1], "texture": "#1"}, + "up": {"uv": [0, 0, 3, 3], "rotation": 90, "texture": "#1"}, + "down": {"uv": [0, 0, 3, 3], "rotation": 270, "texture": "#19"} + } + }, + { + "from": [14, 10, 1], + "to": [15, 12, 7], + "faces": { + "north": {"uv": [0, 0, 1, 2], "texture": "#1"}, + "east": {"uv": [0, 0, 6, 2], "texture": "#1"}, + "south": {"uv": [0, 0, 1, 2], "texture": "#1"}, + "west": {"uv": [0, 0, 6, 2], "texture": "#19"}, + "up": {"uv": [0, 0, 6, 1], "rotation": 90, "texture": "#1"}, + "down": {"uv": [0, 0, 6, 1], "rotation": 270, "texture": "#19"} + } + }, + { + "from": [13, 12, 2], + "to": [14, 15, 6], + "faces": { + "north": {"uv": [0, 0, 1, 3], "texture": "#1"}, + "east": {"uv": [0, 0, 4, 3], "texture": "#1"}, + "south": {"uv": [0, 0, 1, 3], "texture": "#1"}, + "west": {"uv": [0, 0, 4, 3], "texture": "#19"}, + "up": {"uv": [0, 0, 4, 1], "rotation": 90, "texture": "#1"}, + "down": {"uv": [0, 0, 4, 1], "rotation": 270, "texture": "#19"} + } + }, + { + "from": [10, 12, 2], + "to": [13, 15, 3], + "faces": { + "north": {"uv": [0, 0, 3, 3], "texture": "#1"}, + "east": {"uv": [0, 0, 1, 3], "texture": "#1"}, + "south": {"uv": [0, 0, 3, 3], "texture": "#19"}, + "west": {"uv": [0, 0, 1, 3], "texture": "#1"}, + "up": {"uv": [0, 0, 1, 3], "rotation": 90, "texture": "#1"}, + "down": {"uv": [0, 0, 1, 3], "rotation": 270, "texture": "#19"} + } + }, + { + "from": [9, 10, 1], + "to": [14, 12, 2], + "faces": { + "north": {"uv": [0, 0, 5, 2], "texture": "#1"}, + "east": {"uv": [0, 0, 1, 2], "texture": "#1"}, + "south": {"uv": [0, 0, 5, 2], "texture": "#19"}, + "west": {"uv": [0, 0, 1, 2], "texture": "#1"}, + "up": {"uv": [0, 0, 1, 5], "rotation": 90, "texture": "#1"}, + "down": {"uv": [0, 0, 1, 5], "rotation": 270, "texture": "#19"} + } + }, + { + "from": [9, 15, 3], + "to": [10, 16, 4], + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "up": {"uv": [0, 0, 1, 1], "rotation": 90, "texture": "#26"}, + "down": {"uv": [0, 0, 1, 1], "rotation": 270, "texture": "#26"} + } + }, + { + "from": [9, 13, 2], + "to": [10, 14, 3], + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "up": {"uv": [0, 0, 1, 1], "rotation": 90, "texture": "#26"}, + "down": {"uv": [0, 0, 1, 1], "rotation": 270, "texture": "#26"} + } + }, + { + "from": [9, 15, 5], + "to": [10, 16, 6], + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "up": {"uv": [0, 0, 1, 1], "rotation": 90, "texture": "#26"}, + "down": {"uv": [0, 0, 1, 1], "rotation": 270, "texture": "#26"} + } + }, + { + "from": [10, 15, 6], + "to": [11, 16, 7], + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "up": {"uv": [0, 0, 1, 1], "rotation": 90, "texture": "#26"}, + "down": {"uv": [0, 0, 1, 1], "rotation": 270, "texture": "#26"} + } + }, + { + "from": [12, 15, 6], + "to": [13, 16, 7], + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "up": {"uv": [0, 0, 1, 1], "rotation": 90, "texture": "#26"}, + "down": {"uv": [0, 0, 1, 1], "rotation": 270, "texture": "#26"} + } + }, + { + "from": [13, 13, 6], + "to": [14, 14, 7], + "faces": { + "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, + "up": {"uv": [0, 0, 1, 1], "rotation": 90, "texture": "#26"}, + "down": {"uv": [0, 0, 1, 1], "rotation": 270, "texture": "#26"} + } + }, + { + "from": [5, 6, 7], + "to": [6, 9, 8], + "faces": { + "north": {"uv": [0, 0, 1, 3], "texture": "#19"}, + "east": {"uv": [0, 0, 1, 3], "texture": "#19"}, + "south": {"uv": [0, 0, 1, 3], "texture": "#19"}, + "west": {"uv": [0, 0, 1, 3], "texture": "#19"}, + "up": {"uv": [0, 0, 1, 1], "texture": "#19"}, + "down": {"uv": [0, 0, 1, 1], "texture": "#19"} + } + }, + { + "from": [3, 6, 10], + "to": [4, 10, 11], + "faces": { + "north": {"uv": [0, 0, 1, 4], "texture": "#19"}, + "east": {"uv": [0, 0, 1, 4], "texture": "#19"}, + "south": {"uv": [0, 0, 1, 4], "texture": "#19"}, + "west": {"uv": [0, 0, 1, 4], "texture": "#19"}, + "up": {"uv": [0, 0, 1, 1], "texture": "#19"}, + "down": {"uv": [0, 0, 1, 1], "texture": "#19"} + } + }, + { + "from": [9, 6, 7], + "to": [10, 11, 8], + "faces": { + "north": {"uv": [0, 0, 1, 5], "texture": "#19"}, + "east": {"uv": [0, 0, 1, 5], "texture": "#19"}, + "south": {"uv": [0, 0, 1, 5], "texture": "#19"}, + "west": {"uv": [0, 0, 1, 5], "texture": "#19"}, + "up": {"uv": [0, 0, 1, 1], "texture": "#19"}, + "down": {"uv": [0, 0, 1, 1], "texture": "#19"} + } + }, + { + "from": [11, 5, 10], + "to": [12, 9, 11], + "faces": { + "north": {"uv": [0, 0, 1, 4], "texture": "#19"}, + "east": {"uv": [0, 0, 1, 4], "texture": "#19"}, + "south": {"uv": [0, 0, 1, 4], "texture": "#19"}, + "west": {"uv": [0, 0, 1, 4], "texture": "#19"}, + "up": {"uv": [0, 0, 1, 1], "texture": "#19"}, + "down": {"uv": [0, 0, 1, 1], "texture": "#19"} + } + } + ], + "groups": [ + { + "name": "base", + "origin": [8, 8, 8], + "children": [0, 1, 2, 3, 4, 5, 6, + { + "name": "jaw1", + "origin": [0, 0, 0], + "children": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17] + }, + { + "name": "jaw2", + "origin": [0, 0, 0], + "children": [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28] + }, + { + "name": "jaw3", + "origin": [0, 0, 0], + "children": [29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39] + }, + { + "name": "jaw4", + "origin": [0, 0, 0], + "children": [40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50] + } + ] + }, + { + "name": "tentacles", + "origin": [0, 0, 0], + "children": [51, 52, 53, 54] + } + ] +} diff --git a/src/main/resources/assets/biomancy/models/block/digester.json b/src/main/resources/assets/biomancy/models/block/digester.json index ba2a84102..048c6fb2f 100644 --- a/src/main/resources/assets/biomancy/models/block/digester.json +++ b/src/main/resources/assets/biomancy/models/block/digester.json @@ -1,2111 +1,135 @@ { - "credit": "Made by Elenterius", - "parent": "block/block", - "textures": { - "particle": "biomancy:block/flesh_bland", - "flesh": "biomancy:block/flesh_bland", - "neck": "biomancy:block/neck_hole", - "tooths": "biomancy:block/tooths", - "front": "biomancy:block/decomposer_front" - }, - "elements": [ - { - "name": "container", - "from": [ - 0, - 0, - 3 - ], - "to": [ - 16, - 14, - 16 - ], - "rotation": { - "angle": 0, - "axis": "y", - "origin": [ - 7, - 6, - 7 - ] - }, - "faces": { - "north": { - "uv": [ - 0, - 2, - 16, - 16 - ], - "texture": "#front" - }, - "east": { - "uv": [ - 0, - 2, - 13, - 16 - ], - "texture": "#flesh", - "cullface": "east" - }, - "south": { - "uv": [ - 0, - 2, - 16, - 16 - ], - "texture": "#flesh", - "cullface": "south" - }, - "west": { - "uv": [ - 3, - 2, - 16, - 16 - ], - "texture": "#flesh", - "cullface": "west" - }, - "up": { - "uv": [ - 16, - 16, - 0, - 3 - ], - "texture": "#flesh" - }, - "down": { - "uv": [ - 16, - 0, - 0, - 13 - ], - "texture": "#flesh", - "cullface": "down" - } - } - }, - { - "name": "neck", - "from": [ - 4, - 14, - 4 - ], - "to": [ - 12, - 16, - 12 - ], - "rotation": { - "angle": 0, - "axis": "y", - "origin": [ - 8, - 15, - 8 - ] - }, - "faces": { - "north": { - "uv": [ - 8, - 8, - 16, - 10 - ], - "texture": "#neck" - }, - "east": { - "uv": [ - 8, - 0, - 16, - 2 - ], - "texture": "#neck" - }, - "south": { - "uv": [ - 8, - 2, - 16, - 4 - ], - "texture": "#neck" - }, - "west": { - "uv": [ - 8, - 4, - 16, - 6 - ], - "texture": "#neck" - }, - "up": { - "uv": [ - 8, - 8, - 0, - 0 - ], - "texture": "#neck", - "cullface": "up" - } - } - }, - { - "from": [ - 7, - 7.425, - 2.125 - ], - "to": [ - 9, - 9.425, - 4.125 - ], - "rotation": { - "angle": 0, - "axis": "y", - "origin": [ - 8, - 7.82145, - 1.625 - ] - }, - "faces": { - "north": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 0, - 1, - 1, - 2 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 1, - 1, - 2, - 2 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 1, - 0, - 2, - 1 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 1, - 3, - 0, - 2 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 2, - 2, - 1, - 3 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 7.5, - 6.925, - 0.125 - ], - "to": [ - 8.5, - 7.925, - 2.125 - ], - "rotation": { - "angle": 0, - "axis": "y", - "origin": [ - 8, - 7.82145, - 1.625 - ] - }, - "faces": { - "north": { - "uv": [ - 6.5, - 0.5, - 7, - 1 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 0, - 6, - 1, - 6.5 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 6.5, - 1, - 7, - 1.5 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 1, - 6, - 2, - 6.5 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 2.5, - 7, - 2, - 6 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 3, - 6, - 2.5, - 7 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 7.5, - 5.925, - 0.125 - ], - "to": [ - 8.5, - 6.925, - 1.125 - ], - "rotation": { - "angle": 0, - "axis": "y", - "origin": [ - 8, - 7.82145, - 1.625 - ] - }, - "faces": { - "north": { - "uv": [ - 6.5, - 1.5, - 7, - 2 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 6.5, - 2, - 7, - 2.5 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 6.5, - 3.5, - 7, - 4 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 6.5, - 4, - 7, - 4.5 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 7, - 5, - 6.5, - 4.5 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 7, - 5, - 6.5, - 5.5 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 7.5, - 7.925, - 1.125 - ], - "to": [ - 8.5, - 8.925, - 2.125 - ], - "rotation": { - "angle": 0, - "axis": "y", - "origin": [ - 8, - 7.82145, - 1.625 - ] - }, - "faces": { - "north": { - "uv": [ - 0, - 7, - 0.5, - 7.5 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 0.5, - 7, - 1, - 7.5 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 2, - 7, - 2.5, - 7.5 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 2.5, - 7, - 3, - 7.5 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 3.5, - 7.5, - 3, - 7 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 4, - 7, - 3.5, - 7.5 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 3, - 6.425, - 2.125 - ], - "to": [ - 5, - 8.425, - 4.125 - ], - "rotation": { - "angle": 0, - "axis": "y", - "origin": [ - 8, - 6.82145, - 1.625 - ] - }, - "faces": { - "north": { - "uv": [ - 2, - 2, - 3, - 3 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 2, - 0, - 3, - 1 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 2, - 1, - 3, - 2 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 0, - 3, - 1, - 4 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 2, - 4, - 1, - 3 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 3, - 3, - 2, - 4 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 5.09835, - 8.57665, - 0.125 - ], - "to": [ - 6.09835, - 9.57665, - 2.125 - ], - "rotation": { - "angle": 45, - "axis": "z", - "origin": [ - 8, - 6.82145, - 1.625 - ] - }, - "faces": { - "north": { - "uv": [ - 4, - 7, - 4.5, - 7.5 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 3, - 6, - 4, - 6.5 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 4.5, - 7, - 5, - 7.5 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 4, - 6, - 5, - 6.5 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 5.5, - 7, - 5, - 6 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 6, - 6, - 5.5, - 7 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 5.09835, - 9.57665, - 1.125 - ], - "to": [ - 6.09835, - 10.57665, - 2.125 - ], - "rotation": { - "angle": 45, - "axis": "z", - "origin": [ - 8, - 6.82145, - 1.625 - ] - }, - "faces": { - "north": { - "uv": [ - 5, - 7, - 5.5, - 7.5 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 5.5, - 7, - 6, - 7.5 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 7, - 7, - 7.5, - 7.5 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 7, - 0, - 7.5, - 0.5 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 7.5, - 1, - 7, - 0.5 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 7.5, - 1, - 7, - 1.5 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 5.09835, - 7.57665, - 0.125 - ], - "to": [ - 6.09835, - 8.57665, - 1.125 - ], - "rotation": { - "angle": 45, - "axis": "z", - "origin": [ - 8, - 6.82145, - 1.625 - ] - }, - "faces": { - "north": { - "uv": [ - 7, - 1.5, - 7.5, - 2 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 7, - 2, - 7.5, - 2.5 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 7, - 2.5, - 7.5, - 3 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 7, - 3, - 7.5, - 3.5 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 7.5, - 4, - 7, - 3.5 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 7.5, - 4, - 7, - 4.5 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 11, - 6.425, - 2.125 - ], - "to": [ - 13, - 8.425, - 4.125 - ], - "rotation": { - "angle": 0, - "axis": "y", - "origin": [ - 8, - 6.82145, - 1.625 - ] - }, - "faces": { - "north": { - "uv": [ - 3, - 3, - 4, - 4 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 3, - 0, - 4, - 1 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 3, - 1, - 4, - 2 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 3, - 2, - 4, - 3 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 1, - 5, - 0, - 4 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 2, - 4, - 1, - 5 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 9.90165, - 8.57665, - 0.125 - ], - "to": [ - 10.90165, - 9.57665, - 2.125 - ], - "rotation": { - "angle": -45, - "axis": "z", - "origin": [ - 8, - 6.82145, - 1.625 - ] - }, - "faces": { - "north": { - "uv": [ - 7, - 4.5, - 7.5, - 5 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 6, - 6, - 7, - 6.5 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 7, - 5, - 7.5, - 5.5 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 6, - 0, - 7, - 0.5 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 6.5, - 1.5, - 6, - 0.5 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 6.5, - 1.5, - 6, - 2.5 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 9.90165, - 7.57665, - 0.125 - ], - "to": [ - 10.90165, - 8.57665, - 1.125 - ], - "rotation": { - "angle": -45, - "axis": "z", - "origin": [ - 8, - 6.82145, - 1.625 - ] - }, - "faces": { - "north": { - "uv": [ - 7, - 5.5, - 7.5, - 6 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 7, - 6, - 7.5, - 6.5 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 7, - 6.5, - 7.5, - 7 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 0, - 7.5, - 0.5, - 8 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 1, - 8, - 0.5, - 7.5 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 1.5, - 7.5, - 1, - 8 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 9.90165, - 9.57665, - 1.125 - ], - "to": [ - 10.90165, - 10.57665, - 2.125 - ], - "rotation": { - "angle": -45, - "axis": "z", - "origin": [ - 8, - 6.82145, - 1.625 - ] - }, - "faces": { - "north": { - "uv": [ - 1.5, - 7.5, - 2, - 8 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 2, - 7.5, - 2.5, - 8 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 2.5, - 7.5, - 3, - 8 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 3, - 7.5, - 3.5, - 8 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 4, - 8, - 3.5, - 7.5 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 4.5, - 7.5, - 4, - 8 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 7, - 1.125, - 2.125 - ], - "to": [ - 9, - 3.125, - 4.125 - ], - "rotation": { - "angle": 0, - "axis": "y", - "origin": [ - 8.125, - 2.25, - 1.875 - ] - }, - "faces": { - "north": { - "uv": [ - 2, - 4, - 3, - 5 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 3, - 4, - 4, - 5 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 4, - 4, - 5, - 5 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 4, - 0, - 5, - 1 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 5, - 2, - 4, - 1 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 5, - 2, - 4, - 3 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 7.5, - 2.625, - 0.125 - ], - "to": [ - 8.5, - 3.625, - 2.125 - ], - "rotation": { - "angle": 0, - "axis": "y", - "origin": [ - 7.625, - 2.75, - 1.875 - ] - }, - "faces": { - "north": { - "uv": [ - 4.5, - 7.5, - 5, - 8 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 6, - 2.5, - 7, - 3 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 5, - 7.5, - 5.5, - 8 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 6, - 3, - 7, - 3.5 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 6.5, - 4.5, - 6, - 3.5 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 6.5, - 4.5, - 6, - 5.5 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 7.5, - 3.625, - 0.125 - ], - "to": [ - 8.5, - 4.625, - 1.125 - ], - "rotation": { - "angle": 0, - "axis": "y", - "origin": [ - 8.625, - 3.75, - 0.875 - ] - }, - "faces": { - "north": { - "uv": [ - 5.5, - 7.5, - 6, - 8 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 6, - 7.5, - 6.5, - 8 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 6.5, - 7.5, - 7, - 8 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 7, - 7.5, - 7.5, - 8 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 8, - 8, - 7.5, - 7.5 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 8, - 0, - 7.5, - 0.5 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 7.5, - 1.625, - 1.125 - ], - "to": [ - 8.5, - 2.625, - 2.125 - ], - "rotation": { - "angle": 0, - "axis": "y", - "origin": [ - 7.625, - 2.75, - 1.875 - ] - }, - "faces": { - "north": { - "uv": [ - 7.5, - 0.5, - 8, - 1 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 7.5, - 1, - 8, - 1.5 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 7.5, - 1.5, - 8, - 2 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 7.5, - 2, - 8, - 2.5 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 8, - 3, - 7.5, - 2.5 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 8, - 3, - 7.5, - 3.5 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 3, - 2.125, - 2.125 - ], - "to": [ - 5, - 4.125, - 4.125 - ], - "rotation": { - "angle": 0, - "axis": "y", - "origin": [ - 4.125, - 3.25, - 1.875 - ] - }, - "faces": { - "north": { - "uv": [ - 4, - 3, - 5, - 4 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 0, - 5, - 1, - 6 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 1, - 5, - 2, - 6 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 2, - 5, - 3, - 6 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 4, - 6, - 3, - 5 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 5, - 5, - 4, - 6 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 3.5, - 3.625, - 0.125 - ], - "to": [ - 4.5, - 4.625, - 2.125 - ], - "rotation": { - "angle": -45, - "axis": "z", - "origin": [ - 4, - 3.125, - 2.125 - ] - }, - "faces": { - "north": { - "uv": [ - 7.5, - 3.5, - 8, - 4 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 6, - 5.5, - 7, - 6 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 7.5, - 4, - 8, - 4.5 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 0, - 6.5, - 1, - 7 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 1.5, - 7.5, - 1, - 6.5 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 2, - 6.5, - 1.5, - 7.5 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 3.5, - 2.625, - 1.125 - ], - "to": [ - 4.5, - 3.625, - 2.125 - ], - "rotation": { - "angle": -45, - "axis": "z", - "origin": [ - 4, - 3.125, - 2.125 - ] - }, - "faces": { - "north": { - "uv": [ - 7.5, - 4.5, - 8, - 5 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 7.5, - 5, - 8, - 5.5 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 7.5, - 5.5, - 8, - 6 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 7.5, - 6, - 8, - 6.5 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 8, - 7, - 7.5, - 6.5 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 8, - 7, - 7.5, - 7.5 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 3.5, - 4.625, - 0.125 - ], - "to": [ - 4.5, - 5.625, - 1.125 - ], - "rotation": { - "angle": -45, - "axis": "z", - "origin": [ - 4, - 3.125, - 2.125 - ] - }, - "faces": { - "north": { - "uv": [ - 0, - 8, - 0.5, - 8.5 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 0.5, - 8, - 1, - 8.5 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 1, - 8, - 1.5, - 8.5 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 1.5, - 8, - 2, - 8.5 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 2.5, - 8.5, - 2, - 8 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 3, - 8, - 2.5, - 8.5 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 11, - 2.125, - 2.125 - ], - "to": [ - 13, - 4.125, - 4.125 - ], - "rotation": { - "angle": 0, - "axis": "y", - "origin": [ - 12, - 3.125, - 2.125 - ] - }, - "faces": { - "north": { - "uv": [ - 5, - 5, - 6, - 6 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 5, - 0, - 6, - 1 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 5, - 1, - 6, - 2 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 5, - 2, - 6, - 3 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 6, - 4, - 5, - 3 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 6, - 4, - 5, - 5 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 11.5, - 3.625, - 0.125 - ], - "to": [ - 12.5, - 4.625, - 2.125 - ], - "rotation": { - "angle": 45, - "axis": "z", - "origin": [ - 12, - 3.125, - 2.125 - ] - }, - "faces": { - "north": { - "uv": [ - 3, - 8, - 3.5, - 8.5 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 3, - 6.5, - 4, - 7 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 3.5, - 8, - 4, - 8.5 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 4, - 6.5, - 5, - 7 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 6.5, - 7.5, - 6, - 6.5 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 7, - 6.5, - 6.5, - 7.5 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 11.5, - 4.625, - 0.125 - ], - "to": [ - 12.5, - 5.625, - 1.125 - ], - "rotation": { - "angle": 45, - "axis": "z", - "origin": [ - 12, - 3.125, - 2.125 - ] - }, - "faces": { - "north": { - "uv": [ - 4, - 8, - 4.5, - 8.5 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 4.5, - 8, - 5, - 8.5 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 5, - 8, - 5.5, - 8.5 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 5.5, - 8, - 6, - 8.5 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 6.5, - 8.5, - 6, - 8 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 7, - 8, - 6.5, - 8.5 - ], - "texture": "#tooths" - } - } - }, - { - "from": [ - 11.5, - 2.625, - 1.125 - ], - "to": [ - 12.5, - 3.625, - 2.125 - ], - "rotation": { - "angle": 45, - "axis": "z", - "origin": [ - 12, - 3.125, - 2.125 - ] - }, - "faces": { - "north": { - "uv": [ - 7, - 8, - 7.5, - 8.5 - ], - "texture": "#tooths" - }, - "east": { - "uv": [ - 7.5, - 8, - 8, - 8.5 - ], - "texture": "#tooths" - }, - "south": { - "uv": [ - 8, - 8, - 8.5, - 8.5 - ], - "texture": "#tooths" - }, - "west": { - "uv": [ - 8, - 0, - 8.5, - 0.5 - ], - "texture": "#tooths" - }, - "up": { - "uv": [ - 8.5, - 1, - 8, - 0.5 - ], - "texture": "#tooths" - }, - "down": { - "uv": [ - 8.5, - 1, - 8, - 1.5 - ], - "texture": "#tooths" - } - } - } - ], - "groups": [ - 0, - 1, - { - "name": "group", - "origin": [ - 8, - 12, - 8 - ], - "children": [ - { - "name": "tooth", - "origin": [ - 8, - 8, - 8 - ], - "children": [ - 2, - 3, - 4, - 5 - ] - }, - { - "name": "tooth", - "origin": [ - 8, - 8, - 8 - ], - "children": [ - 6, - 7, - 8, - 9 - ] - }, - { - "name": "tooth", - "origin": [ - 8, - 8, - 8 - ], - "children": [ - 10, - 11, - 12, - 13 - ] - }, - { - "name": "tooth", - "origin": [ - 8, - 8, - 8 - ], - "children": [ - 14, - 15, - 16, - 17 - ] - }, - { - "name": "tooth", - "origin": [ - 8, - 8, - 8 - ], - "children": [ - 18, - 19, - 20, - 21 - ] - }, - { - "name": "tooth", - "origin": [ - 8, - 8, - 8 - ], - "children": [ - 22, - 23, - 24, - 25 - ] - } - ] - } - ] -} \ No newline at end of file + "credit": "Made by Selea", + "parent": "block/block", + "textures": { + "12": "biomancy:block/flesh_mouth", + "14": "biomancy:block/flesh_rough_1", + "15": "biomancy:block/flesh_rough_2", + "19": "biomancy:block/muscle", + "particle": "biomancy:block/flesh_bland" + }, + "elements": [ + { + "from": [0, 0, 5], + "to": [16, 2, 11], + "faces": { + "north": {"uv": [0, 0, 16, 1], "texture": "#19"}, + "east": {"uv": [0, 0, 6, 1], "texture": "#19"}, + "south": {"uv": [0, 0, 16, 1], "texture": "#19"}, + "west": {"uv": [0, 0, 6, 1], "texture": "#19"}, + "up": {"uv": [0, 0, 16, 6], "texture": "#19"}, + "down": {"uv": [0, 0, 16, 6], "texture": "#19"} + } + }, + { + "from": [5, 0, 0], + "to": [11, 2, 16], + "faces": { + "north": {"uv": [0, 0, 6, 1], "texture": "#19"}, + "east": {"uv": [0, 0, 16, 1], "texture": "#19"}, + "south": {"uv": [0, 0, 6, 1], "texture": "#19"}, + "west": {"uv": [0, 0, 16, 1], "texture": "#19"}, + "up": {"uv": [0, 1, 4, 14], "texture": "#19"}, + "down": {"uv": [0, 0, 6, 16], "texture": "#19"} + } + }, + { + "from": [2, 0, 2], + "to": [14, 1, 14], + "faces": { + "north": {"uv": [0, 0, 12, 1], "texture": "#19"}, + "east": {"uv": [0, 0, 12, 1], "texture": "#19"}, + "south": {"uv": [0, 0, 12, 1], "texture": "#19"}, + "west": {"uv": [0, 0, 12, 1], "texture": "#19"}, + "up": {"uv": [0, 0, 16, 6], "texture": "#19"}, + "down": {"uv": [0, 0, 12, 12], "texture": "#19"} + } + }, + { + "from": [7, 1, 2], + "to": [9, 3, 14], + "faces": { + "north": {"uv": [0, 0, 2, 2], "texture": "#19"}, + "east": {"uv": [0, 0, 12, 2], "texture": "#19"}, + "south": {"uv": [0, 0, 2, 2], "texture": "#19"}, + "west": {"uv": [0, 0, 12, 2], "texture": "#19"}, + "up": {"uv": [0, 0, 2, 12], "texture": "#19"}, + "down": {"uv": [0, 0, 2, 12], "texture": "#19"} + } + }, + { + "from": [2, 1, 7], + "to": [14, 3, 9], + "faces": { + "north": {"uv": [0, 0, 12, 2], "texture": "#19"}, + "east": {"uv": [0, 0, 2, 2], "texture": "#19"}, + "south": {"uv": [0, 0, 12, 2], "texture": "#19"}, + "west": {"uv": [0, 0, 2, 2], "texture": "#19"}, + "up": {"uv": [0, 0, 12, 2], "texture": "#19"}, + "down": {"uv": [0, 0, 12, 2], "texture": "#19"} + } + }, + { + "from": [4, 1, 4], + "to": [12, 6, 12], + "faces": { + "north": {"uv": [0, 0, 8, 5], "texture": "#14"}, + "east": {"uv": [0, 0, 8, 5], "texture": "#14"}, + "south": {"uv": [0, 0, 8, 5], "texture": "#14"}, + "west": {"uv": [0, 0, 8, 5], "texture": "#14"}, + "up": {"uv": [0, 0, 8, 8], "texture": "#14"}, + "down": {"uv": [0, 0, 8, 8], "texture": "#14"} + } + }, + { + "from": [3, 5, 3], + "to": [13, 13, 13], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "north": {"uv": [3, 8, 13, 14], "texture": "#15"}, + "east": {"uv": [4, 8, 12, 13.5], "texture": "#15"}, + "south": {"uv": [3, 7, 13, 13], "texture": "#15"}, + "west": {"uv": [3, 8, 13, 14], "texture": "#15"}, + "up": {"uv": [3, 6, 13, 16], "texture": "#15"}, + "down": {"uv": [0, 0, 10, 10], "texture": "#15"} + } + }, + { + "from": [3, 4, 3], + "to": [13, 14, 13], + "faces": { + "north": {"uv": [0, 0, 10, 10], "texture": "#15"}, + "east": {"uv": [0, 0, 10, 10], "texture": "#15"}, + "south": {"uv": [0, 0, 10, 10], "texture": "#15"}, + "west": {"uv": [0, 0, 10, 10], "texture": "#15"}, + "up": {"uv": [0, 0, 10, 10], "texture": "#15"}, + "down": {"uv": [0, 0, 10, 10], "texture": "#15"} + } + }, + { + "from": [7, 14, 0], + "to": [13, 16, 6], + "rotation": {"angle": -45, "axis": "y", "origin": [3, 0, 3]}, + "faces": { + "north": {"uv": [5, 4, 11, 6], "texture": "#12"}, + "east": {"uv": [3, 6, 5, 12], "rotation": 270, "texture": "#12"}, + "south": {"uv": [5, 12, 11, 14], "texture": "#12"}, + "west": {"uv": [12, 5, 14, 11], "rotation": 90, "texture": "#12", "cullface": "west"}, + "up": {"uv": [5, 6, 11, 12], "texture": "#12"}, + "down": {"uv": [0, 0, 6, 6], "texture": "#12"} + } + } + ], + "groups": [ + { + "name": "support", + "origin": [0, 0, 0], + "children": [0, 1, 2, 3, 4] + }, + { + "name": "body", + "origin": [0, 0, 0], + "children": [5, 6, 7, 8] + } + ] +} diff --git a/src/main/resources/assets/biomancy/textures/block/decomposer_front.png b/src/main/resources/assets/biomancy/textures/block/chewer_front.png similarity index 100% rename from src/main/resources/assets/biomancy/textures/block/decomposer_front.png rename to src/main/resources/assets/biomancy/textures/block/chewer_front.png diff --git a/src/main/resources/assets/biomancy/textures/block/nutrients.png b/src/main/resources/assets/biomancy/textures/block/nutrients.png new file mode 100644 index 0000000000000000000000000000000000000000..62b673651a764190e0062d833007fffc5c8b1a96 GIT binary patch literal 71467 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 bbu%)=R{YW1*c*HYsDi=M)z4*}Q$iB}mj)DT literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/biomancy/textures/block/tooths.png b/src/main/resources/assets/biomancy/textures/block/teeth_0.png similarity index 100% rename from src/main/resources/assets/biomancy/textures/block/tooths.png rename to src/main/resources/assets/biomancy/textures/block/teeth_0.png From bff4637cb188e95fc5c5b8f191329bd171014cf5 Mon Sep 17 00:00:00 2001 From: Elenterius Date: Sat, 26 Jun 2021 16:42:29 +0200 Subject: [PATCH 15/24] only copy additional reagent data, if there is any --- .../elenterius/biomancy/item/InjectionDeviceItem.java | 6 +++--- .../com/github/elenterius/biomancy/reagent/Reagent.java | 5 ++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/github/elenterius/biomancy/item/InjectionDeviceItem.java b/src/main/java/com/github/elenterius/biomancy/item/InjectionDeviceItem.java index e1ecaadff..0c38f4751 100644 --- a/src/main/java/com/github/elenterius/biomancy/item/InjectionDeviceItem.java +++ b/src/main/java/com/github/elenterius/biomancy/item/InjectionDeviceItem.java @@ -136,9 +136,9 @@ private boolean addReagent(ItemStack ammoStack, ItemStack gunStack, PlayerEntity Reagent storedReagent = Reagent.deserialize(gunStack.getOrCreateTag()); if (reagentIn != null) { if (storedReagent == null) { - CompoundNBT nbt = gunStack.getOrCreateTag(); - Reagent.serialize(reagentIn, nbt); - Reagent.copyAdditionalData(ammoStack.getOrCreateTag(), nbt); + CompoundNBT gunNbt = gunStack.getOrCreateTag(); + Reagent.serialize(reagentIn, gunNbt); + Reagent.copyAdditionalData(ammoStack.getOrCreateTag(), gunNbt); setReagentAmount(gunStack, (byte) 1); ammoStack.grow(-1); diff --git a/src/main/java/com/github/elenterius/biomancy/reagent/Reagent.java b/src/main/java/com/github/elenterius/biomancy/reagent/Reagent.java index 49d703596..715cac9f9 100644 --- a/src/main/java/com/github/elenterius/biomancy/reagent/Reagent.java +++ b/src/main/java/com/github/elenterius/biomancy/reagent/Reagent.java @@ -47,7 +47,10 @@ public static void remove(CompoundNBT nbt) { } public static void copyAdditionalData(CompoundNBT fromNbt, CompoundNBT toNbt) { - toNbt.put(NBT_KEY_DATA, fromNbt.getCompound(NBT_KEY_DATA).copy()); + if (fromNbt.contains(NBT_KEY_DATA)) { + CompoundNBT data = fromNbt.getCompound(NBT_KEY_DATA); + if (!data.isEmpty()) toNbt.put(NBT_KEY_DATA, data.copy()); + } } public static void serialize(Reagent reagent, CompoundNBT nbt) { From 417e228e9a5596fba33ae9bb3c9df6d4932aaf53 Mon Sep 17 00:00:00 2001 From: Elenterius Date: Sat, 26 Jun 2021 23:37:20 +0200 Subject: [PATCH 16/24] added hud for injection device --- .../client/renderer/ClientRenderHandler.java | 30 +++++++++++++++++++ .../biomancy/item/InjectionDeviceItem.java | 24 ++++++++------- 2 files changed, 44 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/github/elenterius/biomancy/client/renderer/ClientRenderHandler.java b/src/main/java/com/github/elenterius/biomancy/client/renderer/ClientRenderHandler.java index 634248679..7258739a6 100644 --- a/src/main/java/com/github/elenterius/biomancy/client/renderer/ClientRenderHandler.java +++ b/src/main/java/com/github/elenterius/biomancy/client/renderer/ClientRenderHandler.java @@ -3,11 +3,14 @@ import com.github.elenterius.biomancy.BiomancyMod; import com.github.elenterius.biomancy.enchantment.AttunedDamageEnchantment; import com.github.elenterius.biomancy.init.ModEnchantments; +import com.github.elenterius.biomancy.init.ModItems; import com.github.elenterius.biomancy.item.IAreaHarvestingItem; import com.github.elenterius.biomancy.item.IHighlightRayTraceResultItem; +import com.github.elenterius.biomancy.item.InjectionDeviceItem; import com.github.elenterius.biomancy.item.ItemStorageBagItem; import com.github.elenterius.biomancy.item.weapon.shootable.ProjectileWeaponItem; import com.github.elenterius.biomancy.item.weapon.shootable.SinewBowItem; +import com.github.elenterius.biomancy.reagent.Reagent; import com.github.elenterius.biomancy.util.PlayerInteractionUtil; import com.github.elenterius.biomancy.util.RayTraceUtil; import com.mojang.blaze3d.matrix.MatrixStack; @@ -142,6 +145,9 @@ else if (item instanceof ProjectileWeaponItem) { else if (item instanceof ItemStorageBagItem) { renderItemStorageBagOverlay(matrix, scaledWidth, scaledHeight, mc, player, heldStack, (ItemStorageBagItem) item); } + else if (item instanceof InjectionDeviceItem) { + renderInjectionDeviceOverlay(matrix, scaledWidth, scaledHeight, mc, player, heldStack, (InjectionDeviceItem) item); + } } } @@ -187,6 +193,30 @@ private static void renderBowOverlay(MatrixStack matrixStack, int scaledWidth, i drawRectangularProgressIndicator(matrixStack, x, y, 25f, pullProgress, 0xFFFEFEFE); } + private static void renderInjectionDeviceOverlay(MatrixStack matrix, int scaledWidth, int scaledHeight, Minecraft mc, ClientPlayerEntity player, ItemStack stack, InjectionDeviceItem item) { + byte amount = item.getReagentAmount(stack); + if (amount < 1) return; + + Reagent reagent = item.getReagent(stack); + if (reagent != null) { + FontRenderer fontRenderer = mc.fontRenderer; + String text = amount + "x"; + + int x = scaledWidth - 16 - 4; + int y = scaledHeight - 16 - 4; + matrix.push(); + float scale = 1.5f; //make font bigger + matrix.translate(x - fontRenderer.getStringWidth(text) * scale, y + 16 - fontRenderer.FONT_HEIGHT * scale, 0); + matrix.scale(scale, scale, 0); + AbstractGui.drawString(matrix, fontRenderer, text, 0, 0, 0xFFFEFEFE); + matrix.pop(); + + ItemStack reagentStack = new ItemStack(ModItems.REAGENT.get()); + Reagent.serialize(reagent, reagentStack.getOrCreateTag()); + mc.getItemRenderer().renderItemIntoGUI(reagentStack, x, y); + } + } + private static void renderGunOverlay(MatrixStack matrix, int scaledWidth, int scaledHeight, Minecraft mc, ClientPlayerEntity player, ItemStack stack, ProjectileWeaponItem item) { FontRenderer fontRenderer = mc.fontRenderer; diff --git a/src/main/java/com/github/elenterius/biomancy/item/InjectionDeviceItem.java b/src/main/java/com/github/elenterius/biomancy/item/InjectionDeviceItem.java index 0c38f4751..22ec700bf 100644 --- a/src/main/java/com/github/elenterius/biomancy/item/InjectionDeviceItem.java +++ b/src/main/java/com/github/elenterius/biomancy/item/InjectionDeviceItem.java @@ -40,10 +40,9 @@ public InjectionDeviceItem(Properties properties) { @Override public void addInformation(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag flagIn) { tooltip.add(ClientTextUtil.getItemInfoTooltip(this).setStyle(ClientTextUtil.LORE_STYLE)); - CompoundNBT nbt = stack.getOrCreateTag(); - Reagent reagent = Reagent.deserialize(nbt); + Reagent reagent = getReagent(stack); if (reagent != null) { - byte amount = nbt.getByte(NBT_KEY_REAGENT_AMOUNT); + byte amount = getReagentAmount(stack); tooltip.add(new StringTextComponent(String.format("Amount: %d/4", amount)).mergeStyle(TextFormatting.GRAY)); reagent.addInfoToTooltip(stack, worldIn, tooltip, flagIn); } @@ -54,7 +53,7 @@ public void addInformation(ItemStack stack, @Nullable World worldIn, List= getMaxReagentAmount()) return false; - Reagent reagentIn = Reagent.deserialize(ammoStack.getOrCreateTag()); - Reagent storedReagent = Reagent.deserialize(gunStack.getOrCreateTag()); + Reagent reagentIn = getReagent(ammoStack); + Reagent storedReagent = getReagent(gunStack); if (reagentIn != null) { if (storedReagent == null) { CompoundNBT gunNbt = gunStack.getOrCreateTag(); @@ -177,7 +181,7 @@ public ActionResultType onItemUse(ItemUseContext context) { if (context.getPlayer() != null && !context.getPlayer().canPlayerEdit(context.getPos().offset(context.getFace()), context.getFace(), stack)) return ActionResultType.FAIL; - Reagent reagent = Reagent.deserialize(stack.getOrCreateTag()); + Reagent reagent = getReagent(stack); if (reagent != null) { World world = context.getWorld(); boolean success = reagent.affectBlock(stack.getOrCreateTag().getCompound(Reagent.NBT_KEY_DATA), context.getPlayer(), world, context.getPos(), context.getFace()); @@ -199,7 +203,7 @@ public ActionResultType onItemUse(ItemUseContext context) { @Override public ActionResultType itemInteractionForEntity(ItemStack stack, PlayerEntity player, LivingEntity target, Hand hand) { - Reagent reagent = Reagent.deserialize(stack.getOrCreateTag()); + Reagent reagent = getReagent(stack); if (reagent != null) { if (reagent.affectEntity(stack.getOrCreateTag().getCompound(Reagent.NBT_KEY_DATA), player, target)) { if (!target.world.isRemote) { @@ -239,7 +243,7 @@ public ActionResultType itemInteractionForEntity(ItemStack stack, PlayerEntity p } public boolean interactWithPlayerSelf(ItemStack stack, PlayerEntity player) { - Reagent reagent = Reagent.deserialize(stack.getOrCreateTag()); + Reagent reagent = getReagent(stack); if (reagent != null) { boolean success = reagent.affectPlayerSelf(stack.getOrCreateTag().getCompound(Reagent.NBT_KEY_DATA), player); if (success && !player.world.isRemote) { From 3cbcf7794735944e8fbf4010620c330e791de7f7 Mon Sep 17 00:00:00 2001 From: Elenterius Date: Sun, 27 Jun 2021 00:38:35 +0200 Subject: [PATCH 17/24] made Cleansing Serum able to insta-cure villager zombies --- .../ZombieVillagerEntityMixinAccessor.java | 14 ++++ .../biomancy/reagent/CleansingReagent.java | 10 +++ .../biomancy/reagent/MutagenReagent.java | 84 ++++--------------- .../elenterius/biomancy/util/MobUtil.java | 61 ++++++++++++++ src/main/resources/biomancy.mixins.json | 3 +- 5 files changed, 105 insertions(+), 67 deletions(-) create mode 100644 src/main/java/com/github/elenterius/biomancy/mixin/ZombieVillagerEntityMixinAccessor.java create mode 100644 src/main/java/com/github/elenterius/biomancy/util/MobUtil.java diff --git a/src/main/java/com/github/elenterius/biomancy/mixin/ZombieVillagerEntityMixinAccessor.java b/src/main/java/com/github/elenterius/biomancy/mixin/ZombieVillagerEntityMixinAccessor.java new file mode 100644 index 000000000..11ade2dd2 --- /dev/null +++ b/src/main/java/com/github/elenterius/biomancy/mixin/ZombieVillagerEntityMixinAccessor.java @@ -0,0 +1,14 @@ +package com.github.elenterius.biomancy.mixin; + +import net.minecraft.entity.monster.ZombieVillagerEntity; +import net.minecraft.world.server.ServerWorld; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Invoker; + +@Mixin(ZombieVillagerEntity.class) +public interface ZombieVillagerEntityMixinAccessor { + + @Invoker("cureZombie") + void biomancy_cureZombie(ServerWorld world); + +} diff --git a/src/main/java/com/github/elenterius/biomancy/reagent/CleansingReagent.java b/src/main/java/com/github/elenterius/biomancy/reagent/CleansingReagent.java index ae6bc6869..61dc38097 100644 --- a/src/main/java/com/github/elenterius/biomancy/reagent/CleansingReagent.java +++ b/src/main/java/com/github/elenterius/biomancy/reagent/CleansingReagent.java @@ -1,12 +1,17 @@ package com.github.elenterius.biomancy.reagent; import com.github.elenterius.biomancy.entity.aberration.FleshBlobEntity; +import com.github.elenterius.biomancy.mixin.ZombieVillagerEntityMixinAccessor; +import net.minecraft.entity.EntityType; import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.monster.ZombieVillagerEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.nbt.CompoundNBT; import net.minecraft.util.Direction; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; +import net.minecraft.world.server.ServerWorld; +import net.minecraftforge.event.ForgeEventFactory; import javax.annotation.Nullable; @@ -27,6 +32,11 @@ public boolean affectEntity(CompoundNBT nbt, @Nullable LivingEntity source, Livi if (target instanceof FleshBlobEntity) { ((FleshBlobEntity) target).clearForeignEntityDNA(); } + else if (target instanceof ZombieVillagerEntity) { + if (!target.world.isRemote && ForgeEventFactory.canLivingConvert(target, EntityType.VILLAGER, (timer) -> {})) { + ((ZombieVillagerEntityMixinAccessor) target).biomancy_cureZombie((ServerWorld) target.world); + } + } return true; } diff --git a/src/main/java/com/github/elenterius/biomancy/reagent/MutagenReagent.java b/src/main/java/com/github/elenterius/biomancy/reagent/MutagenReagent.java index 7f9984330..1d4ae512a 100644 --- a/src/main/java/com/github/elenterius/biomancy/reagent/MutagenReagent.java +++ b/src/main/java/com/github/elenterius/biomancy/reagent/MutagenReagent.java @@ -5,7 +5,10 @@ import com.github.elenterius.biomancy.entity.golem.IOwnableCreature; import com.github.elenterius.biomancy.init.ModEffects; import com.github.elenterius.biomancy.init.ModEntityTypes; -import net.minecraft.entity.*; +import com.github.elenterius.biomancy.util.MobUtil; +import net.minecraft.entity.EntityType; +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.Pose; import net.minecraft.entity.merchant.villager.VillagerEntity; import net.minecraft.entity.monster.GuardianEntity; import net.minecraft.entity.passive.AnimalEntity; @@ -26,7 +29,6 @@ import javax.annotation.Nullable; import java.util.Collection; import java.util.List; -import java.util.function.BiConsumer; public class MutagenReagent extends Reagent { @@ -55,7 +57,10 @@ public boolean affectEntity(CompoundNBT nbt, @Nullable LivingEntity source, Livi amplifier += 1; duration += 5 * 120; - if (!convertLivingEntity(source, target, amplifier)) { + if (convertLivingEntity(source, target, amplifier)) { + if (!target.isSilent()) target.world.playEvent(null, Constants.WorldEvents.ZOMBIE_INFECT_SOUND, target.getPosition(), 0); + } + else { EffectInstance effectInstance = new EffectInstance(ModEffects.RAVENOUS_HUNGER.get(), duration, amplifier); target.addPotionEffect(effectInstance); } @@ -87,28 +92,28 @@ private boolean convertLivingEntity(@Nullable LivingEntity source, LivingEntity if (amplifier < 1) return false; if (target instanceof GuardianEntity) { - return convertMobEntityTo(world, (GuardianEntity) target, EntityType.ELDER_GUARDIAN); + return MobUtil.convertMobEntityTo(world, (GuardianEntity) target, EntityType.ELDER_GUARDIAN); } else if (target instanceof VillagerEntity) { - return convertMobEntityTo(world, (VillagerEntity) target, EntityType.PILLAGER, false); + return MobUtil.convertMobEntityTo(world, (VillagerEntity) target, EntityType.PILLAGER, false); } else if (target instanceof SheepEntity && !(target instanceof FailedSheepEntity)) { float v = world.rand.nextFloat(); if (v < 0.04f) - return convertMobEntityTo(world, (SheepEntity) target, ModEntityTypes.CHROMA_SHEEP.get()); + return MobUtil.convertMobEntityTo(world, (SheepEntity) target, ModEntityTypes.CHROMA_SHEEP.get()); else if (v < 0.2f) - return convertMobEntityTo(world, (SheepEntity) target, ModEntityTypes.THICK_WOOL_SHEEP.get()); + return MobUtil.convertMobEntityTo(world, (SheepEntity) target, ModEntityTypes.THICK_WOOL_SHEEP.get()); else if (v < 0.45f) - return convertMobEntityTo(world, (SheepEntity) target, ModEntityTypes.SILKY_WOOL_SHEEP.get()); + return MobUtil.convertMobEntityTo(world, (SheepEntity) target, ModEntityTypes.SILKY_WOOL_SHEEP.get()); else if (v < 0.8f) - return convertMobEntityTo(world, (SheepEntity) target, ModEntityTypes.FAILED_SHEEP.get()); + return MobUtil.convertMobEntityTo(world, (SheepEntity) target, ModEntityTypes.FAILED_SHEEP.get()); } else if (target instanceof FleshBlobEntity) { return convertFleshBlob(world, source, (FleshBlobEntity) target); } else if (target instanceof AnimalEntity && !(target instanceof TameableEntity) && !(target instanceof IOwnableCreature)) { if (world.rand.nextFloat() < 0.4f) { - return convertMobEntityTo(world, (AnimalEntity) target, ModEntityTypes.FLESH_BLOB.get(), true, (oldEntity, outcome) -> { + return MobUtil.convertMobEntityTo(world, (AnimalEntity) target, ModEntityTypes.FLESH_BLOB.get(), true, (oldEntity, outcome) -> { int size = MathHelper.clamp(Math.round(oldEntity.getSize(Pose.STANDING).height), 1, 10); if (size > 1) outcome.setBlobSize((byte) size, true); }); @@ -118,31 +123,6 @@ else if (target instanceof AnimalEntity && !(target instanceof TameableEntity) & return false; } - private boolean convertMobEntityTo(ServerWorld world, E entityIn, EntityType outcomeType) { - return convertMobEntityTo(world, entityIn, outcomeType, true); - } - - private boolean convertMobEntityTo(ServerWorld world, E entityIn, EntityType outcomeType, boolean copyEquipment) { - return convertMobEntityTo(world, entityIn, outcomeType, copyEquipment, (oldEntity, outcome) -> {}); - } - - private boolean convertMobEntityTo(ServerWorld world, E oldEntity, EntityType outcomeType, boolean copyEquipment, BiConsumer onConvert) { - if (ForgeEventFactory.canLivingConvert(oldEntity, outcomeType, (timer) -> {})) { - T newEntity = oldEntity.func_233656_b_(outcomeType, copyEquipment);// create new entity with same settings & equipment and remove old entity - if (newEntity != null) { - newEntity.onInitialSpawn(world, world.getDifficultyForLocation(oldEntity.getPosition()), SpawnReason.CONVERSION, null, null); - newEntity.hurtResistantTime = 60; - onConvert.accept(oldEntity, newEntity); - ForgeEventFactory.onLivingConvert(oldEntity, newEntity); - if (!oldEntity.isSilent()) { - world.playEvent(null, Constants.WorldEvents.ZOMBIE_INFECT_SOUND, oldEntity.getPosition(), 0); - } - return true; - } - } - return false; - } - private boolean convertFleshBlob(ServerWorld world, @Nullable LivingEntity source, FleshBlobEntity target) { if (world.rand.nextFloat() < 0.7f && target.getBlobSize() < 6) { if (target.hasForeignEntityDNA()) { @@ -152,7 +132,7 @@ private boolean convertFleshBlob(ServerWorld world, @Nullable LivingEntity sourc if (dnaCount == 1) { EntityType entityType = entityDNAs.get(0); if (entityType == EntityType.PLAYER) { - return convertMobEntityTo(world, target, ModEntityTypes.FLESHKIN.get(), false, (fleshBlob, fleshkin) -> { + return MobUtil.convertMobEntityTo(world, target, ModEntityTypes.FLESHKIN.get(), false, (fleshBlob, fleshkin) -> { if (!fleshBlob.isHangry()) { if (source != null) fleshkin.setOwnerUUID(source.getUniqueID()); } @@ -160,14 +140,14 @@ private boolean convertFleshBlob(ServerWorld world, @Nullable LivingEntity sourc }); } else { - return convertLivingEntityTo(world, target, entityType); + return MobUtil.convertLivingEntityTo(world, target, entityType); } } else if (dnaCount == 2) { EntityType typeA = entityDNAs.get(0); EntityType typeB = entityDNAs.get(1); if ((typeA == EntityType.CAVE_SPIDER && typeB == EntityType.CREEPER) || (typeB == EntityType.CAVE_SPIDER && typeA == EntityType.CREEPER)) { - return convertMobEntityTo(world, target, ModEntityTypes.BOOMLING.get(), false); + return MobUtil.convertMobEntityTo(world, target, ModEntityTypes.BOOMLING.get(), false); } } else { @@ -188,32 +168,4 @@ else if (dnaCount == 2) { return false; } - private boolean convertLivingEntityTo(ServerWorld world, LivingEntity oldEntity, EntityType outcomeType) { - if (oldEntity.removed) return false; - - Entity entity = outcomeType.create(world); - if (entity != null) { - if (entity instanceof LivingEntity) { - //noinspection unchecked - EntityType entityType = (EntityType) outcomeType; - if (ForgeEventFactory.canLivingConvert(oldEntity, entityType, (timer) -> {})) { - entity.copyLocationAndAnglesFrom(oldEntity); - oldEntity.remove(); - world.addEntity(entity); - if (entity instanceof MobEntity) { - ((MobEntity) entity).onInitialSpawn(world, world.getDifficultyForLocation(oldEntity.getPosition()), SpawnReason.CONVERSION, null, null); - } - entity.hurtResistantTime = 60; - ForgeEventFactory.onLivingConvert(oldEntity, (LivingEntity) entity); - if (!oldEntity.isSilent()) world.playEvent(null, Constants.WorldEvents.ZOMBIE_INFECT_SOUND, oldEntity.getPosition(), 0); - return true; - } - } - - entity.remove(); - } - - return false; - } - } diff --git a/src/main/java/com/github/elenterius/biomancy/util/MobUtil.java b/src/main/java/com/github/elenterius/biomancy/util/MobUtil.java new file mode 100644 index 000000000..de9c965d1 --- /dev/null +++ b/src/main/java/com/github/elenterius/biomancy/util/MobUtil.java @@ -0,0 +1,61 @@ +package com.github.elenterius.biomancy.util; + +import net.minecraft.entity.*; +import net.minecraft.world.server.ServerWorld; +import net.minecraftforge.event.ForgeEventFactory; + +import java.util.function.BiConsumer; + +public final class MobUtil { + + private MobUtil() {} + + public static boolean convertMobEntityTo(ServerWorld world, E entityIn, EntityType outcomeType) { + return convertMobEntityTo(world, entityIn, outcomeType, true); + } + + public static boolean convertMobEntityTo(ServerWorld world, E entityIn, EntityType outcomeType, boolean copyEquipment) { + return convertMobEntityTo(world, entityIn, outcomeType, copyEquipment, (oldEntity, outcome) -> {}); + } + + public static boolean convertMobEntityTo(ServerWorld world, E oldEntity, EntityType outcomeType, boolean copyEquipment, BiConsumer onConvert) { + if (ForgeEventFactory.canLivingConvert(oldEntity, outcomeType, (timer) -> {})) { + T newEntity = oldEntity.func_233656_b_(outcomeType, copyEquipment);// create new entity with same settings & equipment and remove old entity + if (newEntity != null) { + newEntity.onInitialSpawn(world, world.getDifficultyForLocation(oldEntity.getPosition()), SpawnReason.CONVERSION, null, null); + newEntity.hurtResistantTime = 60; + onConvert.accept(oldEntity, newEntity); + ForgeEventFactory.onLivingConvert(oldEntity, newEntity); + return true; + } + } + return false; + } + + public static boolean convertLivingEntityTo(ServerWorld world, LivingEntity oldEntity, EntityType outcomeType) { + if (oldEntity.removed) return false; + + Entity entity = outcomeType.create(world); + if (entity != null) { + if (entity instanceof LivingEntity) { + //noinspection unchecked + EntityType entityType = (EntityType) outcomeType; + if (ForgeEventFactory.canLivingConvert(oldEntity, entityType, (timer) -> {})) { + entity.copyLocationAndAnglesFrom(oldEntity); + oldEntity.remove(); + world.addEntity(entity); + if (entity instanceof MobEntity) { + ((MobEntity) entity).onInitialSpawn(world, world.getDifficultyForLocation(oldEntity.getPosition()), SpawnReason.CONVERSION, null, null); + } + entity.hurtResistantTime = 60; + ForgeEventFactory.onLivingConvert(oldEntity, (LivingEntity) entity); + return true; + } + } + + entity.remove(); + } + + return false; + } +} diff --git a/src/main/resources/biomancy.mixins.json b/src/main/resources/biomancy.mixins.json index 55a5a0c3e..4dc26cb4d 100644 --- a/src/main/resources/biomancy.mixins.json +++ b/src/main/resources/biomancy.mixins.json @@ -14,7 +14,8 @@ "RecipeManagerMixinAccessor", "ServerPlayerEntityMixin", "SlimeEntityAccessor", - "SwordItemMixinAccessor" + "SwordItemMixinAccessor", + "ZombieVillagerEntityMixinAccessor" ], "client": [ "client.ClientItemStackMixinAccessor", From 3491e76743fcb7c6b06909227ded08962a405258 Mon Sep 17 00:00:00 2001 From: Elenterius Date: Sun, 27 Jun 2021 00:41:01 +0200 Subject: [PATCH 18/24] fixup! redstone pulse duration of bio-machines --- .../java/com/github/elenterius/biomancy/block/MachineBlock.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/github/elenterius/biomancy/block/MachineBlock.java b/src/main/java/com/github/elenterius/biomancy/block/MachineBlock.java index dae98f857..dacd33f56 100644 --- a/src/main/java/com/github/elenterius/biomancy/block/MachineBlock.java +++ b/src/main/java/com/github/elenterius/biomancy/block/MachineBlock.java @@ -70,7 +70,7 @@ protected int getRedstoneLevel(BlockState state) { } protected int getPoweredDuration() { - return 20; + return 2; } @Override From 813b5e37bfe62362983f833e1705b7a42e615025 Mon Sep 17 00:00:00 2001 From: Elenterius Date: Sun, 27 Jun 2021 19:04:00 +0200 Subject: [PATCH 19/24] updated assets --- .../blockstates/meatsoup_cauldron.json | 2 +- .../biomancy/models/block/decomposer.json | 736 +++++++++--------- .../biomancy/models/block/digester.json | 165 ++-- .../block/meatsoup_cauldron_level1.json | 2 +- .../block/meatsoup_cauldron_level2.json | 2 +- .../block/meatsoup_cauldron_level3.json | 2 +- .../block/meatsoup_cauldron_level4.json | 6 + .../textures/block/decomposer_fluid.png | Bin 0 -> 737 bytes .../textures/block/digester_mouth.png | Bin 0 -> 376 bytes .../biomancy/textures/block/flesh_hole.png | Bin 0 -> 572 bytes .../biomancy/textures/block/flesh_rough_0.png | Bin 451 -> 639 bytes .../biomancy/textures/block/flesh_rough_1.png | Bin 462 -> 870 bytes .../biomancy/textures/block/flesh_rough_2.png | Bin 471 -> 600 bytes .../textures/block/flesh_tendrils.png | Bin 0 -> 545 bytes .../biomancy/textures/block/nutrients.png | Bin 71467 -> 0 bytes .../textures/entity/aggressive_flesh_blob.png | Bin 1212 -> 1269 bytes .../biomancy/textures/entity/flesh_blob.psd | Bin 0 -> 27782 bytes .../biomancy/textures/entity/slimflesh.png | Bin 4010 -> 0 bytes .../assets/biomancy/textures/item/stomach.png | Bin 508 -> 403 bytes 19 files changed, 429 insertions(+), 486 deletions(-) create mode 100644 src/main/resources/assets/biomancy/models/block/meatsoup_cauldron_level4.json create mode 100644 src/main/resources/assets/biomancy/textures/block/decomposer_fluid.png create mode 100644 src/main/resources/assets/biomancy/textures/block/digester_mouth.png create mode 100644 src/main/resources/assets/biomancy/textures/block/flesh_hole.png create mode 100644 src/main/resources/assets/biomancy/textures/block/flesh_tendrils.png delete mode 100644 src/main/resources/assets/biomancy/textures/block/nutrients.png create mode 100644 src/main/resources/assets/biomancy/textures/entity/flesh_blob.psd delete mode 100644 src/main/resources/assets/biomancy/textures/entity/slimflesh.png diff --git a/src/main/resources/assets/biomancy/blockstates/meatsoup_cauldron.json b/src/main/resources/assets/biomancy/blockstates/meatsoup_cauldron.json index ad4f3a1f4..240fca43a 100644 --- a/src/main/resources/assets/biomancy/blockstates/meatsoup_cauldron.json +++ b/src/main/resources/assets/biomancy/blockstates/meatsoup_cauldron.json @@ -25,7 +25,7 @@ "model": "biomancy:block/meatsoup_cauldron_level3" }, "level=8": { - "model": "biomancy:block/meatsoup_cauldron_level3" + "model": "biomancy:block/meatsoup_cauldron_level4" } } } \ No newline at end of file diff --git a/src/main/resources/assets/biomancy/models/block/decomposer.json b/src/main/resources/assets/biomancy/models/block/decomposer.json index d05a05c7c..29e1ce0e9 100644 --- a/src/main/resources/assets/biomancy/models/block/decomposer.json +++ b/src/main/resources/assets/biomancy/models/block/decomposer.json @@ -2,672 +2,657 @@ "credit": "Made by Selea", "parent": "block/block", "textures": { - "0": "biomancy:block/chewer_front", - "1": "biomancy:block/flesh_bland", - "19": "biomancy:block/muscle", - "26": "biomancy:block/teeth", - "27": "biomancy:block/nutrients", - "particle": "biomancy:block/flesh_bland" + "bottom": "biomancy:block/flesh_hole", + "particle": "biomancy:block/flesh_bland", + "skin": "biomancy:block/flesh_bland", + "muscle": "biomancy:block/muscle", + "fluid": "biomancy:block/decomposer_fluid", + "teeth": "biomancy:block/teeth_0" }, "elements": [ { "from": [1, 0, 1], "to": [15, 1, 15], "faces": { - "north": {"uv": [0, 0, 14, 1], "texture": "#1"}, - "east": {"uv": [0, 0, 14, 1], "texture": "#1"}, - "south": {"uv": [0, 0, 14, 1], "texture": "#1"}, - "west": {"uv": [0, 0, 14, 1], "texture": "#1"}, - "up": {"uv": [0, 0, 14, 14], "texture": "#1"}, - "down": {"uv": [1, 2, 15, 16], "texture": "#0"} + "north": {"uv": [0, 0, 14, 1], "texture": "#skin"}, + "east": {"uv": [0, 0, 14, 1], "texture": "#skin"}, + "south": {"uv": [0, 0, 14, 1], "texture": "#skin"}, + "west": {"uv": [0, 0, 14, 1], "texture": "#skin"}, + "up": {"uv": [0, 0, 14, 14], "texture": "#muscle"}, + "down": {"uv": [1, 1, 15, 15], "texture": "#bottom"} } }, { "from": [1, 1, 0], "to": [15, 10, 1], "faces": { - "north": {"uv": [0, 0, 14, 9], "texture": "#1"}, - "east": {"uv": [0, 0, 1, 9], "texture": "#1"}, - "south": {"uv": [0, 0, 14, 9], "texture": "#19"}, - "west": {"uv": [0, 0, 1, 9], "texture": "#1"}, - "up": {"uv": [0, 0, 14, 1], "texture": "#1"}, - "down": {"uv": [0, 0, 14, 1], "texture": "#1"} + "north": {"uv": [0, 0, 14, 9], "texture": "#skin"}, + "east": {"uv": [0, 0, 1, 9], "texture": "#skin"}, + "south": {"uv": [0, 0, 14, 9], "texture": "#muscle"}, + "west": {"uv": [0, 0, 1, 9], "texture": "#skin"}, + "up": {"uv": [0, 0, 14, 1], "texture": "#skin"}, + "down": {"uv": [0, 0, 14, 1], "texture": "#skin"} } }, { "from": [0, 1, 1], "to": [1, 10, 15], "faces": { - "north": {"uv": [0, 0, 1, 9], "texture": "#1"}, - "east": {"uv": [0, 0, 14, 9], "texture": "#19"}, - "south": {"uv": [0, 0, 1, 9], "texture": "#1"}, - "west": {"uv": [0, 0, 14, 9], "texture": "#1"}, - "up": {"uv": [0, 0, 1, 14], "texture": "#1"}, - "down": {"uv": [0, 0, 1, 14], "texture": "#1"} + "north": {"uv": [0, 0, 1, 9], "texture": "#skin"}, + "east": {"uv": [0, 0, 14, 9], "texture": "#muscle"}, + "south": {"uv": [0, 0, 1, 9], "texture": "#skin"}, + "west": {"uv": [0, 0, 14, 9], "texture": "#skin"}, + "up": {"uv": [0, 0, 1, 14], "texture": "#skin"}, + "down": {"uv": [0, 0, 1, 14], "texture": "#skin"} } }, { "from": [15, 1, 1], "to": [16, 10, 15], "faces": { - "north": {"uv": [0, 0, 1, 9], "texture": "#1"}, - "east": {"uv": [0, 0, 14, 9], "texture": "#1"}, - "south": {"uv": [0, 0, 1, 9], "texture": "#1"}, - "west": {"uv": [0, 0, 14, 9], "texture": "#19"}, - "up": {"uv": [0, 0, 1, 14], "texture": "#1"}, - "down": {"uv": [0, 0, 1, 14], "texture": "#1"} + "north": {"uv": [0, 0, 1, 9], "texture": "#skin"}, + "east": {"uv": [0, 0, 14, 9], "texture": "#skin"}, + "south": {"uv": [0, 0, 1, 9], "texture": "#skin"}, + "west": {"uv": [0, 0, 14, 9], "texture": "#muscle"}, + "up": {"uv": [0, 0, 1, 14], "texture": "#skin"}, + "down": {"uv": [0, 0, 1, 14], "texture": "#skin"} } }, { "from": [1, 1, 15], "to": [15, 10, 16], "faces": { - "north": {"uv": [0, 0, 14, 9], "texture": "#19"}, - "east": {"uv": [0, 0, 1, 9], "texture": "#1"}, - "south": {"uv": [0, 0, 14, 9], "texture": "#1"}, - "west": {"uv": [0, 0, 1, 9], "texture": "#1"}, - "up": {"uv": [0, 0, 14, 1], "texture": "#1"}, - "down": {"uv": [0, 0, 14, 1], "texture": "#1"} + "north": {"uv": [0, 0, 14, 9], "texture": "#muscle"}, + "east": {"uv": [0, 0, 1, 9], "texture": "#skin"}, + "south": {"uv": [0, 0, 14, 9], "texture": "#skin"}, + "west": {"uv": [0, 0, 1, 9], "texture": "#skin"}, + "up": {"uv": [0, 0, 14, 1], "texture": "#skin"}, + "down": {"uv": [0, 0, 14, 1], "texture": "#skin"} } }, { - "from": [1, 1, 1], + "name": "fluid", + "from": [1, 6, 1], "to": [15, 6, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 6, 8]}, "faces": { - "north": {"uv": [0, 0, 14, 5], "texture": "#27"}, - "east": {"uv": [0, 0, 14, 5], "texture": "#27"}, - "south": {"uv": [0, 0, 14, 5], "texture": "#27"}, - "west": {"uv": [0, 0, 14, 5], "texture": "#27"}, - "up": {"uv": [10, 7, 11, 8], "texture": "#27"}, - "down": {"uv": [0, 0, 14, 14], "texture": "#27"} - } - }, - { - "from": [6, 1, 3], - "to": [10, 9, 5], - "faces": { - "north": {"uv": [0, 0, 4, 8], "texture": "#19"}, - "east": {"uv": [0, 0, 2, 8], "texture": "#19"}, - "south": {"uv": [0, 0, 4, 8], "texture": "#19"}, - "west": {"uv": [0, 0, 2, 8], "texture": "#19"}, - "up": {"uv": [0, 0, 4, 2], "texture": "#19"}, - "down": {"uv": [0, 0, 4, 2], "texture": "#19"} + "north": {"uv": [0, 0, 14, 0], "texture": "#fluid"}, + "east": {"uv": [0, 0, 14, 0], "texture": "#fluid"}, + "south": {"uv": [0, 0, 14, 0], "texture": "#fluid"}, + "west": {"uv": [0, 0, 14, 0], "texture": "#fluid"}, + "up": {"uv": [14, 14, 0, 0], "texture": "#fluid"} } }, { "from": [3, 15, 3], "to": [6, 16, 6], + "rotation": {"angle": 0, "axis": "z", "origin": [1, 10, 1]}, "faces": { - "north": {"uv": [0, 0, 3, 1], "texture": "#1"}, - "east": {"uv": [0, 0, 3, 1], "texture": "#1"}, - "south": {"uv": [0, 0, 3, 1], "texture": "#1"}, - "west": {"uv": [0, 0, 3, 1], "texture": "#1"}, - "up": {"uv": [0, 0, 3, 3], "texture": "#1"}, - "down": {"uv": [0, 0, 3, 3], "texture": "#19"} + "north": {"uv": [0, 0, 3, 1], "texture": "#skin"}, + "east": {"uv": [0, 0, 3, 1], "texture": "#skin"}, + "south": {"uv": [0, 0, 3, 1], "texture": "#skin"}, + "west": {"uv": [0, 0, 3, 1], "texture": "#skin"}, + "up": {"uv": [0, 0, 3, 3], "texture": "#skin"}, + "down": {"uv": [0, 0, 3, 3], "texture": "#muscle"} } }, { "from": [1, 10, 1], "to": [7, 12, 2], + "rotation": {"angle": 0, "axis": "z", "origin": [1, 10, 1]}, "faces": { - "north": {"uv": [0, 0, 6, 2], "texture": "#1"}, - "east": {"uv": [0, 0, 1, 2], "texture": "#1"}, - "south": {"uv": [0, 0, 6, 2], "texture": "#19"}, - "west": {"uv": [0, 0, 1, 2], "texture": "#1"}, - "up": {"uv": [0, 0, 6, 1], "texture": "#1"}, - "down": {"uv": [0, 0, 6, 1], "texture": "#19"} + "north": {"uv": [0, 0, 6, 2], "texture": "#skin"}, + "east": {"uv": [0, 0, 1, 2], "texture": "#skin"}, + "south": {"uv": [0, 0, 6, 2], "texture": "#muscle"}, + "west": {"uv": [0, 0, 1, 2], "texture": "#skin"}, + "up": {"uv": [0, 0, 6, 1], "texture": "#skin"}, + "down": {"uv": [0, 0, 6, 1], "texture": "#muscle"} } }, { "from": [2, 12, 2], "to": [6, 15, 3], + "rotation": {"angle": 0, "axis": "z", "origin": [1, 10, 1]}, "faces": { - "north": {"uv": [0, 0, 4, 3], "texture": "#1"}, - "east": {"uv": [0, 0, 1, 3], "texture": "#1"}, - "south": {"uv": [0, 0, 4, 3], "texture": "#19"}, - "west": {"uv": [0, 0, 1, 3], "texture": "#1"}, - "up": {"uv": [0, 0, 4, 1], "texture": "#1"}, - "down": {"uv": [0, 0, 4, 1], "texture": "#19"} + "north": {"uv": [0, 0, 4, 3], "texture": "#skin"}, + "east": {"uv": [0, 0, 1, 3], "texture": "#skin"}, + "south": {"uv": [0, 0, 4, 3], "texture": "#muscle"}, + "west": {"uv": [0, 0, 1, 3], "texture": "#skin"}, + "up": {"uv": [0, 0, 4, 1], "texture": "#skin"}, + "down": {"uv": [0, 0, 4, 1], "texture": "#muscle"} } }, { "from": [2, 12, 3], "to": [3, 15, 6], + "rotation": {"angle": 0, "axis": "z", "origin": [1, 10, 1]}, "faces": { - "north": {"uv": [0, 0, 1, 3], "texture": "#1"}, - "east": {"uv": [0, 0, 3, 3], "texture": "#19"}, - "south": {"uv": [0, 0, 1, 3], "texture": "#1"}, - "west": {"uv": [0, 0, 3, 3], "texture": "#1"}, - "up": {"uv": [0, 0, 1, 3], "texture": "#1"}, - "down": {"uv": [0, 0, 1, 3], "texture": "#19"} + "north": {"uv": [0, 0, 1, 3], "texture": "#skin"}, + "east": {"uv": [0, 0, 3, 3], "texture": "#muscle"}, + "south": {"uv": [0, 0, 1, 3], "texture": "#skin"}, + "west": {"uv": [0, 0, 3, 3], "texture": "#skin"}, + "up": {"uv": [0, 0, 1, 3], "texture": "#skin"}, + "down": {"uv": [0, 0, 1, 3], "texture": "#muscle"} } }, { "from": [1, 10, 2], "to": [2, 12, 7], + "rotation": {"angle": 0, "axis": "z", "origin": [1, 10, 1]}, "faces": { - "north": {"uv": [0, 0, 1, 2], "texture": "#1"}, - "east": {"uv": [0, 0, 5, 2], "texture": "#19"}, - "south": {"uv": [0, 0, 1, 2], "texture": "#1"}, - "west": {"uv": [0, 0, 5, 2], "texture": "#1"}, - "up": {"uv": [0, 0, 1, 5], "texture": "#1"}, - "down": {"uv": [0, 0, 1, 5], "texture": "#19"} + "north": {"uv": [0, 0, 1, 2], "texture": "#skin"}, + "east": {"uv": [0, 0, 5, 2], "texture": "#muscle"}, + "south": {"uv": [0, 0, 1, 2], "texture": "#skin"}, + "west": {"uv": [0, 0, 5, 2], "texture": "#skin"}, + "up": {"uv": [0, 0, 1, 5], "texture": "#skin"}, + "down": {"uv": [0, 0, 1, 5], "texture": "#muscle"} } }, { "from": [3, 15, 6], "to": [4, 16, 7], + "rotation": {"angle": 0, "axis": "z", "origin": [1, 10, 1]}, "faces": { - "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "up": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "down": {"uv": [0, 0, 1, 1], "texture": "#26"} + "north": {"uv": [1.5, 6, 2, 6.5], "texture": "#teeth"}, + "east": {"uv": [3.5, 7, 4, 7.5], "texture": "#teeth"}, + "south": {"uv": [6.5, 0, 7, 0.5], "texture": "#teeth"}, + "west": {"uv": [0.5, 6.5, 1, 7], "texture": "#teeth"}, + "up": {"uv": [6, 7.5, 6.5, 8], "texture": "#teeth"}, + "down": {"uv": [1, 6.5, 1.5, 7], "texture": "#teeth"} } }, { "from": [2, 13, 6], "to": [3, 14, 7], + "rotation": {"angle": 0, "axis": "z", "origin": [1, 10, 1]}, "faces": { - "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "up": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "down": {"uv": [0, 0, 1, 1], "texture": "#26"} + "north": {"uv": [1.5, 6, 2, 6.5], "texture": "#teeth"}, + "east": {"uv": [3.5, 7, 4, 7.5], "texture": "#teeth"}, + "south": {"uv": [6.5, 0, 7, 0.5], "texture": "#teeth"}, + "west": {"uv": [0.5, 6.5, 1, 7], "texture": "#teeth"}, + "up": {"uv": [6, 7.5, 6.5, 8], "texture": "#teeth"}, + "down": {"uv": [1, 6.5, 1.5, 7], "texture": "#teeth"} } }, { "from": [5, 15, 6], "to": [6, 16, 7], + "rotation": {"angle": 0, "axis": "z", "origin": [1, 10, 1]}, "faces": { - "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "up": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "down": {"uv": [0, 0, 1, 1], "texture": "#26"} + "north": {"uv": [1.5, 6, 2, 6.5], "texture": "#teeth"}, + "east": {"uv": [3.5, 7, 4, 7.5], "texture": "#teeth"}, + "south": {"uv": [6.5, 0, 7, 0.5], "texture": "#teeth"}, + "west": {"uv": [0.5, 6.5, 1, 7], "texture": "#teeth"}, + "up": {"uv": [5, 8, 5.5, 8.5], "texture": "#teeth"}, + "down": {"uv": [1, 6.5, 1.5, 7], "texture": "#teeth"} } }, { "from": [6, 15, 5], "to": [7, 16, 6], + "rotation": {"angle": 0, "axis": "z", "origin": [1, 10, 1]}, "faces": { - "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "up": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "down": {"uv": [0, 0, 1, 1], "texture": "#26"} + "north": {"uv": [1.5, 6, 2, 6.5], "texture": "#teeth"}, + "east": {"uv": [3.5, 7, 4, 7.5], "texture": "#teeth"}, + "south": {"uv": [6.5, 0, 7, 0.5], "texture": "#teeth"}, + "west": {"uv": [0.5, 6.5, 1, 7], "texture": "#teeth"}, + "up": {"uv": [6, 7.5, 6.5, 8], "texture": "#teeth"}, + "down": {"uv": [1, 6.5, 1.5, 7], "texture": "#teeth"} } }, { "from": [6, 15, 3], "to": [7, 16, 4], + "rotation": {"angle": 0, "axis": "z", "origin": [1, 10, 1]}, "faces": { - "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "up": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "down": {"uv": [0, 0, 1, 1], "texture": "#26"} + "north": {"uv": [1.5, 6, 2, 6.5], "texture": "#teeth"}, + "east": {"uv": [3.5, 7, 4, 7.5], "texture": "#teeth"}, + "south": {"uv": [6.5, 0, 7, 0.5], "texture": "#teeth"}, + "west": {"uv": [0.5, 6.5, 1, 7], "texture": "#teeth"}, + "up": {"uv": [3.5, 7, 4, 7.5], "texture": "#teeth"}, + "down": {"uv": [1, 6.5, 1.5, 7], "texture": "#teeth"} } }, { "from": [6, 13, 2], "to": [7, 14, 3], + "rotation": {"angle": 0, "axis": "z", "origin": [1, 10, 1]}, "faces": { - "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "up": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "down": {"uv": [0, 0, 1, 1], "texture": "#26"} + "north": {"uv": [1.5, 6, 2, 6.5], "texture": "#teeth"}, + "east": {"uv": [3.5, 7, 4, 7.5], "texture": "#teeth"}, + "south": {"uv": [6.5, 0, 7, 0.5], "texture": "#teeth"}, + "west": {"uv": [0.5, 6.5, 1, 7], "texture": "#teeth"}, + "up": {"uv": [6, 7.5, 6.5, 8], "texture": "#teeth"}, + "down": {"uv": [1, 6.5, 1.5, 7], "texture": "#teeth"} } }, { "from": [3, 15, 10], "to": [6, 16, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [1, 10, 15]}, "faces": { - "north": {"uv": [0, 0, 3, 1], "texture": "#1"}, - "east": {"uv": [0, 0, 3, 1], "texture": "#1"}, - "south": {"uv": [0, 0, 3, 1], "texture": "#1"}, - "west": {"uv": [0, 0, 3, 1], "texture": "#1"}, - "up": {"uv": [0, 0, 3, 3], "rotation": 270, "texture": "#1"}, - "down": {"uv": [0, 0, 3, 3], "rotation": 90, "texture": "#19"} + "north": {"uv": [0, 0, 3, 1], "texture": "#skin"}, + "east": {"uv": [0, 0, 3, 1], "texture": "#skin"}, + "south": {"uv": [0, 0, 3, 1], "texture": "#skin"}, + "west": {"uv": [0, 0, 3, 1], "texture": "#skin"}, + "up": {"uv": [0, 0, 3, 3], "rotation": 270, "texture": "#skin"}, + "down": {"uv": [0, 0, 3, 3], "rotation": 90, "texture": "#muscle"} } }, { "from": [1, 10, 9], "to": [2, 12, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [1, 10, 15]}, "faces": { - "north": {"uv": [0, 0, 1, 2], "texture": "#1"}, - "east": {"uv": [0, 0, 6, 2], "texture": "#19"}, - "south": {"uv": [0, 0, 1, 2], "texture": "#1"}, - "west": {"uv": [0, 0, 6, 2], "texture": "#1"}, - "up": {"uv": [0, 0, 6, 1], "rotation": 270, "texture": "#1"}, - "down": {"uv": [0, 0, 6, 1], "rotation": 90, "texture": "#19"} + "north": {"uv": [0, 0, 1, 2], "texture": "#skin"}, + "east": {"uv": [0, 0, 6, 2], "texture": "#muscle"}, + "south": {"uv": [0, 0, 1, 2], "texture": "#skin"}, + "west": {"uv": [0, 0, 6, 2], "texture": "#skin"}, + "up": {"uv": [0, 0, 6, 1], "rotation": 270, "texture": "#skin"}, + "down": {"uv": [0, 0, 6, 1], "rotation": 90, "texture": "#muscle"} } }, { "from": [2, 12, 10], "to": [3, 15, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [1, 10, 15]}, "faces": { - "north": {"uv": [0, 0, 1, 3], "texture": "#19"}, - "east": {"uv": [0, 0, 4, 3], "texture": "#19"}, - "south": {"uv": [0, 0, 1, 3], "texture": "#1"}, - "west": {"uv": [0, 0, 4, 3], "texture": "#1"}, - "up": {"uv": [0, 0, 4, 1], "rotation": 270, "texture": "#1"}, - "down": {"uv": [0, 0, 4, 1], "rotation": 90, "texture": "#19"} + "north": {"uv": [0, 0, 1, 3], "texture": "#muscle"}, + "east": {"uv": [0, 0, 4, 3], "texture": "#muscle"}, + "south": {"uv": [0, 0, 1, 3], "texture": "#skin"}, + "west": {"uv": [0, 0, 4, 3], "texture": "#skin"}, + "up": {"uv": [0, 0, 4, 1], "rotation": 270, "texture": "#skin"}, + "down": {"uv": [0, 0, 4, 1], "rotation": 90, "texture": "#muscle"} } }, { "from": [3, 12, 13], "to": [6, 15, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [1, 10, 15]}, "faces": { - "north": {"uv": [0, 0, 3, 3], "texture": "#19"}, - "east": {"uv": [0, 0, 1, 3], "texture": "#1"}, - "south": {"uv": [0, 0, 3, 3], "texture": "#1"}, - "west": {"uv": [0, 0, 1, 3], "texture": "#1"}, - "up": {"uv": [0, 0, 1, 3], "rotation": 270, "texture": "#1"}, - "down": {"uv": [0, 0, 1, 3], "rotation": 90, "texture": "#19"} + "north": {"uv": [0, 0, 3, 3], "texture": "#muscle"}, + "east": {"uv": [0, 0, 1, 3], "texture": "#skin"}, + "south": {"uv": [0, 0, 3, 3], "texture": "#skin"}, + "west": {"uv": [0, 0, 1, 3], "texture": "#skin"}, + "up": {"uv": [0, 0, 1, 3], "rotation": 270, "texture": "#skin"}, + "down": {"uv": [0, 0, 1, 3], "rotation": 90, "texture": "#muscle"} } }, { "from": [2, 10, 14], "to": [7, 12, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [1, 10, 15]}, "faces": { - "north": {"uv": [0, 0, 5, 2], "texture": "#19"}, - "east": {"uv": [0, 0, 1, 2], "texture": "#1"}, - "south": {"uv": [0, 0, 5, 2], "texture": "#1"}, - "west": {"uv": [0, 0, 1, 2], "texture": "#1"}, - "up": {"uv": [0, 0, 1, 5], "rotation": 270, "texture": "#1"}, - "down": {"uv": [0, 0, 1, 5], "rotation": 90, "texture": "#19"} + "north": {"uv": [0, 0, 5, 2], "texture": "#muscle"}, + "east": {"uv": [0, 0, 1, 2], "texture": "#skin"}, + "south": {"uv": [0, 0, 5, 2], "texture": "#skin"}, + "west": {"uv": [0, 0, 1, 2], "texture": "#skin"}, + "up": {"uv": [0, 0, 1, 5], "rotation": 270, "texture": "#skin"}, + "down": {"uv": [0, 0, 1, 5], "rotation": 90, "texture": "#muscle"} } }, { "from": [6, 15, 12], "to": [7, 16, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [1, 10, 15]}, "faces": { - "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "up": {"uv": [0, 0, 1, 1], "rotation": 270, "texture": "#26"}, - "down": {"uv": [0, 0, 1, 1], "rotation": 90, "texture": "#26"} + "north": {"uv": [1.5, 6, 2, 6.5], "texture": "#teeth"}, + "east": {"uv": [3.5, 7, 4, 7.5], "texture": "#teeth"}, + "south": {"uv": [6.5, 0, 7, 0.5], "texture": "#teeth"}, + "west": {"uv": [0.5, 6.5, 1, 7], "texture": "#teeth"}, + "up": {"uv": [5.5, 7, 6, 7.5], "rotation": 270, "texture": "#teeth"}, + "down": {"uv": [1, 6.5, 1.5, 7], "rotation": 90, "texture": "#teeth"} } }, { "from": [6, 13, 13], "to": [7, 14, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [1, 10, 15]}, "faces": { - "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "up": {"uv": [0, 0, 1, 1], "rotation": 270, "texture": "#26"}, - "down": {"uv": [0, 0, 1, 1], "rotation": 90, "texture": "#26"} + "north": {"uv": [1.5, 6, 2, 6.5], "texture": "#teeth"}, + "east": {"uv": [3.5, 7, 4, 7.5], "texture": "#teeth"}, + "south": {"uv": [6.5, 0, 7, 0.5], "texture": "#teeth"}, + "west": {"uv": [0.5, 6.5, 1, 7], "texture": "#teeth"}, + "up": {"uv": [6, 7.5, 6.5, 8], "rotation": 270, "texture": "#teeth"}, + "down": {"uv": [1, 6.5, 1.5, 7], "rotation": 90, "texture": "#teeth"} } }, { "from": [6, 15, 10], "to": [7, 16, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [1, 10, 15]}, "faces": { - "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "up": {"uv": [0, 0, 1, 1], "rotation": 270, "texture": "#26"}, - "down": {"uv": [0, 0, 1, 1], "rotation": 90, "texture": "#26"} + "north": {"uv": [1.5, 6, 2, 6.5], "texture": "#teeth"}, + "east": {"uv": [3.5, 7, 4, 7.5], "texture": "#teeth"}, + "south": {"uv": [6.5, 0, 7, 0.5], "texture": "#teeth"}, + "west": {"uv": [0.5, 6.5, 1, 7], "texture": "#teeth"}, + "up": {"uv": [6, 7.5, 6.5, 8], "rotation": 270, "texture": "#teeth"}, + "down": {"uv": [1, 6.5, 1.5, 7], "rotation": 90, "texture": "#teeth"} } }, { "from": [5, 15, 9], "to": [6, 16, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [1, 10, 15]}, "faces": { - "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "up": {"uv": [0, 0, 1, 1], "rotation": 270, "texture": "#26"}, - "down": {"uv": [0, 0, 1, 1], "rotation": 90, "texture": "#26"} + "north": {"uv": [1.5, 6, 2, 6.5], "texture": "#teeth"}, + "east": {"uv": [4, 6.5, 4.5, 7], "texture": "#teeth"}, + "south": {"uv": [6.5, 0, 7, 0.5], "texture": "#teeth"}, + "west": {"uv": [0.5, 6.5, 1, 7], "texture": "#teeth"}, + "up": {"uv": [6, 7.5, 6.5, 8], "rotation": 270, "texture": "#teeth"}, + "down": {"uv": [1, 6.5, 1.5, 7], "rotation": 90, "texture": "#teeth"} } }, { "from": [3, 15, 9], "to": [4, 16, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [1, 10, 15]}, "faces": { - "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "up": {"uv": [0, 0, 1, 1], "rotation": 270, "texture": "#26"}, - "down": {"uv": [0, 0, 1, 1], "rotation": 90, "texture": "#26"} + "north": {"uv": [1.5, 6, 2, 6.5], "texture": "#teeth"}, + "east": {"uv": [3.5, 7, 4, 7.5], "texture": "#teeth"}, + "south": {"uv": [6.5, 0, 7, 0.5], "texture": "#teeth"}, + "west": {"uv": [0.5, 6.5, 1, 7], "texture": "#teeth"}, + "up": {"uv": [6, 7.5, 6.5, 8], "rotation": 270, "texture": "#teeth"}, + "down": {"uv": [1, 6.5, 1.5, 7], "rotation": 90, "texture": "#teeth"} } }, { "from": [2, 13, 9], "to": [3, 14, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [1, 10, 15]}, "faces": { - "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "up": {"uv": [0, 0, 1, 1], "rotation": 270, "texture": "#26"}, - "down": {"uv": [0, 0, 1, 1], "rotation": 90, "texture": "#26"} + "north": {"uv": [1.5, 6, 2, 6.5], "texture": "#teeth"}, + "east": {"uv": [3.5, 7, 4, 7.5], "texture": "#teeth"}, + "south": {"uv": [6.5, 0, 7, 0.5], "texture": "#teeth"}, + "west": {"uv": [0.5, 6.5, 1, 7], "texture": "#teeth"}, + "up": {"uv": [0.5, 6.5, 1, 7], "rotation": 270, "texture": "#teeth"}, + "down": {"uv": [1, 6.5, 1.5, 7], "rotation": 90, "texture": "#teeth"} } }, { "from": [10, 15, 10], "to": [13, 16, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 10, 15]}, "faces": { - "north": {"uv": [0, 0, 3, 1], "texture": "#1"}, - "east": {"uv": [0, 0, 3, 1], "texture": "#1"}, - "south": {"uv": [0, 0, 3, 1], "texture": "#1"}, - "west": {"uv": [0, 0, 3, 1], "texture": "#1"}, - "up": {"uv": [0, 0, 3, 3], "rotation": 180, "texture": "#1"}, - "down": {"uv": [0, 0, 3, 3], "rotation": 180, "texture": "#19"} + "north": {"uv": [0, 0, 3, 1], "texture": "#skin"}, + "east": {"uv": [0, 0, 3, 1], "texture": "#skin"}, + "south": {"uv": [0, 0, 3, 1], "texture": "#skin"}, + "west": {"uv": [0, 0, 3, 1], "texture": "#skin"}, + "up": {"uv": [0, 0, 3, 3], "rotation": 180, "texture": "#skin"}, + "down": {"uv": [0, 0, 3, 3], "rotation": 180, "texture": "#muscle"} } }, { "from": [9, 10, 14], "to": [15, 12, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 10, 15]}, "faces": { - "north": {"uv": [0, 0, 6, 2], "texture": "#19"}, - "east": {"uv": [0, 0, 1, 2], "texture": "#1"}, - "south": {"uv": [0, 0, 6, 2], "texture": "#1"}, - "west": {"uv": [0, 0, 1, 2], "texture": "#1"}, - "up": {"uv": [0, 0, 6, 1], "rotation": 180, "texture": "#1"}, - "down": {"uv": [0, 0, 6, 1], "rotation": 180, "texture": "#19"} + "north": {"uv": [0, 0, 6, 2], "texture": "#muscle"}, + "east": {"uv": [0, 0, 1, 2], "texture": "#skin"}, + "south": {"uv": [0, 0, 6, 2], "texture": "#skin"}, + "west": {"uv": [0, 0, 1, 2], "texture": "#skin"}, + "up": {"uv": [0, 0, 6, 1], "rotation": 180, "texture": "#skin"}, + "down": {"uv": [0, 0, 6, 1], "rotation": 180, "texture": "#muscle"} } }, { "from": [10, 12, 13], "to": [14, 15, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 10, 15]}, "faces": { - "north": {"uv": [0, 0, 4, 3], "texture": "#19"}, - "east": {"uv": [0, 0, 1, 3], "texture": "#1"}, - "south": {"uv": [0, 0, 4, 3], "texture": "#1"}, - "west": {"uv": [0, 0, 1, 3], "texture": "#1"}, - "up": {"uv": [0, 0, 4, 1], "rotation": 180, "texture": "#1"}, - "down": {"uv": [0, 0, 4, 1], "rotation": 180, "texture": "#19"} + "north": {"uv": [0, 0, 4, 3], "texture": "#muscle"}, + "east": {"uv": [0, 0, 1, 3], "texture": "#skin"}, + "south": {"uv": [0, 0, 4, 3], "texture": "#skin"}, + "west": {"uv": [0, 0, 1, 3], "texture": "#skin"}, + "up": {"uv": [0, 0, 4, 1], "rotation": 180, "texture": "#skin"}, + "down": {"uv": [0, 0, 4, 1], "rotation": 180, "texture": "#muscle"} } }, { "from": [13, 12, 10], "to": [14, 15, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 10, 15]}, "faces": { - "north": {"uv": [0, 0, 1, 3], "texture": "#1"}, - "east": {"uv": [0, 0, 3, 3], "texture": "#1"}, - "south": {"uv": [0, 0, 1, 3], "texture": "#1"}, - "west": {"uv": [0, 0, 3, 3], "texture": "#19"}, - "up": {"uv": [0, 0, 1, 3], "rotation": 180, "texture": "#1"}, - "down": {"uv": [0, 0, 1, 3], "rotation": 180, "texture": "#19"} + "north": {"uv": [0, 0, 1, 3], "texture": "#skin"}, + "east": {"uv": [0, 0, 3, 3], "texture": "#skin"}, + "south": {"uv": [0, 0, 1, 3], "texture": "#skin"}, + "west": {"uv": [0, 0, 3, 3], "texture": "#muscle"}, + "up": {"uv": [0, 0, 1, 3], "rotation": 180, "texture": "#skin"}, + "down": {"uv": [0, 0, 1, 3], "rotation": 180, "texture": "#muscle"} } }, { "from": [14, 10, 9], "to": [15, 12, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 10, 15]}, "faces": { - "north": {"uv": [0, 0, 1, 2], "texture": "#1"}, - "east": {"uv": [0, 0, 5, 2], "texture": "#1"}, - "south": {"uv": [0, 0, 1, 2], "texture": "#1"}, - "west": {"uv": [0, 0, 5, 2], "texture": "#19"}, - "up": {"uv": [0, 0, 1, 5], "rotation": 180, "texture": "#1"}, - "down": {"uv": [0, 0, 1, 5], "rotation": 180, "texture": "#19"} + "north": {"uv": [0, 0, 1, 2], "texture": "#skin"}, + "east": {"uv": [0, 0, 5, 2], "texture": "#skin"}, + "south": {"uv": [0, 0, 1, 2], "texture": "#skin"}, + "west": {"uv": [0, 0, 5, 2], "texture": "#muscle"}, + "up": {"uv": [0, 0, 1, 5], "rotation": 180, "texture": "#skin"}, + "down": {"uv": [0, 0, 1, 5], "rotation": 180, "texture": "#muscle"} } }, { "from": [12, 15, 9], "to": [13, 16, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 10, 15]}, "faces": { - "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "up": {"uv": [0, 0, 1, 1], "rotation": 180, "texture": "#26"}, - "down": {"uv": [0, 0, 1, 1], "rotation": 180, "texture": "#26"} + "north": {"uv": [1.5, 6, 2, 6.5], "texture": "#teeth"}, + "east": {"uv": [3.5, 7, 4, 7.5], "texture": "#teeth"}, + "south": {"uv": [6.5, 0, 7, 0.5], "texture": "#teeth"}, + "west": {"uv": [1, 6, 1.5, 6.5], "texture": "#teeth"}, + "up": {"uv": [6, 7.5, 6.5, 8], "rotation": 180, "texture": "#teeth"}, + "down": {"uv": [1, 6.5, 1.5, 7], "rotation": 180, "texture": "#teeth"} } }, { "from": [13, 13, 9], "to": [14, 14, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 10, 15]}, "faces": { - "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "up": {"uv": [0, 0, 1, 1], "rotation": 180, "texture": "#26"}, - "down": {"uv": [0, 0, 1, 1], "rotation": 180, "texture": "#26"} + "north": {"uv": [1.5, 6, 2, 6.5], "texture": "#teeth"}, + "east": {"uv": [3.5, 7, 4, 7.5], "texture": "#teeth"}, + "south": {"uv": [6.5, 0, 7, 0.5], "texture": "#teeth"}, + "west": {"uv": [0.5, 6.5, 1, 7], "texture": "#teeth"}, + "up": {"uv": [6.5, 0, 7, 0.5], "rotation": 180, "texture": "#teeth"}, + "down": {"uv": [1, 6.5, 1.5, 7], "rotation": 180, "texture": "#teeth"} } }, { "from": [10, 15, 9], "to": [11, 16, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 10, 15]}, "faces": { - "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "up": {"uv": [0, 0, 1, 1], "rotation": 180, "texture": "#26"}, - "down": {"uv": [0, 0, 1, 1], "rotation": 180, "texture": "#26"} + "north": {"uv": [1.5, 6, 2, 6.5], "texture": "#teeth"}, + "east": {"uv": [3.5, 7, 4, 7.5], "texture": "#teeth"}, + "south": {"uv": [6.5, 0, 7, 0.5], "texture": "#teeth"}, + "west": {"uv": [0.5, 6.5, 1, 7], "texture": "#teeth"}, + "up": {"uv": [6, 7.5, 6.5, 8], "rotation": 180, "texture": "#teeth"}, + "down": {"uv": [1, 6.5, 1.5, 7], "rotation": 180, "texture": "#teeth"} } }, { "from": [9, 15, 10], "to": [10, 16, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 10, 15]}, "faces": { - "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "up": {"uv": [0, 0, 1, 1], "rotation": 180, "texture": "#26"}, - "down": {"uv": [0, 0, 1, 1], "rotation": 180, "texture": "#26"} + "north": {"uv": [1.5, 6, 2, 6.5], "texture": "#teeth"}, + "east": {"uv": [3.5, 7, 4, 7.5], "texture": "#teeth"}, + "south": {"uv": [6.5, 0, 7, 0.5], "texture": "#teeth"}, + "west": {"uv": [0.5, 6.5, 1, 7], "texture": "#teeth"}, + "up": {"uv": [4.5, 6.5, 5, 7], "rotation": 180, "texture": "#teeth"}, + "down": {"uv": [1, 6.5, 1.5, 7], "rotation": 180, "texture": "#teeth"} } }, { "from": [9, 15, 12], "to": [10, 16, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 10, 15]}, "faces": { - "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "up": {"uv": [0, 0, 1, 1], "rotation": 180, "texture": "#26"}, - "down": {"uv": [0, 0, 1, 1], "rotation": 180, "texture": "#26"} + "north": {"uv": [1.5, 6, 2, 6.5], "texture": "#teeth"}, + "east": {"uv": [3.5, 7, 4, 7.5], "texture": "#teeth"}, + "south": {"uv": [6.5, 0, 7, 0.5], "texture": "#teeth"}, + "west": {"uv": [0.5, 6.5, 1, 7], "texture": "#teeth"}, + "up": {"uv": [6, 7.5, 6.5, 8], "rotation": 180, "texture": "#teeth"}, + "down": {"uv": [1, 6.5, 1.5, 7], "rotation": 180, "texture": "#teeth"} } }, { "from": [9, 13, 13], "to": [10, 14, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 10, 15]}, "faces": { - "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "up": {"uv": [0, 0, 1, 1], "rotation": 180, "texture": "#26"}, - "down": {"uv": [0, 0, 1, 1], "rotation": 180, "texture": "#26"} + "north": {"uv": [1.5, 6, 2, 6.5], "texture": "#teeth"}, + "east": {"uv": [3.5, 7, 4, 7.5], "texture": "#teeth"}, + "south": {"uv": [6.5, 0, 7, 0.5], "texture": "#teeth"}, + "west": {"uv": [0.5, 6.5, 1, 7], "texture": "#teeth"}, + "up": {"uv": [6, 7.5, 6.5, 8], "rotation": 180, "texture": "#teeth"}, + "down": {"uv": [1, 6.5, 1.5, 7], "rotation": 180, "texture": "#teeth"} } }, { "from": [10, 15, 3], "to": [13, 16, 6], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 10, 1]}, "faces": { - "north": {"uv": [0, 0, 3, 1], "texture": "#1"}, - "east": {"uv": [0, 0, 3, 1], "texture": "#1"}, - "south": {"uv": [0, 0, 3, 1], "texture": "#1"}, - "west": {"uv": [0, 0, 3, 1], "texture": "#1"}, - "up": {"uv": [0, 0, 3, 3], "rotation": 90, "texture": "#1"}, - "down": {"uv": [0, 0, 3, 3], "rotation": 270, "texture": "#19"} + "north": {"uv": [0, 0, 3, 1], "texture": "#skin"}, + "east": {"uv": [0, 0, 3, 1], "texture": "#skin"}, + "south": {"uv": [0, 0, 3, 1], "texture": "#skin"}, + "west": {"uv": [0, 0, 3, 1], "texture": "#skin"}, + "up": {"uv": [0, 0, 3, 3], "rotation": 90, "texture": "#skin"}, + "down": {"uv": [0, 0, 3, 3], "rotation": 270, "texture": "#muscle"} } }, { "from": [14, 10, 1], "to": [15, 12, 7], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 10, 1]}, "faces": { - "north": {"uv": [0, 0, 1, 2], "texture": "#1"}, - "east": {"uv": [0, 0, 6, 2], "texture": "#1"}, - "south": {"uv": [0, 0, 1, 2], "texture": "#1"}, - "west": {"uv": [0, 0, 6, 2], "texture": "#19"}, - "up": {"uv": [0, 0, 6, 1], "rotation": 90, "texture": "#1"}, - "down": {"uv": [0, 0, 6, 1], "rotation": 270, "texture": "#19"} + "north": {"uv": [0, 0, 1, 2], "texture": "#skin"}, + "east": {"uv": [0, 0, 6, 2], "texture": "#skin"}, + "south": {"uv": [0, 0, 1, 2], "texture": "#skin"}, + "west": {"uv": [0, 0, 6, 2], "texture": "#muscle"}, + "up": {"uv": [0, 0, 6, 1], "rotation": 90, "texture": "#skin"}, + "down": {"uv": [0, 0, 6, 1], "rotation": 270, "texture": "#muscle"} } }, { "from": [13, 12, 2], "to": [14, 15, 6], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 10, 1]}, "faces": { - "north": {"uv": [0, 0, 1, 3], "texture": "#1"}, - "east": {"uv": [0, 0, 4, 3], "texture": "#1"}, - "south": {"uv": [0, 0, 1, 3], "texture": "#1"}, - "west": {"uv": [0, 0, 4, 3], "texture": "#19"}, - "up": {"uv": [0, 0, 4, 1], "rotation": 90, "texture": "#1"}, - "down": {"uv": [0, 0, 4, 1], "rotation": 270, "texture": "#19"} + "north": {"uv": [0, 0, 1, 3], "texture": "#skin"}, + "east": {"uv": [0, 0, 4, 3], "texture": "#skin"}, + "south": {"uv": [0, 0, 1, 3], "texture": "#skin"}, + "west": {"uv": [0, 0, 4, 3], "texture": "#muscle"}, + "up": {"uv": [0, 0, 4, 1], "rotation": 90, "texture": "#skin"}, + "down": {"uv": [0, 0, 4, 1], "rotation": 270, "texture": "#muscle"} } }, { "from": [10, 12, 2], "to": [13, 15, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 10, 1]}, "faces": { - "north": {"uv": [0, 0, 3, 3], "texture": "#1"}, - "east": {"uv": [0, 0, 1, 3], "texture": "#1"}, - "south": {"uv": [0, 0, 3, 3], "texture": "#19"}, - "west": {"uv": [0, 0, 1, 3], "texture": "#1"}, - "up": {"uv": [0, 0, 1, 3], "rotation": 90, "texture": "#1"}, - "down": {"uv": [0, 0, 1, 3], "rotation": 270, "texture": "#19"} + "north": {"uv": [0, 0, 3, 3], "texture": "#skin"}, + "east": {"uv": [0, 0, 1, 3], "texture": "#skin"}, + "south": {"uv": [0, 0, 3, 3], "texture": "#muscle"}, + "west": {"uv": [0, 0, 1, 3], "texture": "#skin"}, + "up": {"uv": [0, 0, 1, 3], "rotation": 90, "texture": "#skin"}, + "down": {"uv": [0, 0, 1, 3], "rotation": 270, "texture": "#muscle"} } }, { "from": [9, 10, 1], "to": [14, 12, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 10, 1]}, "faces": { - "north": {"uv": [0, 0, 5, 2], "texture": "#1"}, - "east": {"uv": [0, 0, 1, 2], "texture": "#1"}, - "south": {"uv": [0, 0, 5, 2], "texture": "#19"}, - "west": {"uv": [0, 0, 1, 2], "texture": "#1"}, - "up": {"uv": [0, 0, 1, 5], "rotation": 90, "texture": "#1"}, - "down": {"uv": [0, 0, 1, 5], "rotation": 270, "texture": "#19"} + "north": {"uv": [0, 0, 5, 2], "texture": "#skin"}, + "east": {"uv": [0, 0, 1, 2], "texture": "#skin"}, + "south": {"uv": [0, 0, 5, 2], "texture": "#muscle"}, + "west": {"uv": [0, 0, 1, 2], "texture": "#skin"}, + "up": {"uv": [0, 0, 1, 5], "rotation": 90, "texture": "#skin"}, + "down": {"uv": [0, 0, 1, 5], "rotation": 270, "texture": "#muscle"} } }, { "from": [9, 15, 3], "to": [10, 16, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 10, 1]}, "faces": { - "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "up": {"uv": [0, 0, 1, 1], "rotation": 90, "texture": "#26"}, - "down": {"uv": [0, 0, 1, 1], "rotation": 270, "texture": "#26"} + "north": {"uv": [1.5, 6, 2, 6.5], "texture": "#teeth"}, + "east": {"uv": [3.5, 7, 4, 7.5], "texture": "#teeth"}, + "south": {"uv": [6.5, 0, 7, 0.5], "texture": "#teeth"}, + "west": {"uv": [0.5, 6.5, 1, 7], "texture": "#teeth"}, + "up": {"uv": [6, 7.5, 6.5, 8], "rotation": 90, "texture": "#teeth"}, + "down": {"uv": [1, 6.5, 1.5, 7], "rotation": 270, "texture": "#teeth"} } }, { "from": [9, 13, 2], "to": [10, 14, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 10, 1]}, "faces": { - "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "up": {"uv": [0, 0, 1, 1], "rotation": 90, "texture": "#26"}, - "down": {"uv": [0, 0, 1, 1], "rotation": 270, "texture": "#26"} + "north": {"uv": [1.5, 6, 2, 6.5], "texture": "#teeth"}, + "east": {"uv": [3.5, 7, 4, 7.5], "texture": "#teeth"}, + "south": {"uv": [6.5, 0, 7, 0.5], "texture": "#teeth"}, + "west": {"uv": [0.5, 6.5, 1, 7], "texture": "#teeth"}, + "up": {"uv": [6, 7.5, 6.5, 8], "rotation": 90, "texture": "#teeth"}, + "down": {"uv": [1, 6.5, 1.5, 7], "rotation": 270, "texture": "#teeth"} } }, { "from": [9, 15, 5], "to": [10, 16, 6], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 10, 1]}, "faces": { - "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "up": {"uv": [0, 0, 1, 1], "rotation": 90, "texture": "#26"}, - "down": {"uv": [0, 0, 1, 1], "rotation": 270, "texture": "#26"} + "north": {"uv": [1.5, 6, 2, 6.5], "texture": "#teeth"}, + "east": {"uv": [3.5, 7, 4, 7.5], "texture": "#teeth"}, + "south": {"uv": [6.5, 0, 7, 0.5], "texture": "#teeth"}, + "west": {"uv": [0.5, 6.5, 1, 7], "texture": "#teeth"}, + "up": {"uv": [0.5, 6.5, 1, 7], "rotation": 90, "texture": "#teeth"}, + "down": {"uv": [1, 6.5, 1.5, 7], "rotation": 270, "texture": "#teeth"} } }, { "from": [10, 15, 6], "to": [11, 16, 7], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 10, 1]}, "faces": { - "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "up": {"uv": [0, 0, 1, 1], "rotation": 90, "texture": "#26"}, - "down": {"uv": [0, 0, 1, 1], "rotation": 270, "texture": "#26"} + "north": {"uv": [1.5, 6, 2, 6.5], "texture": "#teeth"}, + "east": {"uv": [3.5, 7, 4, 7.5], "texture": "#teeth"}, + "south": {"uv": [6.5, 0, 7, 0.5], "texture": "#teeth"}, + "west": {"uv": [0.5, 6.5, 1, 7], "texture": "#teeth"}, + "up": {"uv": [6, 7.5, 6.5, 8], "rotation": 90, "texture": "#teeth"}, + "down": {"uv": [1, 6.5, 1.5, 7], "rotation": 270, "texture": "#teeth"} } }, { "from": [12, 15, 6], "to": [13, 16, 7], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 10, 1]}, "faces": { - "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "up": {"uv": [0, 0, 1, 1], "rotation": 90, "texture": "#26"}, - "down": {"uv": [0, 0, 1, 1], "rotation": 270, "texture": "#26"} + "north": {"uv": [1.5, 6, 2, 6.5], "texture": "#teeth"}, + "east": {"uv": [3.5, 7, 4, 7.5], "texture": "#teeth"}, + "south": {"uv": [6.5, 0, 7, 0.5], "texture": "#teeth"}, + "west": {"uv": [0.5, 6.5, 1, 7], "texture": "#teeth"}, + "up": {"uv": [6, 7.5, 6.5, 8], "rotation": 90, "texture": "#teeth"}, + "down": {"uv": [1, 6.5, 1.5, 7], "rotation": 270, "texture": "#teeth"} } }, { "from": [13, 13, 6], "to": [14, 14, 7], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 10, 1]}, "faces": { - "north": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "east": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "south": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "west": {"uv": [0, 0, 1, 1], "texture": "#26"}, - "up": {"uv": [0, 0, 1, 1], "rotation": 90, "texture": "#26"}, - "down": {"uv": [0, 0, 1, 1], "rotation": 270, "texture": "#26"} - } - }, - { - "from": [5, 6, 7], - "to": [6, 9, 8], - "faces": { - "north": {"uv": [0, 0, 1, 3], "texture": "#19"}, - "east": {"uv": [0, 0, 1, 3], "texture": "#19"}, - "south": {"uv": [0, 0, 1, 3], "texture": "#19"}, - "west": {"uv": [0, 0, 1, 3], "texture": "#19"}, - "up": {"uv": [0, 0, 1, 1], "texture": "#19"}, - "down": {"uv": [0, 0, 1, 1], "texture": "#19"} - } - }, - { - "from": [3, 6, 10], - "to": [4, 10, 11], - "faces": { - "north": {"uv": [0, 0, 1, 4], "texture": "#19"}, - "east": {"uv": [0, 0, 1, 4], "texture": "#19"}, - "south": {"uv": [0, 0, 1, 4], "texture": "#19"}, - "west": {"uv": [0, 0, 1, 4], "texture": "#19"}, - "up": {"uv": [0, 0, 1, 1], "texture": "#19"}, - "down": {"uv": [0, 0, 1, 1], "texture": "#19"} - } - }, - { - "from": [9, 6, 7], - "to": [10, 11, 8], - "faces": { - "north": {"uv": [0, 0, 1, 5], "texture": "#19"}, - "east": {"uv": [0, 0, 1, 5], "texture": "#19"}, - "south": {"uv": [0, 0, 1, 5], "texture": "#19"}, - "west": {"uv": [0, 0, 1, 5], "texture": "#19"}, - "up": {"uv": [0, 0, 1, 1], "texture": "#19"}, - "down": {"uv": [0, 0, 1, 1], "texture": "#19"} - } - }, - { - "from": [11, 5, 10], - "to": [12, 9, 11], - "faces": { - "north": {"uv": [0, 0, 1, 4], "texture": "#19"}, - "east": {"uv": [0, 0, 1, 4], "texture": "#19"}, - "south": {"uv": [0, 0, 1, 4], "texture": "#19"}, - "west": {"uv": [0, 0, 1, 4], "texture": "#19"}, - "up": {"uv": [0, 0, 1, 1], "texture": "#19"}, - "down": {"uv": [0, 0, 1, 1], "texture": "#19"} + "north": {"uv": [1.5, 6, 2, 6.5], "texture": "#teeth"}, + "east": {"uv": [3.5, 7, 4, 7.5], "texture": "#teeth"}, + "south": {"uv": [6.5, 0, 7, 0.5], "texture": "#teeth"}, + "west": {"uv": [0.5, 6.5, 1, 7], "texture": "#teeth"}, + "up": {"uv": [6, 7.5, 6.5, 8], "rotation": 90, "texture": "#teeth"}, + "down": {"uv": [1, 6.5, 1.5, 7], "rotation": 270, "texture": "#teeth"} } } ], @@ -675,33 +660,28 @@ { "name": "base", "origin": [8, 8, 8], - "children": [0, 1, 2, 3, 4, 5, 6, + "children": [0, 1, 2, 3, 4, 5, { "name": "jaw1", "origin": [0, 0, 0], - "children": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17] + "children": [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16] }, { "name": "jaw2", "origin": [0, 0, 0], - "children": [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28] + "children": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27] }, { "name": "jaw3", "origin": [0, 0, 0], - "children": [29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39] + "children": [28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38] }, { "name": "jaw4", "origin": [0, 0, 0], - "children": [40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50] + "children": [39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49] } ] - }, - { - "name": "tentacles", - "origin": [0, 0, 0], - "children": [51, 52, 53, 54] } ] -} +} \ No newline at end of file diff --git a/src/main/resources/assets/biomancy/models/block/digester.json b/src/main/resources/assets/biomancy/models/block/digester.json index 048c6fb2f..7959c0246 100644 --- a/src/main/resources/assets/biomancy/models/block/digester.json +++ b/src/main/resources/assets/biomancy/models/block/digester.json @@ -1,135 +1,92 @@ { - "credit": "Made by Selea", + "credit": "Made by Selea & Modified by Elenterius", "parent": "block/block", "textures": { - "12": "biomancy:block/flesh_mouth", - "14": "biomancy:block/flesh_rough_1", - "15": "biomancy:block/flesh_rough_2", - "19": "biomancy:block/muscle", - "particle": "biomancy:block/flesh_bland" + "tendrils": "biomancy:block/flesh_tendrils", + "top": "biomancy:block/flesh_hole", + "mouth": "biomancy:block/digester_mouth", + "particle": "biomancy:block/flesh_rough_1", + "skin": "biomancy:block/flesh_rough_1" }, "elements": [ { - "from": [0, 0, 5], - "to": [16, 2, 11], - "faces": { - "north": {"uv": [0, 0, 16, 1], "texture": "#19"}, - "east": {"uv": [0, 0, 6, 1], "texture": "#19"}, - "south": {"uv": [0, 0, 16, 1], "texture": "#19"}, - "west": {"uv": [0, 0, 6, 1], "texture": "#19"}, - "up": {"uv": [0, 0, 16, 6], "texture": "#19"}, - "down": {"uv": [0, 0, 16, 6], "texture": "#19"} - } - }, - { - "from": [5, 0, 0], - "to": [11, 2, 16], - "faces": { - "north": {"uv": [0, 0, 6, 1], "texture": "#19"}, - "east": {"uv": [0, 0, 16, 1], "texture": "#19"}, - "south": {"uv": [0, 0, 6, 1], "texture": "#19"}, - "west": {"uv": [0, 0, 16, 1], "texture": "#19"}, - "up": {"uv": [0, 1, 4, 14], "texture": "#19"}, - "down": {"uv": [0, 0, 6, 16], "texture": "#19"} - } - }, - { - "from": [2, 0, 2], - "to": [14, 1, 14], + "from": [3, 5, 3], + "to": [13, 13, 13], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 9, 8]}, "faces": { - "north": {"uv": [0, 0, 12, 1], "texture": "#19"}, - "east": {"uv": [0, 0, 12, 1], "texture": "#19"}, - "south": {"uv": [0, 0, 12, 1], "texture": "#19"}, - "west": {"uv": [0, 0, 12, 1], "texture": "#19"}, - "up": {"uv": [0, 0, 16, 6], "texture": "#19"}, - "down": {"uv": [0, 0, 12, 12], "texture": "#19"} + "north": {"uv": [0, 7, 10, 15], "texture": "#skin"}, + "east": {"uv": [0, 4, 10, 12], "texture": "#skin"}, + "south": {"uv": [3, 7, 13, 15], "texture": "#skin"}, + "west": {"uv": [5, 0, 15, 8], "texture": "#skin"}, + "up": {"uv": [4, 3, 14, 13], "texture": "#skin"}, + "down": {"uv": [3, 2, 13, 12], "texture": "#skin"} } }, { - "from": [7, 1, 2], - "to": [9, 3, 14], + "from": [3, 4, 3], + "to": [13, 14, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 9, 8]}, "faces": { - "north": {"uv": [0, 0, 2, 2], "texture": "#19"}, - "east": {"uv": [0, 0, 12, 2], "texture": "#19"}, - "south": {"uv": [0, 0, 2, 2], "texture": "#19"}, - "west": {"uv": [0, 0, 12, 2], "texture": "#19"}, - "up": {"uv": [0, 0, 2, 12], "texture": "#19"}, - "down": {"uv": [0, 0, 2, 12], "texture": "#19"} + "north": {"uv": [5, 0, 15, 10], "texture": "#skin"}, + "east": {"uv": [4, 4, 14, 14], "texture": "#skin"}, + "south": {"uv": [4, 0, 14, 10], "texture": "#skin"}, + "west": {"uv": [0, 4, 10, 14], "texture": "#skin"}, + "up": {"uv": [3, 3, 13, 13], "texture": "#top"}, + "down": {"uv": [1, 0, 11, 10], "texture": "#skin"} } }, { - "from": [2, 1, 7], - "to": [14, 3, 9], + "name": "mouth", + "from": [4.94975, 14, 4.94975], + "to": [10.94975, 16, 10.94975], + "rotation": {"angle": -45, "axis": "y", "origin": [7.94975, 15, 7.94975]}, "faces": { - "north": {"uv": [0, 0, 12, 2], "texture": "#19"}, - "east": {"uv": [0, 0, 2, 2], "texture": "#19"}, - "south": {"uv": [0, 0, 12, 2], "texture": "#19"}, - "west": {"uv": [0, 0, 2, 2], "texture": "#19"}, - "up": {"uv": [0, 0, 12, 2], "texture": "#19"}, - "down": {"uv": [0, 0, 12, 2], "texture": "#19"} + "north": {"uv": [0, 6, 6, 8], "texture": "#mouth"}, + "east": {"uv": [6, 0, 12, 2], "texture": "#mouth"}, + "south": {"uv": [6, 2, 12, 4], "texture": "#mouth"}, + "west": {"uv": [6, 4, 12, 6], "texture": "#mouth"}, + "up": {"uv": [6, 6, 0, 0], "texture": "#mouth"} } }, { + "name": "base", "from": [4, 1, 4], - "to": [12, 6, 12], + "to": [12, 4, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 3.5, 8]}, "faces": { - "north": {"uv": [0, 0, 8, 5], "texture": "#14"}, - "east": {"uv": [0, 0, 8, 5], "texture": "#14"}, - "south": {"uv": [0, 0, 8, 5], "texture": "#14"}, - "west": {"uv": [0, 0, 8, 5], "texture": "#14"}, - "up": {"uv": [0, 0, 8, 8], "texture": "#14"}, - "down": {"uv": [0, 0, 8, 8], "texture": "#14"} + "north": {"uv": [6, 0, 14, 3], "texture": "#skin"}, + "east": {"uv": [1, 9, 9, 12], "texture": "#skin"}, + "south": {"uv": [5, 8, 13, 11], "texture": "#skin"}, + "west": {"uv": [3, 2, 11, 5], "texture": "#skin"}, + "down": {"uv": [7, 0, 15, 8], "texture": "#skin"} } }, { - "from": [3, 5, 3], - "to": [13, 13, 13], - "rotation": {"angle": 45, "axis": "y", "origin": [8, 4, 8]}, - "faces": { - "north": {"uv": [3, 8, 13, 14], "texture": "#15"}, - "east": {"uv": [4, 8, 12, 13.5], "texture": "#15"}, - "south": {"uv": [3, 7, 13, 13], "texture": "#15"}, - "west": {"uv": [3, 8, 13, 14], "texture": "#15"}, - "up": {"uv": [3, 6, 13, 16], "texture": "#15"}, - "down": {"uv": [0, 0, 10, 10], "texture": "#15"} - } - }, - { - "from": [3, 4, 3], - "to": [13, 14, 13], + "name": "base", + "from": [5, 0, 5], + "to": [11, 1, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 3.5, 8]}, "faces": { - "north": {"uv": [0, 0, 10, 10], "texture": "#15"}, - "east": {"uv": [0, 0, 10, 10], "texture": "#15"}, - "south": {"uv": [0, 0, 10, 10], "texture": "#15"}, - "west": {"uv": [0, 0, 10, 10], "texture": "#15"}, - "up": {"uv": [0, 0, 10, 10], "texture": "#15"}, - "down": {"uv": [0, 0, 10, 10], "texture": "#15"} + "north": {"uv": [6, 0, 12, 1], "texture": "#skin"}, + "east": {"uv": [1, 9, 7, 10], "texture": "#skin"}, + "south": {"uv": [5, 8, 11, 9], "texture": "#skin"}, + "west": {"uv": [3, 2, 9, 3], "texture": "#skin"}, + "down": {"uv": [7, 0, 13, 6], "texture": "#skin"} } }, { - "from": [7, 14, 0], - "to": [13, 16, 6], - "rotation": {"angle": -45, "axis": "y", "origin": [3, 0, 3]}, + "name": "tendrils", + "from": [0, 0.001, 0], + "to": [16, 0.001, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0.001, 8]}, "faces": { - "north": {"uv": [5, 4, 11, 6], "texture": "#12"}, - "east": {"uv": [3, 6, 5, 12], "rotation": 270, "texture": "#12"}, - "south": {"uv": [5, 12, 11, 14], "texture": "#12"}, - "west": {"uv": [12, 5, 14, 11], "rotation": 90, "texture": "#12", "cullface": "west"}, - "up": {"uv": [5, 6, 11, 12], "texture": "#12"}, - "down": {"uv": [0, 0, 6, 6], "texture": "#12"} + "north": {"uv": [0, 0, 16, 0], "texture": "#missing"}, + "east": {"uv": [0, 0, 16, 0], "texture": "#missing"}, + "south": {"uv": [0, 0, 16, 0], "texture": "#missing"}, + "west": {"uv": [0, 0, 16, 0], "texture": "#missing"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#tendrils"}, + "down": {"uv": [16, 0, 0, 16], "rotation": 180, "texture": "#tendrils", "cullface": "down"} } } - ], - "groups": [ - { - "name": "support", - "origin": [0, 0, 0], - "children": [0, 1, 2, 3, 4] - }, - { - "name": "body", - "origin": [0, 0, 0], - "children": [5, 6, 7, 8] - } ] -} +} \ No newline at end of file diff --git a/src/main/resources/assets/biomancy/models/block/meatsoup_cauldron_level1.json b/src/main/resources/assets/biomancy/models/block/meatsoup_cauldron_level1.json index 0a522ace9..4d8dc4475 100644 --- a/src/main/resources/assets/biomancy/models/block/meatsoup_cauldron_level1.json +++ b/src/main/resources/assets/biomancy/models/block/meatsoup_cauldron_level1.json @@ -1,6 +1,6 @@ { "parent": "minecraft:block/cauldron_level1", "textures": { - "water": "biomancy:block/flesh_bland" + "water": "biomancy:block/muscle" } } \ No newline at end of file diff --git a/src/main/resources/assets/biomancy/models/block/meatsoup_cauldron_level2.json b/src/main/resources/assets/biomancy/models/block/meatsoup_cauldron_level2.json index 7879b320a..403f8dd5f 100644 --- a/src/main/resources/assets/biomancy/models/block/meatsoup_cauldron_level2.json +++ b/src/main/resources/assets/biomancy/models/block/meatsoup_cauldron_level2.json @@ -1,6 +1,6 @@ { "parent": "minecraft:block/cauldron_level2", "textures": { - "water": "biomancy:block/flesh_bland" + "water": "biomancy:block/muscle" } } \ No newline at end of file diff --git a/src/main/resources/assets/biomancy/models/block/meatsoup_cauldron_level3.json b/src/main/resources/assets/biomancy/models/block/meatsoup_cauldron_level3.json index fe900dbfe..fdb9e6f05 100644 --- a/src/main/resources/assets/biomancy/models/block/meatsoup_cauldron_level3.json +++ b/src/main/resources/assets/biomancy/models/block/meatsoup_cauldron_level3.json @@ -1,6 +1,6 @@ { "parent": "minecraft:block/cauldron_level3", "textures": { - "water": "biomancy:block/flesh_bland" + "water": "biomancy:block/muscle" } } \ No newline at end of file diff --git a/src/main/resources/assets/biomancy/models/block/meatsoup_cauldron_level4.json b/src/main/resources/assets/biomancy/models/block/meatsoup_cauldron_level4.json new file mode 100644 index 000000000..fe900dbfe --- /dev/null +++ b/src/main/resources/assets/biomancy/models/block/meatsoup_cauldron_level4.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cauldron_level3", + "textures": { + "water": "biomancy:block/flesh_bland" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/biomancy/textures/block/decomposer_fluid.png b/src/main/resources/assets/biomancy/textures/block/decomposer_fluid.png new file mode 100644 index 0000000000000000000000000000000000000000..d06c5fdf73c14e37dd307b1b5d4902597758797e GIT binary patch literal 737 zcmV<70v`Q|P)(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fd zMgRZ;XGugsRCwA{lihL?M-YX-?wQ@y3fb6_jleuws$#`&22~JJ375GG6`;snUL$K; zNGL+sl6HPN7h}7^+)dBS=~Jh_k#{dHI#(GYhB`w8auUn{fvV07hLP=!Ck3S$CUS;; z>j01sZ)RNzLe*r{88Ij^C`}ugOqAuq@KpvNMkV%w^QBRWg1mcq(E$vGk-;eOby1VE z6h{h(Q8yU_j*lIS&zYPAUm10qkUwAj)TtKxVXr)W4gm8@@O8!vswT6$DV6~a#({6E zsyO-d+j$pzA!p&)bL0B5WH3F0)t5}uCT_lZh6j=T)**MfgkFn-k8fsO)g;sz2cwGX zOAs-pXE47imjQBy*ela#uv{1^-evLW*YnQ#OxCB?Z+42tuHt1|u8k&-YRMGg-=t5qWQI@qn-(sjpNMKlT-~fX@D-Q#swhALy z5(*fvEnf5g_3PJg%@_ZEWl&I1V0gB94}++vD1(ToD8ol(DTd!CE;3xZc8$TlC==Cy z*Ea_ z8S2)o0UHFf5#$QE3q?d27)`WMU9e%phW{W94<0;VaBy${YXpVE^$Qol8ugPR87veO zz+v!l-*N0-5RsK;c=PxvSR)9$dHM|OUyv6-G{}&P^OiG!0z0~|6*CM#Hfb6eFkC-( z0c@+CyDLU$BZoXnEWn}>6i_hDhj#A9a4Jp%a7hp=j^ZC;HKBNc98IGJpoSX7u>b(e WY>g2pi|EAw0000k}@P)(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fd zMgRZ-!bwCyRCwBilfh~eQ51&13u!kl#9_`T(`cP8S`&np>Bfdy5jQ@958-pTbmPLH z-DM+^3U*bnU8IW^TsU@0M~u*liG$1y^8nH^F2cQ;G*Qp$!rbpa|9|com9*LgfQX>A zMr&=)B7%sJB*|aTs`LD1QLoq0T2otD=F8_JOc|leRa;qR|HCdKg3>#kV%nuLY}^=l z@H4e;m5EUPVBkDUxll6}o+hl4R=X&}0C|?u+};{?6d!=OYc4^pZpBO^RUCgS%AJ!W z;r07B?8Wg|q;O$@C#&}emX^j`P0Zlg<_in|K0gOwwo(D$>7&QY-wX)Da6E#6Kkj$f z?Z)iIv4u^|Rw~wox^k7<)f+gTKN1iTzMdS>+}`@H!0P>nc3vuJwF?6~p8wAXM&Q<+ zyNC!;6b)x!U=iWfW|M=nE}u?MCx+Mv7J0C?hU59;4$P%IO9AK{9&&Kj9TR8-i>x;` za9x+dV1Vnoc%CO-q@H}?Ov}pbTIA5nYMXR6j7~KEgXj7 z$iZc}y#HEj`u#rhbJw|0GZxOXbo2^kxE!Yp1AOoQvasX%{22gafG)Zeaj#bZ0000< KMNUMnLSTYaegF;t literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/biomancy/textures/block/flesh_rough_0.png b/src/main/resources/assets/biomancy/textures/block/flesh_rough_0.png index f2a10a742200eba6ddd64a018c6f8b4ba88971d4..155d8b81e2a04f26548828854d6ab310078f8466 100644 GIT binary patch delta 550 zcmV+>0@?k;1OEh&WPbt$Nkl5#%7)Fm0q)-(!AKuy-a3O^e5t1KJa50%5 zI?QgEMR758Bl80^6^b3)ND0I?*BIJW15sxo_fG6Eca=rXd!OgLN$K~u9|zMkky4^g znx-@w4FGK0X1QF_Xf&{G8!078l3Jb!_UXSdrSgkV0OV-(?= z(TLjlIjvTU>o1>qnB8eOO;hUiIGgVgohqqHsh*8u{J~(LO$#A(wZq{6fa5rNkY!l_ zl#2-zd@~v`9*_CtxhHTO$4Ds&!;n&`gp~3)KuW1&D}Up@?`sd6&4xIR0SLno*L8J; z(&Fp)gX*LV7r%vKTqSt3*FE2z~)0Q8ABmX??Gy#N3J07*qoM6N<$g8nN02LJ#7 delta 360 zcmV-u0hj*&1j7T6WPbrkNkl;CMVzmL*NoWPo%hw?-@g%Cf|J&p3_| z5NMmaiGZn>bz#oJFbr8xD$^09lo(@9G){d^wS3t{xPu}DU0z&BB7^`yYmL^L)k~8v zG3_8Qk-#Ii{tf^zSLqX>N|43?0000Y`k7)FmLsDNjf3&Y%aAW%aLCPwi`RYy^z zs;MGH{-ND=o20VRMK`t+)wbkBBZek`htK%p8Vm;0*tiSVWcO~4^gKuJGw1&L+l`bG z`$3X!vxQO$04XH^pFV#=m;&82Xf>L%`?yxawrm1YN?g~a2!AusbzJ~-(?FPlUayBz z3MnPsf4Ts8o(Ba802GTw`u#o^7Z;qKoe~O#SlL*|uT<#udH_UYQTpe7JkR4aeoCQG zz_x5O0HqYIR*SR#8KF>!XFos3uT*IIbpZ1DJoS1Vuk7J0IM}w$N?`@16xv-hGzf>n zGq~Mo0`TmY=YN#E675c#WFmP2djhHd}O0)C?Y9j_G{qkbaORB7aOwBf{HPuNjZWn8HMu0^7E4 z6ZrL8S(D34gb?iP?cg{L_vHf7s9-Xg;QKz)>nVm|kjZ4Y_g#R$y)v3#uM-Z17!C#m zgF%jtj&K}@NF;(`=zP7pBH<*MV-6t%Qc5&U_rrT_B zaBu)XB9S0&$H_h_@L_)+DJ7{?ia;zDLn(z}8dz4GxMlIMP@r8qrdF#lnM?q15(!cd zvwYa!=iU2vEa#TLN!)wCN8E}tKR?gD%PDHLkV1h%jdI$gj delta 371 zcmV-(0gV3U2F?SJWPbrvNklnOZ`Tmej)&|Ewr1OP+?fDl60>#VhX z+Y;;0T>K4CH-`{#&JAX*8Gv)H1CMW1fVH+eR79w%ifo<{_kT~D0#{W9Kv5K350K|M z^|@{(hzQ<$y!Qio07;Sz=JK;7gursWY9;86d7cBXT(3Cp4+D_y@!pfov(~epUjU-( z*Z1|fKOiEQ$A=s6REY>hQ4A#j{|1K;I%%;|8EYS#t8@RwfR@3O`_|g7SA(Z2?$a96 z>@!J{mzS5+VXY-iQ-1(xyIN5c1?%-1 zfZg5Qm)tO<4{&gB&{PI6#*iclQ4}E}TwGmn{P~!@y*;e8IOiCT$K2iB6960FI-)3Q z+NdK*l1AlXv0yM5(D&YBt?iIlYe|xXIF1`7^Z6X-93sMWI;E^idivvM)dp{qsVcMC z3;^d`^B#sFX@8m$gwbTfb>|#Ol5EJ`o=mL{pjZ7)t9+T^oa-d3YR8ARva%`(@?{2q zh;*daU{!7Y>N5;OR(|z5g(!*|A`$6Gu46Wvp{hJTKLfn%fwi_{Ub}i*)zQZf;2ec7 z&|F^#+I=5=iUG*4q~i-fzRa-J5(ELh@btHPYxiG+MRtTZjyrw~&5)p8O%Y)<8a1mv0roo8eoom%{%3K4n=ppvh#y!{a0Ox3`?1pEqU$6h%S*Y5j!v z9)Eg@=KsA2UtJdw27>{bD>k$gMbX?fSN;tEY)UTa4oX1p00000NkvXXu0mjf3KaDU delta 379 zcmV->0fhe81lI$QWq(~sL_t(|+I*5dQo}G1g+F_81U3bTpB7aJIwo~aKm`?W7LLO( zbhOMcwCYql&W0k&9ZZo~Biq1s+MlQQ-forO-aCMUqeFI^FLKTRhzI~FB>=ql0DT?c z<@K4`9=pxgV6bc)=YDDxl`$v>0Ah?d=TKFewqbF-KtvD`Qh!RQDqYv@8H|SkoOAup zC1}ZLwO;K3#*LPXF%m*xalJrQSuU5PlzMgmv)}aEJA^>a8Sg#b``*x!U43xuCa%XA z2Xx1qF?Iko6}>T~e*4{G3}O=MU8?}7>SUl?-*|<+1WOvCs-mhB$`;=H0pQFUO09n# zRL+_6%L_<}k95zE=@vwU^Q*AG%vMP$O@Mdn4I;wX$r(-CFq@v|kA53gRYC{@Kb&(k zZ9`o)&FAxe8zsotNb?Aww#M7Xd$!x{plA|qA0H5rep6;RK=pKU*YQuB9-p#Wul}rm Z4*-=g^dXYb?Op%?002ovPDHLkV1lD&u%iF~ diff --git a/src/main/resources/assets/biomancy/textures/block/flesh_tendrils.png b/src/main/resources/assets/biomancy/textures/block/flesh_tendrils.png new file mode 100644 index 0000000000000000000000000000000000000000..b5d65492ad7a6c4c2f7ceae1df4df715d85ff582 GIT binary patch literal 545 zcmV++0^a?JP)(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fd zMgRZ-r%6OXRCwB?k}q%DKp2OgmpHHmxuCqLQl+^Y$rMz{3Ogy%LI$@FP};9hX|$zf zBc&w+lT3puRZ78B7X_WcWDm5^A#Xu_Zk&$w;OX?-@1K|%?>Vv!SYBLO2mwI8o&Vrp zzBE9FJ_F$4>e>ML@crvs!1ChK(ln(g3L<1P9#~Q~0HUhqoD+aIfS>1QmXrR^ubv2v>ZXgi9L|nk6vXs5BLJhl z{T?WUfcM^pK9dMwZ504X*{~T8NXo``0HUh2>hRt(^jTlQPIc^9AhywFAsrwNq^|4E zN~=Idd;3;BJ<8{gp9mpXs}5BqJ3WyI0HCgGTU#Zu5kOjHrm8sSxT)@?t^75EhpTJi z?{Q$Q400000NkvXXu0mjf3VY~> literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/biomancy/textures/block/nutrients.png b/src/main/resources/assets/biomancy/textures/block/nutrients.png deleted file mode 100644 index 62b673651a764190e0062d833007fffc5c8b1a96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71467 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 diff --git a/src/main/resources/assets/biomancy/textures/entity/flesh_blob.psd b/src/main/resources/assets/biomancy/textures/entity/flesh_blob.psd new file mode 100644 index 0000000000000000000000000000000000000000..83a6c924ff8f280458075e16b3526dcc67172cbe GIT binary patch literal 27782 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 Q&;S4c07*qoM6N<$f)Njj2><{9 diff --git a/src/main/resources/assets/biomancy/textures/item/stomach.png b/src/main/resources/assets/biomancy/textures/item/stomach.png index 2721335b1cfec29353709cf1811d9bc8d9184dbf..ea64f10b16255194eeee6f453cc3517cea0602dc 100644 GIT binary patch delta 311 zcmeyvJeheyYQ3bVi(^Q|t)xHy|JyUGHgtyYzOFs|Z~b@P-~Q7WK}_$=Ov9R=?v30R z7`g3kUucowY&-a<#big?-47gW&eG~^wes~~nvJdP{|Ue2Sq^WSB6+f#7X5o&{lj2` zO)YEShlj?8PnYW_vQxSY_;i<>%~V$R58Ij&&L8}n zUq0O}t}*LqtBM2&x+ zk@p&IbNk5K8QbP0l+XkK D_V$ed delta 417 zcmV;S0bc%-1N;M!Wq*Q6L_t(|+N6_BOB-k7%W`2Y4U!L#fz)h0Sb+AE~dBn2IwR8l!xYNBTAX zXmt`(aR79;@-hcnPTX>evAL6M(*qw&R{;dOto=G`6Q21Dz-GY1*lc7DEvBN zVKJ$~yE`-=O*HgQIfYXI=Gp;-<1^^~00f7;+snEYm100000 LNkvXXu0mjfKe53| From 18f9d2dfbe6c65d11b3ef4a43228aab9c57c6dec Mon Sep 17 00:00:00 2001 From: Elenterius Date: Sun, 27 Jun 2021 19:06:14 +0200 Subject: [PATCH 20/24] updated Digester & Decomposer voxel shape --- .../biomancy/block/DecomposerBlock.java | 58 +++++++++++-------- .../biomancy/block/DigesterBlock.java | 56 +++++++++++------- .../biomancy/init/ClientSetupHandler.java | 3 + 3 files changed, 73 insertions(+), 44 deletions(-) diff --git a/src/main/java/com/github/elenterius/biomancy/block/DecomposerBlock.java b/src/main/java/com/github/elenterius/biomancy/block/DecomposerBlock.java index 1441cbd98..eba14e865 100644 --- a/src/main/java/com/github/elenterius/biomancy/block/DecomposerBlock.java +++ b/src/main/java/com/github/elenterius/biomancy/block/DecomposerBlock.java @@ -4,14 +4,15 @@ import com.github.elenterius.biomancy.tileentity.state.DecomposerStateData; import com.github.elenterius.biomancy.util.ClientTextUtil; import com.github.elenterius.biomancy.util.TextUtil; -import com.github.elenterius.biomancy.util.VoxelShapeUtil; +import net.minecraft.block.Block; import net.minecraft.block.BlockRenderType; import net.minecraft.block.BlockState; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.Direction; -import net.minecraft.util.math.AxisAlignedBB; +import net.minecraft.particles.ParticleTypes; +import net.minecraft.util.SoundCategory; +import net.minecraft.util.SoundEvents; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.shapes.IBooleanFunction; import net.minecraft.util.math.shapes.ISelectionContext; @@ -19,30 +20,31 @@ import net.minecraft.util.math.shapes.VoxelShapes; import net.minecraft.util.text.ITextComponent; import net.minecraft.world.IBlockReader; +import net.minecraft.world.World; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import javax.annotation.Nullable; import java.text.DecimalFormat; import java.util.List; +import java.util.Random; import java.util.stream.Stream; public class DecomposerBlock extends MachineBlock { - public static final VoxelShape NORTH_SHAPE = createVoxelShape(Direction.NORTH); - public static final VoxelShape SOUTH_SHAPE = createVoxelShape(Direction.SOUTH); - public static final VoxelShape EAST_SHAPE = createVoxelShape(Direction.EAST); - public static final VoxelShape WEST_SHAPE = createVoxelShape(Direction.WEST); + public static final VoxelShape SHAPE = createVoxelShape(); public DecomposerBlock(Properties builder) { super(builder); } - private static VoxelShape createVoxelShape(Direction direction) { - AxisAlignedBB aabb0 = VoxelShapeUtil.createUnitAABB(0, 0, 3, 16, 14, 16); - AxisAlignedBB aabb1 = VoxelShapeUtil.createUnitAABB(4, 14, 4, 12, 16, 12); - AxisAlignedBB aabb2 = VoxelShapeUtil.createUnitAABB(3, 1, 0, 13, 10, 3); - return Stream.of(VoxelShapeUtil.createWithFacing(direction, aabb0), VoxelShapeUtil.createWithFacing(direction, aabb1), VoxelShapeUtil.createWithFacing(direction, aabb2)).reduce((v1, v2) -> VoxelShapes.combineAndSimplify(v1, v2, IBooleanFunction.OR)).get(); + private static VoxelShape createVoxelShape() { + return Stream.of( + Block.makeCuboidShape(1, 0, 1, 15, 1, 15), + Block.makeCuboidShape(0, 1, 0, 16, 10, 16), + Block.makeCuboidShape(1, 10, 1, 15, 12, 15), + Block.makeCuboidShape(2, 12, 2, 14, 16, 14) + ).reduce((v1, v2) -> VoxelShapes.combineAndSimplify(v1, v2, IBooleanFunction.OR)).get(); } @Nullable @@ -72,17 +74,27 @@ public BlockRenderType getRenderType(BlockState state) { @Override public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) { - Direction facing = state.get(FACING); - switch (facing) { - case NORTH: - return NORTH_SHAPE; - case SOUTH: - return SOUTH_SHAPE; - case WEST: - return WEST_SHAPE; - case EAST: - return EAST_SHAPE; + return SHAPE; + } + + @Override + @OnlyIn(Dist.CLIENT) + public void animateTick(BlockState stateIn, World worldIn, BlockPos pos, Random rand) { + if (rand.nextInt(4) == 0) { + boolean isCrafting = stateIn.get(CRAFTING); + if (isCrafting) { + int n = rand.nextInt(5); + int color = 0xc7b15d; + double r = (double) (color >> 16 & 255) / 255d; + double g = (double) (color >> 8 & 255) / 255d; + double b = (double) (color & 255) / 255d; + for (int i = 0; i < n; i++) { + worldIn.addParticle(ParticleTypes.ENTITY_EFFECT, pos.getX() + 0.2d + rand.nextFloat() - 0.2d, pos.getY() + 0.3d, pos.getZ() + 0.2d + rand.nextFloat() - 0.2d, r, g, b); + } + if (n > 0 && rand.nextInt(3) == 0) { + worldIn.playSound(pos.getX(), pos.getY(), pos.getZ(), SoundEvents.ENTITY_TROPICAL_FISH_FLOP, SoundCategory.BLOCKS, 0.2f + rand.nextFloat() * 0.2f, 0.9f + rand.nextFloat() * 0.15f, false); + } + } } - return VoxelShapes.fullCube(); } } diff --git a/src/main/java/com/github/elenterius/biomancy/block/DigesterBlock.java b/src/main/java/com/github/elenterius/biomancy/block/DigesterBlock.java index 25dc42835..9e074d81a 100644 --- a/src/main/java/com/github/elenterius/biomancy/block/DigesterBlock.java +++ b/src/main/java/com/github/elenterius/biomancy/block/DigesterBlock.java @@ -3,14 +3,15 @@ import com.github.elenterius.biomancy.tileentity.DigesterTileEntity; import com.github.elenterius.biomancy.tileentity.state.DigesterStateData; import com.github.elenterius.biomancy.util.ClientTextUtil; -import com.github.elenterius.biomancy.util.VoxelShapeUtil; +import net.minecraft.block.Block; import net.minecraft.block.BlockRenderType; import net.minecraft.block.BlockState; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.util.Direction; -import net.minecraft.util.math.AxisAlignedBB; +import net.minecraft.util.SoundCategory; +import net.minecraft.util.SoundEvents; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.shapes.IBooleanFunction; import net.minecraft.util.math.shapes.ISelectionContext; @@ -19,30 +20,30 @@ import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.TranslationTextComponent; import net.minecraft.world.IBlockReader; +import net.minecraft.world.World; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import javax.annotation.Nullable; import java.text.DecimalFormat; import java.util.List; +import java.util.Random; import java.util.stream.Stream; public class DigesterBlock extends MachineBlock { - public static final VoxelShape NORTH_SHAPE = createVoxelShape(Direction.NORTH); - public static final VoxelShape SOUTH_SHAPE = createVoxelShape(Direction.SOUTH); - public static final VoxelShape EAST_SHAPE = createVoxelShape(Direction.EAST); - public static final VoxelShape WEST_SHAPE = createVoxelShape(Direction.WEST); + public static final VoxelShape UP_SHAPE = createVoxelShape(Direction.UP); public DigesterBlock(Properties builder) { super(builder); } private static VoxelShape createVoxelShape(Direction direction) { - AxisAlignedBB aabb0 = VoxelShapeUtil.createUnitAABB(0, 0, 3, 16, 14, 16); - AxisAlignedBB aabb1 = VoxelShapeUtil.createUnitAABB(4, 14, 4, 12, 16, 12); - AxisAlignedBB aabb2 = VoxelShapeUtil.createUnitAABB(3, 1, 0, 13, 10, 3); - return Stream.of(VoxelShapeUtil.createWithFacing(direction, aabb0), VoxelShapeUtil.createWithFacing(direction, aabb1), VoxelShapeUtil.createWithFacing(direction, aabb2)).reduce((v1, v2) -> VoxelShapes.combineAndSimplify(v1, v2, IBooleanFunction.OR)).get(); + return Stream.of( + Block.makeCuboidShape(4.5, 14, 4.5, 11.5, 16, 11.5), + Block.makeCuboidShape(4, 0, 4, 12, 4, 12), + Block.makeCuboidShape(3, 4, 3, 13, 14, 13) + ).reduce((v1, v2) -> VoxelShapes.combineAndSimplify(v1, v2, IBooleanFunction.OR)).get(); } @Nullable @@ -74,17 +75,30 @@ public BlockRenderType getRenderType(BlockState state) { @Override public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) { - Direction facing = state.get(FACING); - switch (facing) { - case NORTH: - return NORTH_SHAPE; - case SOUTH: - return SOUTH_SHAPE; - case WEST: - return WEST_SHAPE; - case EAST: - return EAST_SHAPE; + return UP_SHAPE; +// Direction facing = state.get(FACING); +// switch (facing) { +// case NORTH: +// return NORTH_SHAPE; +// case SOUTH: +// return SOUTH_SHAPE; +// case WEST: +// return WEST_SHAPE; +// case EAST: +// return EAST_SHAPE; +// } +// return VoxelShapes.fullCube(); + } + + @Override + @OnlyIn(Dist.CLIENT) + public void animateTick(BlockState stateIn, World worldIn, BlockPos pos, Random rand) { + if (worldIn.getGameTime() % 10L == 0 && rand.nextInt(2) == 0) { + boolean isCrafting = stateIn.get(CRAFTING); + if (isCrafting) { + worldIn.playSound(pos.getX(), pos.getY(), pos.getZ(), SoundEvents.ENTITY_PLAYER_BURP, SoundCategory.BLOCKS, 0.3f + rand.nextFloat() * 0.2f, 0.75f + rand.nextFloat() * 0.5f, false); + } } - return VoxelShapes.fullCube(); } + } diff --git a/src/main/java/com/github/elenterius/biomancy/init/ClientSetupHandler.java b/src/main/java/com/github/elenterius/biomancy/init/ClientSetupHandler.java index 03e43c102..a6e679d80 100644 --- a/src/main/java/com/github/elenterius/biomancy/init/ClientSetupHandler.java +++ b/src/main/java/com/github/elenterius/biomancy/init/ClientSetupHandler.java @@ -86,6 +86,9 @@ public static void onClientSetup(FMLClientSetupEvent event) { RenderTypeLookup.setRenderLayer(ModBlocks.FLESHBORN_TRAPDOOR.get(), RenderType.getCutout()); RenderTypeLookup.setRenderLayer(ModBlocks.EVOLUTION_POOL.get(), RenderType.getTranslucent()); + RenderTypeLookup.setRenderLayer(ModBlocks.DECOMPOSER.get(), RenderType.getTranslucent()); + RenderTypeLookup.setRenderLayer(ModBlocks.DIGESTER.get(), RenderType.getCutout()); + RenderTypeLookup.setRenderLayer(ModBlocks.CHEWER.get(), RenderType.getCutout()); // RenderTypeLookup.setRenderLayer(ModBlocks.LUMINOUS_SOIL.get(), renderType -> renderType == RenderType.getCutout() || renderType == RenderType.getTranslucent()); // RenderTypeLookup.setRenderLayer(ModBlocks.BLIGHT_PUSTULE_SMALL.get(), RenderType.getCutout()); From 3dc26d79f93c745b1bb10f3f0c5f4ea6905f644c Mon Sep 17 00:00:00 2001 From: Elenterius Date: Sun, 27 Jun 2021 19:09:37 +0200 Subject: [PATCH 21/24] refactored gun tooltip --- .../weapon/shootable/ProjectileWeaponItem.java | 18 ++++++++++++------ .../mixin/client/PlayerRendererMixin.java | 3 ++- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/github/elenterius/biomancy/item/weapon/shootable/ProjectileWeaponItem.java b/src/main/java/com/github/elenterius/biomancy/item/weapon/shootable/ProjectileWeaponItem.java index 34e005b6d..eeaad3ad7 100644 --- a/src/main/java/com/github/elenterius/biomancy/item/weapon/shootable/ProjectileWeaponItem.java +++ b/src/main/java/com/github/elenterius/biomancy/item/weapon/shootable/ProjectileWeaponItem.java @@ -21,6 +21,7 @@ import net.minecraft.nbt.CompoundNBT; import net.minecraft.util.*; import net.minecraft.util.math.MathHelper; +import net.minecraft.util.text.IFormattableTextComponent; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.StringTextComponent; import net.minecraft.util.text.TextFormatting; @@ -68,16 +69,21 @@ public void addInformation(ItemStack stack, @Nullable World worldIn, List onClientKeyPress(ItemStack stack, ClientWorld world, PlayerEntity player, byte flags) { @@ -110,7 +116,7 @@ public int getUseDuration(ItemStack stack) { @Override public UseAction getUseAction(ItemStack stack) { - return UseAction.BOW; + return UseAction.NONE; } @Override diff --git a/src/main/java/com/github/elenterius/biomancy/mixin/client/PlayerRendererMixin.java b/src/main/java/com/github/elenterius/biomancy/mixin/client/PlayerRendererMixin.java index 96d1655e2..171b95e83 100644 --- a/src/main/java/com/github/elenterius/biomancy/mixin/client/PlayerRendererMixin.java +++ b/src/main/java/com/github/elenterius/biomancy/mixin/client/PlayerRendererMixin.java @@ -6,9 +6,10 @@ @Mixin(PlayerRenderer.class) public abstract class PlayerRendererMixin { + //TODO: this will probably also break with optifine // @Inject(method = "func_241741_a_", cancellable = true, locals = LocalCapture.CAPTURE_FAILSOFT, at = @At(value = "FIELD", target = "Lnet/minecraft/client/renderer/entity/model/BipedModel$ArmPose;ITEM:Lnet/minecraft/client/renderer/entity/model/BipedModel$ArmPose;")) // private static void biomancy_onGetArmPose(AbstractClientPlayerEntity player, Hand hand, CallbackInfoReturnable cir, ItemStack itemstack) { -// if (!player.isSwingInProgress && itemstack.getItem() == ModItems.INFESTED_RIFLE.get() && ModItems.INFESTED_RIFLE.get().hasAmmo(itemstack)) { +// if (!player.isSwingInProgress && itemstack.getItem() instanceof ProjectileWeaponItem && ((ProjectileWeaponItem) itemstack.getItem()).hasAmmo(itemstack)) { // cir.setReturnValue(BipedModel.ArmPose.CROSSBOW_HOLD); // } // } From 50863d97604d260c87181aa2eb32f54deab0facc Mon Sep 17 00:00:00 2001 From: Elenterius Date: Sun, 27 Jun 2021 20:32:32 +0200 Subject: [PATCH 22/24] bump version --- README.md | 2 +- gradle.properties | 2 +- media/digester_and_decomposer.png | Bin 0 -> 130525 bytes scripts/biomancy_production_digraph.gml | 4446 ++++------------- scripts/biomancy_production_digraph_twopi.pdf | Bin 393476 -> 243917 bytes src/main/resources/META-INF/mods.toml | 6 +- 6 files changed, 1099 insertions(+), 3357 deletions(-) create mode 100644 media/digester_and_decomposer.png diff --git a/README.md b/README.md index ea9a8b52a..067c4cd9d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ Biomancy -[![Biomancy Version](https://img.shields.io/badge/Biomancy-1.0.0--beta.2-yellow)](https://github.com/Elenterius/Biomancy) +[![Biomancy Version](https://img.shields.io/badge/Biomancy-1.0.0--beta.3-yellow)](https://github.com/Elenterius/Biomancy) [![Forge Version](https://img.shields.io/badge/Minecraft%20Forge-1.16.5--36.1.4-orange)](https://files.minecraftforge.net/maven/net/minecraftforge/forge/index_1.16.5.html) Biomancy is a Biopunk inspired Mod and themed around flesh magic and bio-manipulation. diff --git a/gradle.properties b/gradle.properties index 719ab5dab..44657297b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,4 +4,4 @@ org.gradle.jvmargs=-Xmx3G org.gradle.daemon=false mc_version=1.16.5 forge_version=36.1.4 -mod_version=1.0.0-beta.2 +mod_version=1.0.0-beta.3 diff --git a/media/digester_and_decomposer.png b/media/digester_and_decomposer.png new file mode 100644 index 0000000000000000000000000000000000000000..2dc93bea068a695a439ee29c64d109a92e22c424 GIT binary patch literal 130525 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 literal 0 HcmV?d00001 diff --git a/scripts/biomancy_production_digraph.gml b/scripts/biomancy_production_digraph.gml index 1ec1e53cc..fff92e391 100644 --- a/scripts/biomancy_production_digraph.gml +++ b/scripts/biomancy_production_digraph.gml @@ -30,7 +30,7 @@ graph [ ] node [ id 7 - label "bolus_from_mc_acacia_leaves_chewing" + label "bolus_from_average_biomass_chewing" ] node [ id 8 @@ -38,4857 +38,2599 @@ graph [ ] node [ id 9 - label "minecraft_acacia_leaves" + label "tag=biomancy_average_biomass" ] node [ id 10 - label "bolus_from_mc_acacia_sapling_chewing" + label "bolus_from_good_biomass_chewing" ] node [ id 11 - label "minecraft_acacia_sapling" + label "tag=biomancy_good_biomass" ] node [ id 12 - label "bolus_from_mc_allium_chewing" + label "bolus_from_poor_biomass_chewing" ] node [ id 13 - label "minecraft_allium" + label "tag=biomancy_poor_biomass" ] node [ id 14 - label "bolus_from_mc_apple_chewing" + label "bolus_from_superb_biomass_chewing" ] node [ id 15 - label "minecraft_apple" + label "tag=biomancy_superb_biomass" ] node [ id 16 - label "bolus_from_mc_azure_bluet_chewing" + label "cobblestone_from_stone_chewing" ] node [ id 17 - label "minecraft_azure_bluet" + label "minecraft_cobblestone" ] node [ id 18 - label "bolus_from_mc_baked_potato_chewing" + label "minecraft_stone" ] node [ id 19 - label "minecraft_baked_potato" + label "enchanted_book_attuned_bane_1_evolution_pool" ] node [ id 20 - label "bolus_from_mc_beetroot_chewing" + label "minecraft_enchanted_book" ] node [ id 21 - label "minecraft_beetroot" + label "tag=biomancy_stomachs" ] node [ id 22 - label "bolus_from_mc_beetroot_seeds_chewing" + label "biomancy_eroding_bile" ] node [ id 23 - label "minecraft_beetroot_seeds" + label "biomancy_rejuvenating_mucus" ] node [ id 24 - label "bolus_from_mc_birch_leaves_chewing" + label "enchanted_book_attuned_bane_2_evolution_pool" ] node [ id 25 - label "minecraft_birch_leaves" + label "enchanted_book_attuned_bane_3_evolution_pool" ] node [ id 26 - label "bolus_from_mc_birch_sapling_chewing" + label "enchanted_book_attuned_bane_4_evolution_pool" ] node [ id 27 - label "minecraft_birch_sapling" + label "enchanted_book_attuned_bane_5_evolution_pool" ] node [ id 28 - label "bolus_from_mc_blue_orchid_chewing" + label "entity_storage_evolution_pool" ] node [ id 29 - label "minecraft_blue_orchid" + label "biomancy_entity_storage" ] node [ id 30 - label "bolus_from_mc_bread_chewing" + label "minecraft_egg" ] node [ id 31 - label "minecraft_bread" + label "minecraft_ender_chest" ] node [ id 32 - label "bolus_from_mc_brown_mushroom_block_chewing" + label "eroding_bile_decomposing" ] node [ id 33 - label "minecraft_brown_mushroom_block" + label "biomancy_flesh_lump" ] node [ id 34 - label "bolus_from_mc_brown_mushroom_chewing" + label "minecraft_rotten_flesh" ] node [ id 35 - label "minecraft_brown_mushroom" + label "fleshborn_axe_evolution_pool" ] node [ id 36 - label "bolus_from_mc_cactus_chewing" + label "biomancy_fleshborn_axe" ] node [ id 37 - label "minecraft_cactus" + label "minecraft_iron_axe" ] node [ id 38 - label "bolus_from_mc_cake_chewing" + label "minecraft_bone" ] node [ id 39 - label "minecraft_cake" + label "fleshborn_chest_evolution_pool" ] node [ id 40 - label "bolus_from_mc_carrot_chewing" + label "biomancy_fleshborn_chest" ] node [ id 41 - label "minecraft_carrot" + label "minecraft_chest" ] node [ id 42 - label "bolus_from_mc_carved_pumpkin_chewing" + label "fleshborn_door_evolution_pool" ] node [ id 43 - label "minecraft_carved_pumpkin" + label "biomancy_fleshborn_door" ] node [ id 44 - label "bolus_from_mc_cocoa_beans_chewing" + label "minecraft_iron_door" ] node [ id 45 - label "minecraft_cocoa_beans" + label "fleshborn_guan_dao_evolution_pool" ] node [ id 46 - label "bolus_from_mc_cookie_chewing" + label "biomancy_fleshborn_guan_dao" ] node [ id 47 - label "minecraft_cookie" + label "biomancy_oculus" ] node [ id 48 - label "bolus_from_mc_cornflower_chewing" + label "minecraft_diamond_sword" ] node [ id 49 - label "minecraft_cornflower" + label "minecraft_diamond_axe" ] node [ id 50 - label "bolus_from_mc_crimson_fungus_chewing" + label "fleshborn_pickaxe_evolution_pool" ] node [ id 51 - label "minecraft_crimson_fungus" + label "biomancy_fleshborn_pickaxe" ] node [ id 52 - label "bolus_from_mc_crimson_roots_chewing" + label "minecraft_iron_pickaxe" ] node [ id 53 - label "minecraft_crimson_roots" + label "fleshborn_pressure_plate_evolution_pool" ] node [ id 54 - label "bolus_from_mc_dandelion_chewing" + label "biomancy_fleshborn_pressure_plate" ] node [ id 55 - label "minecraft_dandelion" + label "minecraft_heavy_weighted_pressure_plate" ] node [ id 56 - label "bolus_from_mc_dark_oak_leaves_chewing" + label "fleshborn_shovel_evolution_pool" ] node [ id 57 - label "minecraft_dark_oak_leaves" + label "biomancy_fleshborn_shovel" ] node [ id 58 - label "bolus_from_mc_dark_oak_sapling_chewing" + label "minecraft_iron_shovel" ] node [ id 59 - label "minecraft_dark_oak_sapling" + label "fleshborn_trapdoor_evolution_pool" ] node [ id 60 - label "bolus_from_mc_dried_kelp_block_chewing" + label "biomancy_fleshborn_trapdoor" ] node [ id 61 - label "minecraft_dried_kelp_block" + label "minecraft_iron_trapdoor" ] node [ id 62 - label "bolus_from_mc_dried_kelp_chewing" + label "fleshborn_war_axe_evolution_pool" ] node [ id 63 - label "minecraft_dried_kelp" + label "biomancy_fleshborn_war_axe" ] node [ id 64 - label "bolus_from_mc_fern_chewing" + label "flesh_lump_decomposing" ] node [ id 65 - label "minecraft_fern" + label "biomancy_mutagenic_bile" ] node [ id 66 - label "bolus_from_mc_grass_chewing" + label "minecraft_chicken" ] node [ id 67 - label "minecraft_grass" + label "flesh_lump_from_raw_meat_decomposing" ] node [ id 68 - label "bolus_from_mc_hay_block_chewing" + label "biomancy_skin_chunk" ] node [ id 69 - label "minecraft_hay_block" + label "biomancy_bone_scraps" ] node [ id 70 - label "bolus_from_mc_jungle_leaves_chewing" + label "tag=biomancy_raw_meats" ] node [ id 71 - label "minecraft_jungle_leaves" + label "gold_nugget_evolution_pool" ] node [ id 72 - label "bolus_from_mc_jungle_sapling_chewing" + label "minecraft_gold_nugget" ] node [ id 73 - label "minecraft_jungle_sapling" + label "gravel_from_cobblestone_chewing" ] node [ id 74 - label "bolus_from_mc_kelp_chewing" + label "minecraft_gravel" ] node [ id 75 - label "minecraft_kelp" + label "gulge_evolution_pool" ] node [ id 76 - label "bolus_from_mc_large_fern_chewing" + label "biomancy_gulge" ] node [ id 77 - label "minecraft_large_fern" + label "hormone_bile_0_decomposing" ] node [ id 78 - label "bolus_from_mc_lilac_chewing" + label "minecraft_ink_sac" ] node [ id 79 - label "minecraft_lilac" + label "hormone_bile_1_decomposing" ] node [ id 80 - label "bolus_from_mc_lily_of_the_valley_chewing" + label "minecraft_rabbit_foot" ] node [ id 81 - label "minecraft_lily_of_the_valley" + label "hormone_bile_2_decomposing" ] node [ id 82 - label "bolus_from_mc_lily_pad_chewing" + label "minecraft_ghast_tear" ] node [ id 83 - label "minecraft_lily_pad" + label "hormone_bile_3_decomposing" ] node [ id 84 - label "bolus_from_mc_melon_chewing" + label "minecraft_spider_eye" ] node [ id 85 - label "minecraft_melon" + label "hormone_bile_4_decomposing" ] node [ id 86 - label "bolus_from_mc_melon_seeds_chewing" + label "minecraft_fermented_spider_eye" ] node [ id 87 - label "minecraft_melon_seeds" + label "hormone_bile_5_decomposing" ] node [ id 88 - label "bolus_from_mc_melon_slice_chewing" + label "minecraft_honeycomb" ] node [ id 89 - label "minecraft_melon_slice" + label "hormone_bile_6_decomposing" ] node [ id 90 - label "bolus_from_mc_mushroom_stem_chewing" + label "minecraft_slime_ball" ] node [ id 91 - label "minecraft_mushroom_stem" + label "iron_nugget_evolution_pool" ] node [ id 92 - label "bolus_from_mc_nether_sprouts_chewing" + label "minecraft_iron_nugget" ] node [ id 93 - label "minecraft_nether_sprouts" + label "keratin_filaments_0_decomposing" ] node [ id 94 - label "bolus_from_mc_nether_wart_block_chewing" + label "minecraft_scute" ] node [ id 95 - label "minecraft_nether_wart_block" + label "keratin_filaments_1_decomposing" ] node [ id 96 - label "bolus_from_mc_nether_wart_chewing" + label "tag=forge_leather" ] node [ id 97 - label "minecraft_nether_wart" + label "keratin_filaments_2_decomposing" ] node [ id 98 - label "bolus_from_mc_oak_leaves_chewing" + label "minecraft_rabbit_hide" ] node [ id 99 - label "minecraft_oak_leaves" + label "keratin_filaments_3_decomposing" ] node [ id 100 - label "bolus_from_mc_oak_sapling_chewing" + label "tag=forge_feathers" ] node [ id 101 - label "minecraft_oak_sapling" + label "keratin_filaments_4_decomposing" ] node [ id 102 - label "bolus_from_mc_orange_tulip_chewing" + label "tag=forge_string" ] node [ id 103 - label "minecraft_orange_tulip" + label "keratin_filaments_5_decomposing" ] node [ id 104 - label "bolus_from_mc_oxeye_daisy_chewing" + label "tag=minecraft_wool" ] node [ id 105 - label "minecraft_oxeye_daisy" + label "keratin_filaments_6_decomposing" ] node [ id 106 - label "bolus_from_mc_peony_chewing" + label "tag=minecraft_carpets" ] node [ id 107 - label "minecraft_peony" + label "keratin_filaments_7_decomposing" ] node [ id 108 - label "bolus_from_mc_pink_tulip_chewing" + label "minecraft_lead" ] node [ id 109 - label "minecraft_pink_tulip" + label "keratin_filaments_8_decomposing" ] node [ id 110 - label "bolus_from_mc_poppy_chewing" + label "minecraft_phantom_membrane" ] node [ id 111 - label "minecraft_poppy" + label "keratin_filaments_9_decomposing" ] node [ id 112 - label "bolus_from_mc_potato_chewing" + label "minecraft_prismarine_shard" ] node [ id 113 - label "minecraft_potato" + label "leech_claw_evolution_pool" ] node [ id 114 - label "bolus_from_mc_pumpkin_chewing" + label "biomancy_leech_claw" ] node [ id 115 - label "minecraft_pumpkin" + label "biomancy_injection_device" ] node [ id 116 - label "bolus_from_mc_pumpkin_pie_chewing" + label "long_range_claw_evolution_pool" ] node [ id 117 - label "minecraft_pumpkin_pie" + label "biomancy_long_range_claw" ] node [ id 118 - label "bolus_from_mc_pumpkin_seeds_chewing" + label "biomancy_sharp_bone" ] node [ id 119 - label "minecraft_pumpkin_seeds" + label "mutagenic_bile_0_decomposing" ] node [ id 120 - label "bolus_from_mc_red_mushroom_block_chewing" + label "biomancy_digestate" ] node [ id 121 - label "minecraft_red_mushroom_block" + label "minecraft_warped_fungus" ] node [ id 122 - label "bolus_from_mc_red_mushroom_chewing" + label "mutagenic_bile_1_decomposing" ] node [ id 123 - label "minecraft_red_mushroom" + label "minecraft_warped_wart_block" ] node [ id 124 - label "bolus_from_mc_red_tulip_chewing" + label "mutagenic_bile_2_decomposing" ] node [ id 125 - label "minecraft_red_tulip" + label "minecraft_warped_roots" ] node [ id 126 - label "bolus_from_mc_rose_bush_chewing" + label "nutrient_paste_from_average_biomass_digesting" ] node [ id 127 - label "minecraft_rose_bush" + label "biomancy_nutrient_paste" ] node [ id 128 - label "bolus_from_mc_seagrass_chewing" + label "nutrient_paste_from_bolus_digesting" ] node [ id 129 - label "minecraft_seagrass" + label "nutrient_paste_from_cooked_meat_digesting" ] node [ id 130 - label "bolus_from_mc_sea_pickle_chewing" + label "tag=biomancy_cooked_meats" ] node [ id 131 - label "minecraft_sea_pickle" + label "nutrient_paste_from_good_biomass_digesting" ] node [ id 132 - label "bolus_from_mc_shroomlight_chewing" + label "nutrient_paste_from_poor_biomass_digesting" ] node [ id 133 - label "minecraft_shroomlight" + label "nutrient_paste_from_raw_meat_digesting" ] node [ id 134 - label "bolus_from_mc_spruce_leaves_chewing" + label "nutrient_paste_from_superb_biomass_digesting" ] node [ id 135 - label "minecraft_spruce_leaves" + label "oxide_powder_0_decomposing" ] node [ id 136 - label "bolus_from_mc_spruce_sapling_chewing" + label "tag=forge_eggs" ] node [ id 137 - label "minecraft_spruce_sapling" + label "oxide_powder_1_decomposing" ] node [ id 138 - label "bolus_from_mc_sugar_cane_chewing" + label "minecraft_turtle_egg" ] node [ id 139 - label "minecraft_sugar_cane" + label "oxide_powder_2_decomposing" ] node [ id 140 - label "bolus_from_mc_sunflower_chewing" + label "tag=forge_bones" ] node [ id 141 - label "minecraft_sunflower" + label "oxide_powder_3_decomposing" ] node [ id 142 - label "bolus_from_mc_sweet_berries_chewing" + label "minecraft_bone_meal" ] node [ id 143 - label "minecraft_sweet_berries" + label "oxide_powder_from_gold_ingot_chewing" ] node [ id 144 - label "bolus_from_mc_tall_grass_chewing" + label "tag=forge_ingots/gold" ] node [ id 145 - label "minecraft_tall_grass" + label "oxide_powder_from_gold_nugget_chewing" ] node [ id 146 - label "bolus_from_mc_twisting_vines_chewing" + label "tag=forge_nuggets/gold" ] node [ id 147 - label "minecraft_twisting_vines" + label "oxide_powder_from_iron_ingot_chewing" ] node [ id 148 - label "bolus_from_mc_vine_chewing" + label "tag=forge_ingots/iron" ] node [ id 149 - label "minecraft_vine" + label "oxide_powder_from_iron_nugget_chewing" ] node [ id 150 - label "bolus_from_mc_warped_fungus_chewing" + label "tag=forge_nuggets/iron" ] node [ id 151 - label "minecraft_warped_fungus" + label "oxide_powder_from_netherite_ingot_chewing" ] node [ id 152 - label "bolus_from_mc_warped_roots_chewing" + label "tag=forge_ingots/netherite" ] node [ id 153 - label "minecraft_warped_roots" + label "oxide_powder_from_netherite_scrap_chewing" ] node [ id 154 - label "bolus_from_mc_warped_wart_block_chewing" + label "minecraft_netherite_scrap" ] node [ id 155 - label "minecraft_warped_wart_block" + label "oxide_powder_from_red_sand_decomposing" ] node [ id 156 - label "bolus_from_mc_weeping_vines_chewing" + label "biomancy_silicate_paste" ] node [ id 157 - label "minecraft_weeping_vines" + label "minecraft_red_sand" ] node [ id 158 - label "bolus_from_mc_wheat_chewing" + label "prismarine_crystals_evolution_pool" ] node [ id 159 - label "minecraft_wheat" + label "minecraft_prismarine_crystals" ] node [ id 160 - label "bolus_from_mc_wheat_seeds_chewing" + label "minecraft_quartz" ] node [ id 161 - label "minecraft_wheat_seeds" + label "minecraft_lapis_lazuli" ] node [ id 162 - label "bolus_from_mc_white_tulip_chewing" + label "tag=minecraft_fishes" ] node [ id 163 - label "minecraft_white_tulip" + label "prismarine_shard_evolution_pool" ] node [ id 164 - label "bolus_from_mc_wither_rose_chewing" + label "quartz_evolution_pool" ] node [ id 165 - label "minecraft_wither_rose" + label "red_sand_from_red_sandstone_chewing" ] node [ id 166 - label "cobblestone_from_stone_chewing" + label "minecraft_red_sandstone" ] node [ id 167 - label "minecraft_cobblestone" + label "rejuvenating_mucus_decomposing" ] node [ id 168 - label "minecraft_stone" + label "minecraft_suspicious_stew" ] node [ id 169 - label "enchanted_book_attuned_bane_1_evolution_pool" + label "rejuvenating_mucus_from_cooked_meat_decomposing" ] node [ id 170 - label "minecraft_enchanted_book" + label "rejuvenating_mucus_from_healing_potion_decomposing" ] node [ id 171 - label "biomancy_artificial_stomach" + label "minecraft_potion" ] node [ id 172 - label "biomancy_eroding_bile" + label "rejuvenating_mucus_from_long_regen_potion_decomposing" ] node [ id 173 - label "biomancy_rejuvenating_mucus" + label "rejuvenating_mucus_from_regen_potion_decomposing" ] node [ id 174 - label "enchanted_book_attuned_bane_2_evolution_pool" + label "rejuvenating_mucus_from_strong_healing_potion_decomposing" ] node [ id 175 - label "enchanted_book_attuned_bane_3_evolution_pool" + label "rejuvenating_mucus_from_strong_regen_potion_decomposing" ] node [ id 176 - label "enchanted_book_attuned_bane_4_evolution_pool" + label "sand_from_gravel_chewing" ] node [ id 177 - label "enchanted_book_attuned_bane_5_evolution_pool" + label "minecraft_sand" ] node [ id 178 - label "entity_storage_evolution_pool" + label "sand_from_sandstone_chewing" ] node [ id 179 - label "biomancy_entity_storage" + label "minecraft_sandstone" ] node [ id 180 - label "minecraft_egg" + label "shulker_shell_evolution_pool" ] node [ id 181 - label "minecraft_ender_chest" + label "minecraft_shulker_shell" ] node [ id 182 - label "eroding_bile_decomposing" + label "minecraft_popped_chorus_fruit" ] node [ id 183 - label "biomancy_flesh_lump" + label "silicate_paste_0_decomposing" ] node [ id 184 - label "minecraft_rotten_flesh" + label "minecraft_andesite" ] node [ id 185 - label "fleshborn_axe_evolution_pool" + label "silicate_paste_10_decomposing" ] node [ id 186 - label "biomancy_fleshborn_axe" + label "tag=forge_gems/prismarine" ] node [ id 187 - label "minecraft_iron_axe" + label "silicate_paste_11_decomposing" ] node [ id 188 - label "minecraft_bone" + label "minecraft_kelp" ] node [ id 189 - label "fleshborn_chest_evolution_pool" + label "silicate_paste_12_decomposing" ] node [ id 190 - label "biomancy_fleshborn_chest" + label "minecraft_dried_kelp" ] node [ id 191 - label "minecraft_chest" + label "silicate_paste_13_decomposing" ] node [ id 192 - label "fleshborn_door_evolution_pool" + label "minecraft_dried_kelp_block" ] node [ id 193 - label "biomancy_fleshborn_door" + label "silicate_paste_1_decomposing" ] node [ id 194 - label "minecraft_iron_door" + label "minecraft_diorite" ] node [ id 195 - label "fleshborn_guan_dao_evolution_pool" + label "silicate_paste_2_decomposing" ] node [ id 196 - label "biomancy_fleshborn_guan_dao" + label "minecraft_granite" ] node [ id 197 - label "biomancy_oculus" + label "silicate_paste_3_decomposing" ] node [ id 198 - label "minecraft_diamond_sword" + label "minecraft_redstone" ] node [ id 199 - label "minecraft_diamond_axe" + label "silicate_paste_4_decomposing" ] node [ id 200 - label "fleshborn_pickaxe_evolution_pool" + label "minecraft_nautilus_shell" ] node [ id 201 - label "biomancy_fleshborn_pickaxe" + label "silicate_paste_5_decomposing" ] node [ id 202 - label "minecraft_iron_pickaxe" + label "silicate_paste_6_decomposing" ] node [ id 203 - label "fleshborn_pressure_plate_evolution_pool" + label "minecraft_glowstone_dust" ] node [ id 204 - label "biomancy_fleshborn_pressure_plate" + label "silicate_paste_7_decomposing" ] node [ id 205 - label "minecraft_heavy_weighted_pressure_plate" + label "tag=forge_gems/emerald" ] node [ id 206 - label "fleshborn_shovel_evolution_pool" + label "silicate_paste_8_decomposing" ] node [ id 207 - label "biomancy_fleshborn_shovel" + label "tag=forge_gems/lapis" ] node [ id 208 - label "minecraft_iron_shovel" + label "silicate_paste_9_decomposing" ] node [ id 209 - label "fleshborn_trapdoor_evolution_pool" + label "tag=forge_gems/quartz" ] node [ id 210 - label "biomancy_fleshborn_trapdoor" + label "silicate_paste_from_red_sand_chewing" ] node [ id 211 - label "minecraft_iron_trapdoor" + label "silicate_paste_from_sand_chewing" ] node [ id 212 - label "fleshborn_war_axe_evolution_pool" + label "single_item_bag_evolution_pool" ] node [ id 213 - label "biomancy_fleshborn_war_axe" + label "biomancy_single_item_bag" ] node [ id 214 - label "flesh_lump_decomposing" + label "minecraft_hopper" ] node [ id 215 - label "biomancy_mutagenic_bile" + label "skeleton_skull_decomposing" ] node [ id 216 - label "minecraft_chicken" + label "minecraft_skeleton_skull" ] node [ id 217 - label "flesh_lump_from_raw_meat_decomposing" + label "minecraft_zombie_head" ] node [ id 218 - label "biomancy_skin_chunk" + label "sugar_from_average_biomass_decomposing" ] node [ id 219 - label "biomancy_bone_scraps" + label "minecraft_sugar" ] node [ id 220 - label "tag=biomancy_raw_meats" + label "sugar_from_good_biomass_decomposing" ] node [ id 221 - label "gold_nugget_evolution_pool" - ] - node [ - id 222 - label "minecraft_gold_nugget" - ] - node [ - id 223 - label "gravel_from_cobblestone_chewing" - ] - node [ - id 224 - label "minecraft_gravel" - ] - node [ - id 225 - label "gulge_evolution_pool" - ] - node [ - id 226 - label "biomancy_gulge" - ] - node [ - id 227 - label "hormone_bile_0_decomposing" - ] - node [ - id 228 - label "minecraft_ink_sac" - ] - node [ - id 229 - label "hormone_bile_1_decomposing" - ] - node [ - id 230 - label "minecraft_rabbit_foot" - ] - node [ - id 231 - label "hormone_bile_2_decomposing" - ] - node [ - id 232 - label "minecraft_ghast_tear" - ] - node [ - id 233 - label "hormone_bile_3_decomposing" - ] - node [ - id 234 - label "minecraft_spider_eye" - ] - node [ - id 235 - label "hormone_bile_4_decomposing" - ] - node [ - id 236 - label "minecraft_fermented_spider_eye" - ] - node [ - id 237 - label "hormone_bile_5_decomposing" - ] - node [ - id 238 - label "minecraft_honeycomb" - ] - node [ - id 239 - label "hormone_bile_6_decomposing" - ] - node [ - id 240 - label "minecraft_slime_ball" - ] - node [ - id 241 - label "iron_nugget_evolution_pool" - ] - node [ - id 242 - label "minecraft_iron_nugget" - ] - node [ - id 243 - label "keratin_filaments_0_decomposing" - ] - node [ - id 244 - label "minecraft_scute" - ] - node [ - id 245 - label "keratin_filaments_1_decomposing" - ] - node [ - id 246 - label "tag=forge_leather" - ] - node [ - id 247 - label "keratin_filaments_2_decomposing" - ] - node [ - id 248 - label "minecraft_rabbit_hide" - ] - node [ - id 249 - label "keratin_filaments_3_decomposing" - ] - node [ - id 250 - label "tag=forge_feathers" - ] - node [ - id 251 - label "keratin_filaments_4_decomposing" - ] - node [ - id 252 - label "tag=forge_string" - ] - node [ - id 253 - label "keratin_filaments_5_decomposing" - ] - node [ - id 254 - label "tag=minecraft_wool" - ] - node [ - id 255 - label "keratin_filaments_6_decomposing" - ] - node [ - id 256 - label "tag=minecraft_carpets" - ] - node [ - id 257 - label "keratin_filaments_7_decomposing" - ] - node [ - id 258 - label "minecraft_lead" - ] - node [ - id 259 - label "keratin_filaments_8_decomposing" - ] - node [ - id 260 - label "minecraft_phantom_membrane" - ] - node [ - id 261 - label "keratin_filaments_9_decomposing" - ] - node [ - id 262 - label "minecraft_prismarine_shard" - ] - node [ - id 263 - label "leech_claw_evolution_pool" - ] - node [ - id 264 - label "biomancy_leech_claw" - ] - node [ - id 265 - label "biomancy_injection_device" - ] - node [ - id 266 - label "long_range_claw_evolution_pool" - ] - node [ - id 267 - label "biomancy_long_range_claw" - ] - node [ - id 268 - label "biomancy_sharp_bone" - ] - node [ - id 269 - label "mutagenic_bile_0_decomposing" - ] - node [ - id 270 - label "biomancy_digestate" - ] - node [ - id 271 - label "mutagenic_bile_1_decomposing" - ] - node [ - id 272 - label "mutagenic_bile_2_decomposing" - ] - node [ - id 273 - label "nutrient_paste_digesting" - ] - node [ - id 274 - label "biomancy_nutrient_paste" - ] - node [ - id 275 - label "oxide_powder_0_decomposing" - ] - node [ - id 276 - label "tag=forge_eggs" - ] - node [ - id 277 - label "oxide_powder_1_decomposing" - ] - node [ - id 278 - label "minecraft_turtle_egg" - ] - node [ - id 279 - label "oxide_powder_2_decomposing" - ] - node [ - id 280 - label "tag=forge_bones" - ] - node [ - id 281 - label "oxide_powder_3_decomposing" - ] - node [ - id 282 - label "minecraft_bone_meal" - ] - node [ - id 283 - label "oxide_powder_from_gold_ingot_chewing" - ] - node [ - id 284 - label "tag=forge_ingots/gold" - ] - node [ - id 285 - label "oxide_powder_from_gold_nugget_chewing" - ] - node [ - id 286 - label "tag=forge_nuggets/gold" - ] - node [ - id 287 - label "oxide_powder_from_iron_ingot_chewing" - ] - node [ - id 288 - label "tag=forge_ingots/iron" - ] - node [ - id 289 - label "oxide_powder_from_iron_nugget_chewing" - ] - node [ - id 290 - label "tag=forge_nuggets/iron" - ] - node [ - id 291 - label "oxide_powder_from_netherite_ingot_chewing" - ] - node [ - id 292 - label "tag=forge_ingots/netherite" - ] - node [ - id 293 - label "oxide_powder_from_netherite_scrap_chewing" - ] - node [ - id 294 - label "minecraft_netherite_scrap" - ] - node [ - id 295 - label "oxide_powder_from_red_sand_decomposing" - ] - node [ - id 296 - label "biomancy_silicate_paste" - ] - node [ - id 297 - label "minecraft_red_sand" - ] - node [ - id 298 - label "prismarine_crystals_evolution_pool" - ] - node [ - id 299 - label "minecraft_prismarine_crystals" - ] - node [ - id 300 - label "minecraft_quartz" - ] - node [ - id 301 - label "minecraft_lapis_lazuli" - ] - node [ - id 302 - label "tag=minecraft_fishes" - ] - node [ - id 303 - label "prismarine_shard_evolution_pool" - ] - node [ - id 304 - label "quartz_evolution_pool" - ] - node [ - id 305 - label "red_sand_from_red_sandstone_chewing" - ] - node [ - id 306 - label "minecraft_red_sandstone" - ] - node [ - id 307 - label "rejuvenating_mucus_decomposing" - ] - node [ - id 308 - label "minecraft_suspicious_stew" - ] - node [ - id 309 - label "rejuvenating_mucus_from_cooked_meat_decomposing" - ] - node [ - id 310 - label "tag=biomancy_cooked_meats" - ] - node [ - id 311 - label "rejuvenating_mucus_from_healing_potion_decomposing" - ] - node [ - id 312 - label "minecraft_potion" - ] - node [ - id 313 - label "rejuvenating_mucus_from_long_regen_potion_decomposing" - ] - node [ - id 314 - label "rejuvenating_mucus_from_regen_potion_decomposing" - ] - node [ - id 315 - label "rejuvenating_mucus_from_strong_healing_potion_decomposing" - ] - node [ - id 316 - label "rejuvenating_mucus_from_strong_regen_potion_decomposing" - ] - node [ - id 317 - label "sand_from_gravel_chewing" - ] - node [ - id 318 - label "minecraft_sand" - ] - node [ - id 319 - label "sand_from_sandstone_chewing" - ] - node [ - id 320 - label "minecraft_sandstone" - ] - node [ - id 321 - label "shulker_shell_evolution_pool" - ] - node [ - id 322 - label "minecraft_shulker_shell" - ] - node [ - id 323 - label "minecraft_popped_chorus_fruit" - ] - node [ - id 324 - label "silicate_paste_0_decomposing" - ] - node [ - id 325 - label "minecraft_andesite" - ] - node [ - id 326 - label "silicate_paste_10_decomposing" - ] - node [ - id 327 - label "tag=forge_gems/prismarine" - ] - node [ - id 328 - label "silicate_paste_11_decomposing" - ] - node [ - id 329 - label "silicate_paste_12_decomposing" - ] - node [ - id 330 - label "silicate_paste_13_decomposing" - ] - node [ - id 331 - label "silicate_paste_1_decomposing" - ] - node [ - id 332 - label "minecraft_diorite" - ] - node [ - id 333 - label "silicate_paste_2_decomposing" - ] - node [ - id 334 - label "minecraft_granite" - ] - node [ - id 335 - label "silicate_paste_3_decomposing" - ] - node [ - id 336 - label "minecraft_redstone" - ] - node [ - id 337 - label "silicate_paste_4_decomposing" - ] - node [ - id 338 - label "minecraft_nautilus_shell" - ] - node [ - id 339 - label "silicate_paste_5_decomposing" - ] - node [ - id 340 - label "silicate_paste_6_decomposing" - ] - node [ - id 341 - label "minecraft_glowstone_dust" - ] - node [ - id 342 - label "silicate_paste_7_decomposing" - ] - node [ - id 343 - label "tag=forge_gems/emerald" - ] - node [ - id 344 - label "silicate_paste_8_decomposing" - ] - node [ - id 345 - label "tag=forge_gems/lapis" - ] - node [ - id 346 - label "silicate_paste_9_decomposing" - ] - node [ - id 347 - label "tag=forge_gems/quartz" - ] - node [ - id 348 - label "silicate_paste_from_red_sand_chewing" - ] - node [ - id 349 - label "silicate_paste_from_sand_chewing" - ] - node [ - id 350 - label "single_item_bag_evolution_pool" - ] - node [ - id 351 - label "biomancy_single_item_bag" - ] - node [ - id 352 - label "minecraft_hopper" - ] - node [ - id 353 - label "skeleton_skull_decomposing" - ] - node [ - id 354 - label "minecraft_skeleton_skull" - ] - node [ - id 355 - label "minecraft_zombie_head" - ] - node [ - id 356 - label "sugar_from_mc_acacia_leaves_decomposing" - ] - node [ - id 357 - label "minecraft_sugar" - ] - node [ - id 358 - label "sugar_from_mc_acacia_sapling_decomposing" - ] - node [ - id 359 - label "sugar_from_mc_allium_decomposing" - ] - node [ - id 360 - label "sugar_from_mc_apple_decomposing" - ] - node [ - id 361 - label "sugar_from_mc_azure_bluet_decomposing" - ] - node [ - id 362 - label "sugar_from_mc_baked_potato_decomposing" - ] - node [ - id 363 - label "sugar_from_mc_beetroot_decomposing" - ] - node [ - id 364 - label "sugar_from_mc_beetroot_seeds_decomposing" - ] - node [ - id 365 - label "sugar_from_mc_birch_leaves_decomposing" - ] - node [ - id 366 - label "sugar_from_mc_birch_sapling_decomposing" - ] - node [ - id 367 - label "sugar_from_mc_blue_orchid_decomposing" - ] - node [ - id 368 - label "sugar_from_mc_bread_decomposing" - ] - node [ - id 369 - label "sugar_from_mc_brown_mushroom_block_decomposing" - ] - node [ - id 370 - label "sugar_from_mc_brown_mushroom_decomposing" - ] - node [ - id 371 - label "sugar_from_mc_cactus_decomposing" - ] - node [ - id 372 - label "sugar_from_mc_cake_decomposing" - ] - node [ - id 373 - label "sugar_from_mc_carrot_decomposing" - ] - node [ - id 374 - label "sugar_from_mc_carved_pumpkin_decomposing" - ] - node [ - id 375 - label "sugar_from_mc_cocoa_beans_decomposing" - ] - node [ - id 376 - label "sugar_from_mc_cookie_decomposing" - ] - node [ - id 377 - label "sugar_from_mc_cornflower_decomposing" - ] - node [ - id 378 - label "sugar_from_mc_crimson_fungus_decomposing" - ] - node [ - id 379 - label "sugar_from_mc_crimson_roots_decomposing" - ] - node [ - id 380 - label "sugar_from_mc_dandelion_decomposing" - ] - node [ - id 381 - label "sugar_from_mc_dark_oak_leaves_decomposing" - ] - node [ - id 382 - label "sugar_from_mc_dark_oak_sapling_decomposing" - ] - node [ - id 383 - label "sugar_from_mc_dried_kelp_block_decomposing" - ] - node [ - id 384 - label "sugar_from_mc_dried_kelp_decomposing" - ] - node [ - id 385 - label "sugar_from_mc_fern_decomposing" - ] - node [ - id 386 - label "sugar_from_mc_grass_decomposing" - ] - node [ - id 387 - label "sugar_from_mc_hay_block_decomposing" - ] - node [ - id 388 - label "sugar_from_mc_jungle_leaves_decomposing" - ] - node [ - id 389 - label "sugar_from_mc_jungle_sapling_decomposing" - ] - node [ - id 390 - label "sugar_from_mc_kelp_decomposing" - ] - node [ - id 391 - label "sugar_from_mc_large_fern_decomposing" - ] - node [ - id 392 - label "sugar_from_mc_lilac_decomposing" - ] - node [ - id 393 - label "sugar_from_mc_lily_of_the_valley_decomposing" - ] - node [ - id 394 - label "sugar_from_mc_lily_pad_decomposing" - ] - node [ - id 395 - label "sugar_from_mc_melon_decomposing" - ] - node [ - id 396 - label "sugar_from_mc_melon_seeds_decomposing" - ] - node [ - id 397 - label "sugar_from_mc_melon_slice_decomposing" - ] - node [ - id 398 - label "sugar_from_mc_mushroom_stem_decomposing" - ] - node [ - id 399 - label "sugar_from_mc_nether_sprouts_decomposing" - ] - node [ - id 400 - label "sugar_from_mc_nether_wart_block_decomposing" - ] - node [ - id 401 - label "sugar_from_mc_nether_wart_decomposing" - ] - node [ - id 402 - label "sugar_from_mc_oak_leaves_decomposing" - ] - node [ - id 403 - label "sugar_from_mc_oak_sapling_decomposing" - ] - node [ - id 404 - label "sugar_from_mc_orange_tulip_decomposing" - ] - node [ - id 405 - label "sugar_from_mc_oxeye_daisy_decomposing" - ] - node [ - id 406 - label "sugar_from_mc_peony_decomposing" - ] - node [ - id 407 - label "sugar_from_mc_pink_tulip_decomposing" - ] - node [ - id 408 - label "sugar_from_mc_poppy_decomposing" - ] - node [ - id 409 - label "sugar_from_mc_potato_decomposing" - ] - node [ - id 410 - label "sugar_from_mc_pumpkin_decomposing" - ] - node [ - id 411 - label "sugar_from_mc_pumpkin_pie_decomposing" - ] - node [ - id 412 - label "sugar_from_mc_pumpkin_seeds_decomposing" - ] - node [ - id 413 - label "sugar_from_mc_red_mushroom_block_decomposing" - ] - node [ - id 414 - label "sugar_from_mc_red_mushroom_decomposing" - ] - node [ - id 415 - label "sugar_from_mc_red_tulip_decomposing" - ] - node [ - id 416 - label "sugar_from_mc_rose_bush_decomposing" - ] - node [ - id 417 - label "sugar_from_mc_seagrass_decomposing" - ] - node [ - id 418 - label "sugar_from_mc_sea_pickle_decomposing" - ] - node [ - id 419 - label "sugar_from_mc_shroomlight_decomposing" - ] - node [ - id 420 - label "sugar_from_mc_spruce_leaves_decomposing" - ] - node [ - id 421 - label "sugar_from_mc_spruce_sapling_decomposing" - ] - node [ - id 422 - label "sugar_from_mc_sugar_cane_decomposing" - ] - node [ - id 423 - label "sugar_from_mc_sunflower_decomposing" - ] - node [ - id 424 - label "sugar_from_mc_sweet_berries_decomposing" - ] - node [ - id 425 - label "sugar_from_mc_tall_grass_decomposing" - ] - node [ - id 426 - label "sugar_from_mc_twisting_vines_decomposing" - ] - node [ - id 427 - label "sugar_from_mc_vine_decomposing" - ] - node [ - id 428 - label "sugar_from_mc_warped_fungus_decomposing" - ] - node [ - id 429 - label "sugar_from_mc_warped_roots_decomposing" - ] - node [ - id 430 - label "sugar_from_mc_warped_wart_block_decomposing" - ] - node [ - id 431 - label "sugar_from_mc_weeping_vines_decomposing" - ] - node [ - id 432 - label "sugar_from_mc_wheat_decomposing" - ] - node [ - id 433 - label "sugar_from_mc_wheat_seeds_decomposing" - ] - node [ - id 434 - label "sugar_from_mc_white_tulip_decomposing" - ] - node [ - id 435 - label "sugar_from_mc_wither_rose_decomposing" - ] - node [ - id 436 - label "tooth_gun_evolution_pool" - ] - node [ - id 437 - label "biomancy_tooth_gun" - ] - node [ - id 438 - label "minecraft_crossbow" - ] - node [ - id 439 - label "unveiling_oculi_evolution_pool" - ] - node [ - id 440 - label "biomancy_unveiling_oculi" - ] - node [ - id 441 - label "minecraft_iron_helmet" - ] - node [ - id 442 - label "withershot_evolution_pool" - ] - node [ - id 443 - label "biomancy_withershot" - ] - node [ - id 444 - label "minecraft_nether_star" - ] - node [ - id 445 - label "minecraft_wither_skeleton_skull" - ] - node [ - id 446 - label "wither_skeleton_skull_evolution_pool" - ] - node [ - id 447 - label "zombie_head_evolution_pool" - ] - node [ - id 448 - label "minecraft_player_head" - ] - edge [ - source 0 - target 1 - weight 1 - ] - edge [ - source 1 - target 185 - weight 3 - ] - edge [ - source 1 - target 189 - weight 1 - ] - edge [ - source 1 - target 192 - weight 1 - ] - edge [ - source 1 - target 195 - weight 1 - ] - edge [ - source 1 - target 200 - weight 3 - ] - edge [ - source 1 - target 203 - weight 1 - ] - edge [ - source 1 - target 206 - weight 1 - ] - edge [ - source 1 - target 209 - weight 1 - ] - edge [ - source 1 - target 225 - weight 1 - ] - edge [ - source 1 - target 263 - weight 1 - ] - edge [ - source 1 - target 266 - weight 1 - ] - edge [ - source 1 - target 436 - weight 1 - ] - edge [ - source 1 - target 439 - weight 1 - ] - edge [ - source 2 - target 0 - weight 1 - ] - edge [ - source 3 - target 0 - weight 1 - ] - edge [ - source 4 - target 0 - weight 2 - ] - edge [ - source 4 - target 221 - weight 5 - ] - edge [ - source 4 - target 241 - weight 5 - ] - edge [ - source 5 - target 0 - weight 1 - ] - edge [ - source 5 - target 178 - weight 2 - ] - edge [ - source 5 - target 189 - weight 2 - ] - edge [ - source 5 - target 192 - weight 2 - ] - edge [ - source 5 - target 203 - weight 2 - ] - edge [ - source 5 - target 206 - weight 2 - ] - edge [ - source 5 - target 209 - weight 2 - ] - edge [ - source 5 - target 212 - weight 2 - ] - edge [ - source 5 - target 303 - weight 2 - ] - edge [ - source 5 - target 350 - weight 2 - ] - edge [ - source 6 - target 0 - weight 1 - ] - edge [ - source 6 - target 185 - weight 1 - ] - edge [ - source 6 - target 189 - weight 1 - ] - edge [ - source 6 - target 192 - weight 1 - ] - edge [ - source 6 - target 200 - weight 1 - ] - edge [ - source 6 - target 203 - weight 1 - ] - edge [ - source 6 - target 206 - weight 1 - ] - edge [ - source 6 - target 209 - weight 1 - ] - edge [ - source 6 - target 212 - weight 1 - ] - edge [ - source 7 - target 8 - weight 1 - ] - edge [ - source 8 - target 273 - weight 1 - ] - edge [ - source 9 - target 7 - weight 1 - ] - edge [ - source 9 - target 356 - weight 1 - ] - edge [ - source 10 - target 8 - weight 1 - ] - edge [ - source 11 - target 10 - weight 1 - ] - edge [ - source 11 - target 358 - weight 1 - ] - edge [ - source 12 - target 8 - weight 4 - ] - edge [ - source 13 - target 12 - weight 1 - ] - edge [ - source 13 - target 359 - weight 1 - ] - edge [ - source 14 - target 8 - weight 4 - ] - edge [ - source 15 - target 14 - weight 1 - ] - edge [ - source 15 - target 360 - weight 1 - ] - edge [ - source 16 - target 8 - weight 4 - ] - edge [ - source 17 - target 16 - weight 1 - ] - edge [ - source 17 - target 361 - weight 1 - ] - edge [ - source 18 - target 8 - weight 5 - ] - edge [ - source 19 - target 18 - weight 1 - ] - edge [ - source 19 - target 362 - weight 1 - ] - edge [ - source 20 - target 8 - weight 4 - ] - edge [ - source 21 - target 20 - weight 1 - ] - edge [ - source 21 - target 363 - weight 1 - ] - edge [ - source 22 - target 8 - weight 1 - ] - edge [ - source 23 - target 22 - weight 1 - ] - edge [ - source 23 - target 364 - weight 1 - ] - edge [ - source 24 - target 8 - weight 1 - ] - edge [ - source 25 - target 24 - weight 1 - ] - edge [ - source 25 - target 365 - weight 1 - ] - edge [ - source 26 - target 8 - weight 1 - ] - edge [ - source 27 - target 26 - weight 1 - ] - edge [ - source 27 - target 366 - weight 1 - ] - edge [ - source 28 - target 8 - weight 4 - ] - edge [ - source 29 - target 28 - weight 1 - ] - edge [ - source 29 - target 367 - weight 1 - ] - edge [ - source 30 - target 8 - weight 5 - ] - edge [ - source 31 - target 30 - weight 1 - ] - edge [ - source 31 - target 368 - weight 1 - ] - edge [ - source 32 - target 8 - weight 5 - ] - edge [ - source 33 - target 32 - weight 1 - ] - edge [ - source 33 - target 369 - weight 1 - ] - edge [ - source 34 - target 8 - weight 4 - ] - edge [ - source 35 - target 34 - weight 1 - ] - edge [ - source 35 - target 370 - weight 1 - ] - edge [ - source 36 - target 8 - weight 2 - ] - edge [ - source 37 - target 36 - weight 1 - ] - edge [ - source 37 - target 371 - weight 1 - ] - edge [ - source 38 - target 8 - weight 6 - ] - edge [ - source 39 - target 38 - weight 1 - ] - edge [ - source 39 - target 372 - weight 1 - ] - edge [ - source 40 - target 8 - weight 4 - ] - edge [ - source 41 - target 40 - weight 1 - ] - edge [ - source 41 - target 373 - weight 1 - ] - edge [ - source 42 - target 8 - weight 4 - ] - edge [ - source 43 - target 42 - weight 1 - ] - edge [ - source 43 - target 374 - weight 1 - ] - edge [ - source 44 - target 8 - weight 4 - ] - edge [ - source 45 - target 44 - weight 1 - ] - edge [ - source 45 - target 375 - weight 1 - ] - edge [ - source 46 - target 8 - weight 5 - ] - edge [ - source 47 - target 46 - weight 1 - ] - edge [ - source 47 - target 376 - weight 1 - ] - edge [ - source 48 - target 8 - weight 4 - ] - edge [ - source 49 - target 48 - weight 1 - ] - edge [ - source 49 - target 377 - weight 1 - ] - edge [ - source 50 - target 8 - weight 4 - ] - edge [ - source 51 - target 50 - weight 1 - ] - edge [ - source 51 - target 378 - weight 1 - ] - edge [ - source 52 - target 8 - weight 4 - ] - edge [ - source 53 - target 52 - weight 1 - ] - edge [ - source 53 - target 379 - weight 1 - ] - edge [ - source 54 - target 8 - weight 4 - ] - edge [ - source 55 - target 54 - weight 1 - ] - edge [ - source 55 - target 380 - weight 1 - ] - edge [ - source 56 - target 8 - weight 1 - ] - edge [ - source 57 - target 56 - weight 1 - ] - edge [ - source 57 - target 381 - weight 1 - ] - edge [ - source 58 - target 8 - weight 1 - ] - edge [ - source 59 - target 58 - weight 1 - ] - edge [ - source 59 - target 382 - weight 1 - ] - edge [ - source 60 - target 8 - weight 2 - ] - edge [ - source 61 - target 60 - weight 1 - ] - edge [ - source 61 - target 330 - weight 1 - ] - edge [ - source 61 - target 383 - weight 1 - ] - edge [ - source 62 - target 8 - weight 1 - ] - edge [ - source 63 - target 62 - weight 1 - ] - edge [ - source 63 - target 329 - weight 6 - ] - edge [ - source 63 - target 384 - weight 1 - ] - edge [ - source 64 - target 8 - weight 4 - ] - edge [ - source 65 - target 64 - weight 1 - ] - edge [ - source 65 - target 385 - weight 1 - ] - edge [ - source 66 - target 8 - weight 1 - ] - edge [ - source 67 - target 66 - weight 1 - ] - edge [ - source 67 - target 386 - weight 1 - ] - edge [ - source 68 - target 8 - weight 5 - ] - edge [ - source 69 - target 68 - weight 1 - ] - edge [ - source 69 - target 387 - weight 1 - ] - edge [ - source 70 - target 8 - weight 1 - ] - edge [ - source 71 - target 70 - weight 1 - ] - edge [ - source 71 - target 388 - weight 1 - ] - edge [ - source 72 - target 8 - weight 1 - ] - edge [ - source 73 - target 72 - weight 1 - ] - edge [ - source 73 - target 389 - weight 1 - ] - edge [ - source 74 - target 8 - weight 1 - ] - edge [ - source 75 - target 74 - weight 1 - ] - edge [ - source 75 - target 328 - weight 6 - ] - edge [ - source 75 - target 390 - weight 1 - ] - edge [ - source 76 - target 8 - weight 4 - ] - edge [ - source 77 - target 76 - weight 1 - ] - edge [ - source 77 - target 391 - weight 1 - ] - edge [ - source 78 - target 8 - weight 4 - ] - edge [ - source 79 - target 78 - weight 1 - ] - edge [ - source 79 - target 392 - weight 1 - ] - edge [ - source 80 - target 8 - weight 4 - ] - edge [ - source 81 - target 80 - weight 1 - ] - edge [ - source 81 - target 393 - weight 1 - ] - edge [ - source 82 - target 8 - weight 4 - ] - edge [ - source 83 - target 82 - weight 1 - ] - edge [ - source 83 - target 394 - weight 1 - ] - edge [ - source 84 - target 8 - weight 4 - ] - edge [ - source 85 - target 84 - weight 1 - ] - edge [ - source 85 - target 395 - weight 1 - ] - edge [ - source 86 - target 8 - weight 1 - ] - edge [ - source 87 - target 86 - weight 1 - ] - edge [ - source 87 - target 396 - weight 1 - ] - edge [ - source 88 - target 8 - weight 2 - ] - edge [ - source 89 - target 88 - weight 1 - ] - edge [ - source 89 - target 397 - weight 1 - ] - edge [ - source 90 - target 8 - weight 4 - ] - edge [ - source 91 - target 90 - weight 1 - ] - edge [ - source 91 - target 398 - weight 1 - ] - edge [ - source 92 - target 8 - weight 2 - ] - edge [ - source 93 - target 92 - weight 1 - ] - edge [ - source 93 - target 399 - weight 1 - ] - edge [ - source 94 - target 8 - weight 5 - ] - edge [ - source 95 - target 94 - weight 1 - ] - edge [ - source 95 - target 400 - weight 1 - ] - edge [ - source 96 - target 8 - weight 4 - ] - edge [ - source 97 - target 96 - weight 1 - ] - edge [ - source 97 - target 401 - weight 1 - ] - edge [ - source 98 - target 8 - weight 1 - ] - edge [ - source 99 - target 98 - weight 1 - ] - edge [ - source 99 - target 402 - weight 1 - ] - edge [ - source 100 - target 8 - weight 1 - ] - edge [ - source 101 - target 100 - weight 1 - ] - edge [ - source 101 - target 403 - weight 1 - ] - edge [ - source 102 - target 8 - weight 4 - ] - edge [ - source 103 - target 102 - weight 1 - ] - edge [ - source 103 - target 404 - weight 1 - ] - edge [ - source 104 - target 8 - weight 4 - ] - edge [ - source 105 - target 104 - weight 1 - ] - edge [ - source 105 - target 405 - weight 1 - ] - edge [ - source 106 - target 8 - weight 4 - ] - edge [ - source 107 - target 106 - weight 1 - ] - edge [ - source 107 - target 406 - weight 1 - ] - edge [ - source 108 - target 8 - weight 4 - ] - edge [ - source 109 - target 108 - weight 1 - ] - edge [ - source 109 - target 407 - weight 1 - ] - edge [ - source 110 - target 8 - weight 4 - ] - edge [ - source 111 - target 110 - weight 1 - ] - edge [ - source 111 - target 408 - weight 1 - ] - edge [ - source 112 - target 8 - weight 4 - ] - edge [ - source 113 - target 112 - weight 1 - ] - edge [ - source 113 - target 409 - weight 1 - ] - edge [ - source 114 - target 8 - weight 4 - ] - edge [ - source 115 - target 114 - weight 1 - ] - edge [ - source 115 - target 410 - weight 1 - ] - edge [ - source 116 - target 8 - weight 6 - ] - edge [ - source 117 - target 116 - weight 1 - ] - edge [ - source 117 - target 411 - weight 1 - ] - edge [ - source 118 - target 8 - weight 1 - ] - edge [ - source 119 - target 118 - weight 1 - ] - edge [ - source 119 - target 412 - weight 1 - ] - edge [ - source 120 - target 8 - weight 5 - ] - edge [ - source 121 - target 120 - weight 1 - ] - edge [ - source 121 - target 413 - weight 1 - ] - edge [ - source 122 - target 8 - weight 4 - ] - edge [ - source 123 - target 122 - weight 1 - ] - edge [ - source 123 - target 414 - weight 1 - ] - edge [ - source 124 - target 8 - weight 4 - ] - edge [ - source 125 - target 124 - weight 1 - ] - edge [ - source 125 - target 415 - weight 1 - ] - edge [ - source 126 - target 8 - weight 4 - ] - edge [ - source 127 - target 126 - weight 1 - ] - edge [ - source 127 - target 416 - weight 1 - ] - edge [ - source 128 - target 8 - weight 1 - ] - edge [ - source 129 - target 128 - weight 1 - ] - edge [ - source 129 - target 417 - weight 1 - ] - edge [ - source 130 - target 8 - weight 4 - ] - edge [ - source 131 - target 130 - weight 1 - ] - edge [ - source 131 - target 418 - weight 1 - ] - edge [ - source 132 - target 8 - weight 4 - ] - edge [ - source 133 - target 132 - weight 1 - ] - edge [ - source 133 - target 419 - weight 1 - ] - edge [ - source 134 - target 8 - weight 1 - ] - edge [ - source 135 - target 134 - weight 1 - ] - edge [ - source 135 - target 420 - weight 1 - ] - edge [ - source 136 - target 8 - weight 1 - ] - edge [ - source 137 - target 136 - weight 1 - ] - edge [ - source 137 - target 421 - weight 1 + label "sugar_from_poor_biomass_decomposing" ] - edge [ - source 138 - target 8 - weight 2 - ] - edge [ - source 139 - target 138 - weight 1 - ] - edge [ - source 139 - target 422 - weight 1 - ] - edge [ - source 140 - target 8 - weight 4 - ] - edge [ - source 141 - target 140 - weight 1 - ] - edge [ - source 141 - target 423 - weight 1 - ] - edge [ - source 142 - target 8 - weight 1 + node [ + id 222 + label "sugar_from_superb_biomass_decomposing" ] - edge [ - source 143 - target 142 - weight 1 + node [ + id 223 + label "tooth_gun_evolution_pool" ] - edge [ - source 143 - target 424 - weight 1 + node [ + id 224 + label "biomancy_tooth_gun" ] - edge [ - source 144 - target 8 - weight 2 + node [ + id 225 + label "minecraft_crossbow" ] - edge [ - source 145 - target 144 - weight 1 + node [ + id 226 + label "unveiling_oculi_evolution_pool" ] - edge [ - source 145 - target 425 - weight 1 + node [ + id 227 + label "biomancy_unveiling_oculi" ] - edge [ - source 146 - target 8 - weight 2 + node [ + id 228 + label "minecraft_iron_helmet" ] - edge [ - source 147 - target 146 - weight 1 + node [ + id 229 + label "withershot_evolution_pool" ] - edge [ - source 147 - target 426 - weight 1 + node [ + id 230 + label "biomancy_withershot" ] - edge [ - source 148 - target 8 - weight 2 + node [ + id 231 + label "minecraft_nether_star" ] - edge [ - source 149 - target 148 - weight 1 + node [ + id 232 + label "minecraft_wither_skeleton_skull" ] - edge [ - source 149 - target 427 - weight 1 + node [ + id 233 + label "wither_skeleton_skull_evolution_pool" ] - edge [ - source 150 - target 8 - weight 4 + node [ + id 234 + label "minecraft_wither_rose" ] - edge [ - source 151 - target 150 - weight 1 + node [ + id 235 + label "zombie_head_evolution_pool" ] - edge [ - source 151 - target 269 - weight 1 + node [ + id 236 + label "minecraft_player_head" ] edge [ - source 151 - target 428 + source 0 + target 1 weight 1 ] edge [ - source 152 - target 8 - weight 4 + source 1 + target 35 + weight 3 ] edge [ - source 153 - target 152 + source 1 + target 39 weight 1 ] edge [ - source 153 - target 272 - weight 2 - ] - edge [ - source 153 - target 429 + source 1 + target 42 weight 1 ] edge [ - source 154 - target 8 - weight 5 - ] - edge [ - source 155 - target 154 + source 1 + target 45 weight 1 ] edge [ - source 155 - target 271 - weight 1 + source 1 + target 50 + weight 3 ] edge [ - source 155 - target 430 + source 1 + target 53 weight 1 ] edge [ - source 156 - target 8 - weight 2 - ] - edge [ - source 157 - target 156 + source 1 + target 56 weight 1 ] edge [ - source 157 - target 431 + source 1 + target 59 weight 1 ] edge [ - source 158 - target 8 - weight 4 - ] - edge [ - source 159 - target 158 + source 1 + target 75 weight 1 ] edge [ - source 159 - target 432 + source 1 + target 113 weight 1 ] edge [ - source 160 - target 8 + source 1 + target 116 weight 1 ] edge [ - source 161 - target 160 + source 1 + target 223 weight 1 ] edge [ - source 161 - target 433 + source 1 + target 226 weight 1 ] edge [ - source 162 - target 8 - weight 4 - ] - edge [ - source 163 - target 162 + source 2 + target 0 weight 1 ] edge [ - source 163 - target 434 + source 3 + target 0 weight 1 ] edge [ - source 164 - target 8 - weight 4 - ] - edge [ - source 165 - target 164 - weight 1 + source 4 + target 0 + weight 2 ] edge [ - source 165 - target 435 - weight 1 + source 4 + target 71 + weight 5 ] edge [ - source 165 - target 446 - weight 1 + source 4 + target 91 + weight 5 ] edge [ - source 166 - target 167 + source 5 + target 0 weight 1 ] edge [ - source 167 - target 223 - weight 1 + source 5 + target 28 + weight 2 ] edge [ - source 168 - target 166 - weight 1 + source 5 + target 39 + weight 2 ] edge [ - source 169 - target 170 - weight 1 + source 5 + target 42 + weight 2 ] edge [ - source 170 - target 169 - weight 3 + source 5 + target 53 + weight 2 ] edge [ - source 170 - target 174 - weight 3 + source 5 + target 56 + weight 2 ] edge [ - source 170 - target 175 - weight 3 + source 5 + target 59 + weight 2 ] edge [ - source 170 - target 176 - weight 3 + source 5 + target 62 + weight 2 ] edge [ - source 170 - target 177 - weight 3 + source 5 + target 163 + weight 2 ] edge [ - source 170 - target 195 - weight 1 + source 5 + target 212 + weight 2 ] edge [ - source 170 - target 263 + source 6 + target 0 weight 1 ] edge [ - source 170 - target 266 + source 6 + target 35 weight 1 ] edge [ - source 171 - target 169 + source 6 + target 39 weight 1 ] edge [ - source 171 - target 174 + source 6 + target 42 weight 1 ] edge [ - source 171 - target 175 + source 6 + target 50 weight 1 ] edge [ - source 171 - target 176 + source 6 + target 53 weight 1 ] edge [ - source 171 - target 177 + source 6 + target 56 weight 1 ] edge [ - source 171 - target 178 - weight 2 + source 6 + target 59 + weight 1 ] edge [ - source 171 - target 212 + source 6 + target 62 weight 1 ] edge [ - source 171 - target 225 + source 7 + target 8 weight 4 ] edge [ - source 171 - target 350 - weight 2 - ] - edge [ - source 171 - target 436 + source 8 + target 128 weight 1 ] edge [ - source 172 - target 169 + source 9 + target 7 weight 1 ] edge [ - source 172 - target 174 + source 9 + target 126 weight 1 ] edge [ - source 172 - target 175 + source 9 + target 218 weight 1 ] edge [ - source 172 - target 176 - weight 1 + source 10 + target 8 + weight 6 ] edge [ - source 172 - target 177 + source 11 + target 10 weight 1 ] edge [ - source 172 - target 442 + source 11 + target 131 weight 1 ] edge [ - source 172 - target 446 - weight 2 - ] - edge [ - source 172 - target 447 - weight 2 - ] - edge [ - source 173 - target 169 + source 11 + target 220 weight 1 ] edge [ - source 173 - target 174 - weight 1 + source 12 + target 8 + weight 2 ] edge [ - source 173 - target 175 + source 13 + target 12 weight 1 ] edge [ - source 173 - target 176 + source 13 + target 132 weight 1 ] edge [ - source 173 - target 177 + source 13 + target 221 weight 1 ] edge [ - source 174 - target 170 - weight 1 + source 14 + target 8 + weight 8 ] edge [ - source 175 - target 170 + source 15 + target 14 weight 1 ] edge [ - source 176 - target 170 + source 15 + target 134 weight 1 ] edge [ - source 177 - target 170 + source 15 + target 222 weight 1 ] edge [ - source 178 - target 179 + source 16 + target 17 weight 1 ] edge [ - source 180 - target 178 + source 17 + target 73 weight 1 ] edge [ - source 181 - target 178 + source 18 + target 16 weight 1 ] edge [ - source 182 - target 172 + source 19 + target 20 weight 1 ] edge [ - source 182 - target 183 - weight 0.2 + source 20 + target 19 + weight 3 ] edge [ - source 184 - target 182 - weight 1 + source 20 + target 24 + weight 3 ] edge [ - source 184 - target 447 - weight 1 + source 20 + target 25 + weight 3 ] edge [ - source 185 - target 186 - weight 1 + source 20 + target 26 + weight 3 ] edge [ - source 186 - target 212 - weight 1 + source 20 + target 27 + weight 3 ] edge [ - source 187 - target 185 + source 20 + target 45 weight 1 ] edge [ - source 188 - target 185 + source 20 + target 113 weight 1 ] edge [ - source 188 - target 195 + source 20 + target 116 weight 1 ] edge [ - source 188 - target 200 + source 21 + target 19 weight 1 ] edge [ - source 188 - target 206 + source 21 + target 24 weight 1 ] edge [ - source 189 - target 190 + source 21 + target 25 weight 1 ] edge [ - source 190 - target 225 + source 21 + target 26 weight 1 ] edge [ - source 190 - target 350 + source 21 + target 27 weight 1 ] edge [ - source 191 - target 189 + source 21 + target 28 weight 2 ] edge [ - source 192 - target 193 - weight 1 - ] - edge [ - source 194 - target 192 - weight 1 - ] - edge [ - source 195 - target 196 + source 21 + target 62 weight 1 ] edge [ - source 197 - target 195 - weight 1 + source 21 + target 75 + weight 4 ] edge [ - source 197 - target 203 - weight 1 + source 21 + target 212 + weight 2 ] edge [ - source 197 - target 209 + source 21 + target 223 weight 1 ] edge [ - source 197 - target 212 + source 22 + target 19 weight 1 ] edge [ - source 197 - target 263 + source 22 + target 24 weight 1 ] edge [ - source 197 - target 266 + source 22 + target 25 weight 1 ] edge [ - source 197 - target 439 - weight 4 - ] - edge [ - source 198 - target 195 + source 22 + target 26 weight 1 ] edge [ - source 198 - target 263 + source 22 + target 27 weight 1 ] edge [ - source 198 - target 266 + source 22 + target 229 weight 1 ] edge [ - source 199 - target 195 - weight 1 + source 22 + target 233 + weight 2 ] edge [ - source 200 - target 201 - weight 1 + source 22 + target 235 + weight 2 ] edge [ - source 202 - target 200 + source 23 + target 19 weight 1 ] edge [ - source 203 - target 204 + source 23 + target 24 weight 1 ] edge [ - source 205 - target 203 + source 23 + target 25 weight 1 ] edge [ - source 206 - target 207 + source 23 + target 26 weight 1 ] - edge [ - source 208 - target 206 + edge [ + source 23 + target 27 weight 1 ] edge [ - source 209 - target 210 + source 24 + target 20 weight 1 ] edge [ - source 211 - target 209 + source 25 + target 20 weight 1 ] edge [ - source 212 - target 213 + source 26 + target 20 weight 1 ] edge [ - source 214 - target 183 + source 27 + target 20 weight 1 ] edge [ - source 214 - target 215 - weight 0.3 + source 28 + target 29 + weight 1 ] edge [ - source 216 - target 214 + source 30 + target 28 weight 1 ] edge [ - source 217 - target 183 - weight 2 + source 31 + target 28 + weight 1 ] edge [ - source 217 - target 218 - weight 0.4 + source 32 + target 22 + weight 1 ] edge [ - source 217 - target 219 + source 32 + target 33 weight 0.2 ] edge [ - source 220 - target 217 + source 34 + target 32 weight 1 ] edge [ - source 221 - target 222 - weight 5 - ] - edge [ - source 222 - target 221 + source 34 + target 235 weight 1 ] edge [ - source 223 - target 224 + source 35 + target 36 weight 1 ] edge [ - source 224 - target 317 + source 36 + target 62 weight 1 ] edge [ - source 225 - target 226 + source 37 + target 35 weight 1 ] edge [ - source 227 - target 6 + source 38 + target 35 weight 1 ] edge [ - source 228 - target 227 - weight 2 + source 38 + target 45 + weight 1 ] edge [ - source 229 - target 6 - weight 3 + source 38 + target 50 + weight 1 ] edge [ - source 230 - target 229 + source 38 + target 56 weight 1 ] edge [ - source 231 - target 6 - weight 3 + source 39 + target 40 + weight 1 ] edge [ - source 232 - target 231 + source 40 + target 75 weight 1 ] edge [ - source 233 - target 6 + source 40 + target 212 weight 1 ] edge [ - source 234 - target 233 - weight 6 + source 41 + target 39 + weight 2 ] edge [ - source 235 - target 6 + source 42 + target 43 weight 1 ] edge [ - source 236 - target 235 - weight 4 + source 44 + target 42 + weight 1 ] edge [ - source 237 - target 6 + source 45 + target 46 weight 1 ] edge [ - source 238 - target 237 - weight 2 + source 47 + target 45 + weight 1 ] edge [ - source 239 - target 6 + source 47 + target 53 weight 1 ] edge [ - source 239 - target 215 - weight 0.15 + source 47 + target 59 + weight 1 ] edge [ - source 239 - target 172 - weight 0.2 + source 47 + target 62 + weight 1 ] edge [ - source 239 - target 173 - weight 0.2 + source 47 + target 113 + weight 1 ] edge [ - source 240 - target 239 + source 47 + target 116 weight 1 ] edge [ - source 241 - target 242 - weight 5 + source 47 + target 226 + weight 4 ] edge [ - source 242 - target 241 + source 48 + target 45 weight 1 ] edge [ - source 243 - target 5 - weight 3 - ] - edge [ - source 244 - target 243 + source 48 + target 113 weight 1 ] edge [ - source 245 - target 5 + source 48 + target 116 weight 1 ] edge [ - source 246 - target 245 + source 49 + target 45 weight 1 ] edge [ - source 247 - target 5 - weight 2 + source 50 + target 51 + weight 1 ] edge [ - source 248 - target 247 + source 52 + target 50 weight 1 ] edge [ - source 249 - target 5 + source 53 + target 54 weight 1 ] edge [ - source 250 - target 249 - weight 4 + source 55 + target 53 + weight 1 ] edge [ - source 251 - target 5 + source 56 + target 57 weight 1 ] edge [ - source 252 - target 251 - weight 4 + source 58 + target 56 + weight 1 ] edge [ - source 253 - target 5 + source 59 + target 60 weight 1 ] edge [ - source 254 - target 253 + source 61 + target 59 weight 1 ] edge [ - source 255 - target 5 + source 62 + target 63 weight 1 ] edge [ - source 256 - target 255 + source 64 + target 33 weight 1 ] edge [ - source 257 - target 5 - weight 1 + source 64 + target 65 + weight 0.3 ] edge [ - source 258 - target 257 + source 66 + target 64 weight 1 ] edge [ - source 259 - target 5 - weight 3 + source 67 + target 33 + weight 2 ] edge [ - source 260 - target 259 - weight 1 + source 67 + target 68 + weight 0.4 ] edge [ - source 261 - target 5 - weight 1 + source 67 + target 69 + weight 0.2 ] edge [ - source 262 - target 261 + source 70 + target 67 weight 1 ] edge [ - source 263 - target 264 + source 70 + target 133 weight 1 ] edge [ - source 265 - target 263 - weight 1 + source 71 + target 72 + weight 5 ] edge [ - source 265 - target 436 + source 72 + target 71 weight 1 ] edge [ - source 266 - target 267 + source 73 + target 74 weight 1 ] edge [ - source 268 - target 266 - weight 2 + source 74 + target 176 + weight 1 ] edge [ - source 269 - target 215 + source 75 + target 76 weight 1 ] edge [ - source 269 - target 270 - weight 0.4 + source 77 + target 6 + weight 1 ] edge [ - source 271 - target 215 - weight 6 + source 78 + target 77 + weight 2 ] edge [ - source 271 - target 270 - weight 0.6 + source 79 + target 6 + weight 3 ] edge [ - source 272 - target 215 + source 80 + target 79 weight 1 ] edge [ - source 272 - target 270 - weight 0.4 + source 81 + target 6 + weight 3 ] edge [ - source 273 - target 274 + source 82 + target 81 weight 1 ] edge [ - source 273 - target 270 - weight 1.0 - ] - edge [ - source 275 - target 4 + source 83 + target 6 weight 1 ] edge [ - source 275 - target 215 - weight 0.05 - ] - edge [ - source 276 - target 275 + source 84 + target 83 weight 6 ] edge [ - source 277 - target 4 + source 85 + target 6 weight 1 ] edge [ - source 277 - target 215 - weight 0.05 - ] - edge [ - source 278 - target 277 - weight 6 + source 86 + target 85 + weight 4 ] edge [ - source 279 - target 4 + source 87 + target 6 weight 1 ] edge [ - source 280 - target 279 + source 88 + target 87 weight 2 ] edge [ - source 281 - target 4 + source 89 + target 6 weight 1 ] edge [ - source 282 - target 281 - weight 6 + source 89 + target 65 + weight 0.15 + ] + edge [ + source 89 + target 22 + weight 0.2 ] edge [ - source 283 - target 4 - weight 9 + source 89 + target 23 + weight 0.2 ] edge [ - source 284 - target 283 + source 90 + target 89 weight 1 ] edge [ - source 285 - target 4 - weight 1 + source 91 + target 92 + weight 5 ] edge [ - source 286 - target 285 + source 92 + target 91 weight 1 ] edge [ - source 287 - target 4 - weight 9 + source 93 + target 5 + weight 3 ] edge [ - source 288 - target 287 + source 94 + target 93 weight 1 ] edge [ - source 289 - target 4 + source 95 + target 5 weight 1 ] edge [ - source 290 - target 289 + source 96 + target 95 weight 1 ] edge [ - source 291 - target 4 - weight 60 + source 97 + target 5 + weight 2 ] edge [ - source 292 - target 291 + source 98 + target 97 weight 1 ] edge [ - source 293 - target 4 - weight 6 - ] - edge [ - source 294 - target 293 + source 99 + target 5 weight 1 ] edge [ - source 295 - target 4 - weight 0.5 + source 100 + target 99 + weight 4 ] edge [ - source 295 - target 296 - weight 0.8 + source 101 + target 5 + weight 1 ] edge [ - source 296 - target 298 - weight 2 + source 102 + target 101 + weight 4 ] edge [ - source 296 - target 304 - weight 5 + source 103 + target 5 + weight 1 ] edge [ - source 296 - target 321 - weight 4 + source 104 + target 103 + weight 1 ] edge [ - source 296 - target 436 + source 105 + target 5 weight 1 ] edge [ - source 297 - target 295 - weight 2 + source 106 + target 105 + weight 1 ] edge [ - source 297 - target 348 + source 107 + target 5 weight 1 ] edge [ - source 298 - target 299 + source 108 + target 107 weight 1 ] edge [ - source 300 - target 298 - weight 1 + source 109 + target 5 + weight 3 ] edge [ - source 300 - target 303 + source 110 + target 109 weight 1 ] edge [ - source 300 - target 304 + source 111 + target 5 weight 1 ] edge [ - source 301 - target 298 + source 112 + target 111 weight 1 ] edge [ - source 301 - target 303 + source 113 + target 114 weight 1 ] edge [ - source 302 - target 298 + source 115 + target 113 weight 1 ] edge [ - source 302 - target 303 + source 115 + target 223 weight 1 ] edge [ - source 303 - target 262 + source 116 + target 117 weight 1 ] edge [ - source 304 - target 300 - weight 3 + source 118 + target 116 + weight 2 ] edge [ - source 305 - target 297 - weight 4 + source 119 + target 65 + weight 1 ] edge [ - source 306 - target 305 - weight 1 + source 119 + target 120 + weight 0.4 ] edge [ - source 307 - target 173 + source 121 + target 119 weight 1 ] edge [ - source 307 - target 215 - weight 0.15 + source 122 + target 65 + weight 6 ] edge [ - source 308 - target 307 - weight 1 + source 122 + target 120 + weight 0.6 ] edge [ - source 309 - target 173 + source 123 + target 122 weight 1 ] edge [ - source 310 - target 309 + source 124 + target 65 weight 1 ] edge [ - source 311 - target 173 - weight 3 - ] - edge [ - source 312 - target 311 - weight 1 + source 124 + target 120 + weight 0.4 ] edge [ - source 312 - target 313 - weight 1 + source 125 + target 124 + weight 2 ] edge [ - source 312 - target 314 - weight 1 + source 126 + target 127 + weight 2 ] edge [ - source 312 - target 315 - weight 1 + source 126 + target 120 + weight 0.3 ] edge [ - source 312 - target 316 + source 128 + target 127 weight 1 ] edge [ - source 313 - target 173 - weight 5 + source 128 + target 120 + weight 1.0 ] edge [ - source 314 - target 173 + source 129 + target 127 weight 3 ] edge [ - source 315 - target 173 - weight 5 - ] - edge [ - source 316 - target 173 - weight 5 + source 129 + target 120 + weight 0.5 ] edge [ - source 317 - target 318 + source 130 + target 129 weight 1 ] edge [ - source 318 - target 349 + source 130 + target 169 weight 1 ] edge [ - source 319 - target 318 - weight 4 + source 131 + target 127 + weight 3 ] edge [ - source 320 - target 319 - weight 1 + source 131 + target 120 + weight 0.5 ] edge [ - source 321 - target 322 + source 132 + target 127 weight 1 ] edge [ - source 322 - target 339 - weight 1 + source 132 + target 120 + weight 0.15 ] edge [ - source 323 - target 321 + source 133 + target 127 weight 2 ] edge [ - source 324 - target 296 - weight 1 + source 133 + target 120 + weight 0.3 ] edge [ - source 325 - target 324 - weight 2 + source 134 + target 127 + weight 4 ] edge [ - source 326 - target 296 - weight 3 + source 134 + target 120 + weight 0.6 ] edge [ - source 327 - target 326 + source 135 + target 4 weight 1 ] edge [ - source 328 - target 296 - weight 1 + source 135 + target 65 + weight 0.05 ] edge [ - source 328 - target 270 - weight 0.3 + source 136 + target 135 + weight 6 ] edge [ - source 329 - target 296 + source 137 + target 4 weight 1 ] edge [ - source 329 - target 270 - weight 0.3 - ] - edge [ - source 330 - target 296 - weight 0.5 + source 137 + target 65 + weight 0.05 ] edge [ - source 330 - target 270 - weight 0.4 + source 138 + target 137 + weight 6 ] edge [ - source 331 - target 296 + source 139 + target 4 weight 1 ] edge [ - source 332 - target 331 + source 140 + target 139 weight 2 ] edge [ - source 333 - target 296 - weight 0.5 + source 141 + target 4 + weight 1 ] edge [ - source 334 - target 333 - weight 2 + source 142 + target 141 + weight 6 ] edge [ - source 335 - target 296 - weight 1 + source 143 + target 4 + weight 9 ] edge [ - source 336 - target 335 - weight 6 + source 144 + target 143 + weight 1 ] edge [ - source 337 - target 296 - weight 3 + source 145 + target 4 + weight 1 ] edge [ - source 337 - target 215 - weight 1.0 + source 146 + target 145 + weight 1 ] edge [ - source 338 - target 337 - weight 1 + source 147 + target 4 + weight 9 ] edge [ - source 339 - target 296 - weight 4 + source 148 + target 147 + weight 1 ] edge [ - source 340 - target 296 + source 149 + target 4 weight 1 ] edge [ - source 341 - target 340 - weight 6 + source 150 + target 149 + weight 1 ] edge [ - source 342 - target 296 - weight 3 + source 151 + target 4 + weight 60 ] edge [ - source 343 - target 342 + source 152 + target 151 weight 1 ] edge [ - source 344 - target 296 - weight 1 + source 153 + target 4 + weight 6 ] edge [ - source 345 - target 344 + source 154 + target 153 weight 1 ] edge [ - source 346 - target 296 + source 155 + target 4 weight 0.5 ] edge [ - source 347 - target 346 - weight 1 + source 155 + target 156 + weight 0.8 ] edge [ - source 348 - target 296 - weight 1 + source 156 + target 158 + weight 2 ] edge [ - source 349 - target 296 - weight 2 + source 156 + target 164 + weight 5 ] edge [ - source 350 - target 351 - weight 1 + source 156 + target 180 + weight 4 ] edge [ - source 352 - target 350 + source 156 + target 223 weight 1 ] edge [ - source 353 - target 354 - weight 1 + source 157 + target 155 + weight 2 ] edge [ - source 353 - target 172 - weight 1.0 + source 157 + target 210 + weight 1 ] edge [ - source 353 - target 183 - weight 0.2 + source 158 + target 159 + weight 1 ] edge [ - source 354 - target 436 + source 160 + target 158 weight 1 ] edge [ - source 354 - target 446 + source 160 + target 163 weight 1 ] edge [ - source 355 - target 353 + source 160 + target 164 weight 1 ] edge [ - source 356 - target 357 + source 161 + target 158 weight 1 ] edge [ - source 358 - target 357 + source 161 + target 163 weight 1 ] edge [ - source 359 - target 357 - weight 4 + source 162 + target 158 + weight 1 ] edge [ - source 360 - target 357 - weight 4 + source 162 + target 163 + weight 1 ] edge [ - source 361 - target 357 - weight 4 + source 163 + target 112 + weight 1 ] edge [ - source 362 - target 357 - weight 5 + source 164 + target 160 + weight 3 ] edge [ - source 363 - target 357 + source 165 + target 157 weight 4 ] edge [ - source 364 - target 357 + source 166 + target 165 weight 1 ] edge [ - source 365 - target 357 + source 167 + target 23 weight 1 ] edge [ - source 366 - target 357 + source 167 + target 65 + weight 0.15 + ] + edge [ + source 168 + target 167 weight 1 ] edge [ - source 367 - target 357 - weight 4 + source 169 + target 23 + weight 1 ] edge [ - source 368 - target 357 - weight 5 + source 170 + target 23 + weight 3 ] edge [ - source 369 - target 357 - weight 5 + source 171 + target 170 + weight 1 ] edge [ - source 370 - target 357 - weight 4 + source 171 + target 172 + weight 1 ] edge [ - source 371 - target 357 - weight 2 + source 171 + target 173 + weight 1 ] edge [ - source 372 - target 357 - weight 6 + source 171 + target 174 + weight 1 ] edge [ - source 373 - target 357 - weight 4 + source 171 + target 175 + weight 1 ] edge [ - source 374 - target 357 - weight 4 + source 172 + target 23 + weight 5 ] edge [ - source 375 - target 357 - weight 4 + source 173 + target 23 + weight 3 ] edge [ - source 376 - target 357 + source 174 + target 23 weight 5 ] edge [ - source 377 - target 357 - weight 4 + source 175 + target 23 + weight 5 ] edge [ - source 378 - target 357 - weight 4 + source 176 + target 177 + weight 1 ] edge [ - source 379 - target 357 - weight 4 + source 177 + target 211 + weight 1 ] edge [ - source 380 - target 357 + source 178 + target 177 weight 4 ] edge [ - source 381 - target 357 + source 179 + target 178 weight 1 ] edge [ - source 382 - target 357 + source 180 + target 181 weight 1 ] edge [ - source 383 - target 357 - weight 2 - ] - edge [ - source 384 - target 357 + source 181 + target 201 weight 1 ] edge [ - source 385 - target 357 - weight 4 + source 182 + target 180 + weight 2 ] edge [ - source 386 - target 357 + source 183 + target 156 weight 1 ] edge [ - source 387 - target 357 - weight 5 + source 184 + target 183 + weight 2 ] edge [ - source 388 - target 357 - weight 1 + source 185 + target 156 + weight 3 ] edge [ - source 389 - target 357 + source 186 + target 185 weight 1 ] edge [ - source 390 - target 357 + source 187 + target 156 weight 1 ] edge [ - source 391 - target 357 - weight 4 - ] - edge [ - source 392 - target 357 - weight 4 - ] - edge [ - source 393 - target 357 - weight 4 - ] - edge [ - source 394 - target 357 - weight 4 + source 187 + target 120 + weight 0.3 ] edge [ - source 395 - target 357 - weight 4 + source 188 + target 187 + weight 6 ] edge [ - source 396 - target 357 + source 189 + target 156 weight 1 ] edge [ - source 397 - target 357 - weight 2 - ] - edge [ - source 398 - target 357 - weight 4 + source 189 + target 120 + weight 0.3 ] edge [ - source 399 - target 357 - weight 2 + source 190 + target 189 + weight 6 ] edge [ - source 400 - target 357 - weight 5 + source 191 + target 156 + weight 0.5 ] edge [ - source 401 - target 357 - weight 4 + source 191 + target 120 + weight 0.4 ] edge [ - source 402 - target 357 + source 192 + target 191 weight 1 ] edge [ - source 403 - target 357 + source 193 + target 156 weight 1 ] edge [ - source 404 - target 357 - weight 4 + source 194 + target 193 + weight 2 ] edge [ - source 405 - target 357 - weight 4 + source 195 + target 156 + weight 0.5 ] edge [ - source 406 - target 357 - weight 4 + source 196 + target 195 + weight 2 ] edge [ - source 407 - target 357 - weight 4 + source 197 + target 156 + weight 1 ] edge [ - source 408 - target 357 - weight 4 + source 198 + target 197 + weight 6 ] edge [ - source 409 - target 357 - weight 4 + source 199 + target 156 + weight 3 ] edge [ - source 410 - target 357 - weight 4 + source 199 + target 65 + weight 1.0 ] edge [ - source 411 - target 357 - weight 6 + source 200 + target 199 + weight 1 ] edge [ - source 412 - target 357 - weight 1 + source 201 + target 156 + weight 4 ] edge [ - source 413 - target 357 - weight 5 + source 202 + target 156 + weight 1 ] edge [ - source 414 - target 357 - weight 4 + source 203 + target 202 + weight 6 ] edge [ - source 415 - target 357 - weight 4 + source 204 + target 156 + weight 3 ] edge [ - source 416 - target 357 - weight 4 + source 205 + target 204 + weight 1 ] edge [ - source 417 - target 357 + source 206 + target 156 weight 1 ] edge [ - source 418 - target 357 - weight 4 + source 207 + target 206 + weight 1 ] edge [ - source 419 - target 357 - weight 4 + source 208 + target 156 + weight 0.5 ] edge [ - source 420 - target 357 + source 209 + target 208 weight 1 ] edge [ - source 421 - target 357 + source 210 + target 156 weight 1 ] edge [ - source 422 - target 357 + source 211 + target 156 weight 2 ] edge [ - source 423 - target 357 - weight 4 + source 212 + target 213 + weight 1 ] edge [ - source 424 - target 357 + source 214 + target 212 weight 1 ] edge [ - source 425 - target 357 - weight 2 + source 215 + target 216 + weight 1 ] edge [ - source 426 - target 357 - weight 2 + source 215 + target 22 + weight 1.0 ] edge [ - source 427 - target 357 - weight 2 + source 215 + target 33 + weight 0.2 ] edge [ - source 428 - target 357 - weight 4 + source 216 + target 223 + weight 1 ] edge [ - source 429 - target 357 - weight 4 + source 216 + target 233 + weight 1 ] edge [ - source 430 - target 357 - weight 5 + source 217 + target 215 + weight 1 ] edge [ - source 431 - target 357 + source 218 + target 219 weight 2 ] edge [ - source 432 - target 357 + source 220 + target 219 weight 4 ] edge [ - source 433 - target 357 + source 221 + target 219 weight 1 ] edge [ - source 434 - target 357 - weight 4 + source 222 + target 219 + weight 6 ] edge [ - source 435 - target 357 - weight 4 + source 223 + target 224 + weight 1 ] edge [ - source 436 - target 437 + source 224 + target 229 weight 1 ] edge [ - source 437 - target 442 + source 225 + target 223 weight 1 ] edge [ - source 438 - target 436 + source 226 + target 227 weight 1 ] edge [ - source 439 - target 440 + source 228 + target 226 weight 1 ] edge [ - source 441 - target 439 + source 229 + target 230 weight 1 ] edge [ - source 442 - target 443 + source 231 + target 229 weight 1 ] edge [ - source 444 - target 442 + source 232 + target 229 weight 1 ] edge [ - source 445 - target 442 + source 233 + target 232 weight 1 ] edge [ - source 446 - target 445 + source 234 + target 233 weight 1 ] edge [ - source 447 - target 355 + source 235 + target 217 weight 1 ] edge [ - source 448 - target 447 + source 236 + target 235 weight 1 ] ] diff --git a/scripts/biomancy_production_digraph_twopi.pdf b/scripts/biomancy_production_digraph_twopi.pdf index 403aba84bb988ad6b24235a304f7dec62574f3f8..82c28ecaaac0cd1847b58f8d02f66df23b4d6b59 100644 GIT binary patch delta 171573 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≧rd9jO~Dq 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 Mv}x0Oa37EV10N>rbN~PV delta 298661 zcmW(+16yV78qPK*YqCArwlTTMwz1+g*|ux4U6XCwwq2+1{D5`sy{>mX_jBtVzeWlQ zz^?8E1;#7sM!#jw3n9P_(iv4Rh=Gy4y+qiJmAg!=;~Yb^nCN?D zt6?gs#WH^m;I z{rO(i_0iPzQKjF$d%5^|`FVE=yx#+s(Vt4d=PTpaQ}d&r+l#=Xz+3U>Qt*U8^|+QP(p|H6tJH5CPm)5|*VeJwZbt`XT=+KSe}CpEVT zeUHbEhpJku56d=%j^c}~yGM2D=X;{hms4OGYv1kN%x8sR-zqutE^I@s^WaF17P#|3 zKJEHB+c~0FS6kFj)nJ)Ts>gM40RDXW`I7DX{>h8>K2gOS(uuknRi$&YfiFEy4^)&_ zwEzulD~lU82_Iz(E1lxg*W>#1lP~P*v>hLRJC5vcW%EBR#h}yNwCdhnsTvON6E$=_ zt}EZzSEm?vZwVKG+prJXWR`n5V8mMAX(F>#pX>605{cX;Q@|{bmMJa^Y?Jx?A@R;# zeOq=wL!p(&^H1Rg<9d9955>FHH=oVYI<0q^E|bcU$61ca{I$t~iR(hz6te?ewJsNA zpGN*m!*`CVJw}2dI{e`&c&EZ`tcmmvfjDZ^Qu;+s^!G>Hd9#_>;8=z^O( zUvzZ}_+0*ZX*|pcTU=Mr5@x$}!B`OoSd;@1Q1|Lx(Xy3gSr%PrI z;%qAAe^Q^m%Ihis@4B0Oi-{*OQkC8=e0;E;3(5U7QpoSF6e?Z#cnrsP?=#x!H_rm) ziwfBlCp_PDz&d8S#N!q=efQf}Uqwpe{ORd?a__3t%^Fu0RklnEzDrH}N=Y^SVsNA@(1 zbysW{U(s*Q?+E$o)9>!4->t1$Ffb&}L$0bn(%EZ+l{Z(bFiH)Er6V<>+TKG&j+IfD zKk{rNy*1wf(aO3kspFUBHIkpcrQc))ab9{H|Lh4JUwY+dwCPZEs4Z%M={=t~mhJ76 z@!fAClSebIPaL})Z^|fm$q|is@CoQj=H!_Ulr++$ILR}j0Wc2bUcpVNKIGRc132Rs>5Ry6K%%yj_JwOgvmw* zNfVa9-Lx}vi0@+``pr*1>j#O-P~)a&7URy52@)PPq_+XS1==@l2IctqM22m>U1n(> zvzAu0AJ252<@z$+N(a`35e4ujslEd7G=+sIg7Soyf1hy6p0)VPKTYN4i>u__#WJX? z3ZhRFcWv#E#k4T&473$;hxQw6bw=`vb6=T&d!RYl(=mUP@mWljN?&*~sB2Y3iHUf5 zdVjIOl9L&(v?kI=diu?kO3aijw-UDfntOlWnrNig^WFK~)!BRDwO)KMW~JoefY8;; zi>lT@ztyAnQ7BodvfKF&sfIFzxUXYJfi#khQ0`vv%1=+;m+!6Dk!1~B7(b;`A)ZwM zOiI~}$9G9ZTq|_yW80JSm!VTpq;MZXFRz9 z?#1}P2s`CzQb+jCJ^pR_Z*P*BO8Z5wkjFN|;kX%)+lEV(V#J%ca0jlqj&a3v^%HtR zaeI#X@@KuC`ryGV6}Qw{`DT=-EW3h0)E6$smg}?IsG!#rkG&o6m@bR>4C*%jW%1XK zCzEC_JoEL_LgQo69o3eQFQ6-)t9lUxuRoD_u{S zU76&*-@H015{qQ6gJ`S23r=eq%=ps(8s*BiE+;0RP zIb5Xs6Y7=AQnT+2T->^)61uFwMqxj6Lh;9s=cy&^#1{4} z-Z`x9tnQn(HMprGo2eAq-cwnp2PY3Rc_u3t^i5UkBcs8ABAP~(i&Qy_PCvdA=a$Lc!jmVh;P)FzvVT8BoN-- zn^%dr(D|$ad?!S^=}+|ZmHAV8%N>0%TYiUCFpahfDpO7rXzw2rm`Ksn1n9ot$hAfj z*CuKwkW#AlEGPzfYJB$8NxLQ!E$p_qIkJz-G`8pa14NAY9Kb6n<;*_D87C_2VZD)jCq@czOtxnohplQ(SCt#DFg-qR@sk8S=05F}FLh5=hSICT4O1uF z1v2gMUY^2GLA?it3S=&FxzBJjy6rudH8regM=~rSl-?-Q5wlQEDwK^*IM$XtG@HEP zL)|4v%KAk&^6^;(f#rn(y^2j-&FFT8(j* zoddtaT%{a#UOJD~%v3WK=1@huW*IefX+~m*xKe{sYt$OEb*0h1}#BgeY?&!c*0L$7wnwe$1T zIZ++{!7DzJcB`W@;N8Tbn^&u8ciF1ns3R)vgvHrr?vdL%_!7vT6@xhL{8MRZLhPTD=8DouFe#lF^?g@mgfC@g zX?J?}j{JrU$Oz(R!3*qXC6W4#%NiUvX}Q-p0I^M2A|Dgi88O}MUc$vywQ>1-|v?=5O-SLt7>5qV;l`P;#)7~ou8tHtO|+>MYY?@z?JH$ z*lPM>cT-dW zi0g<2y-h`E30l>U6OMCUcTEc#q4ecj{>Ph6CscXo}ML4Cg zG&a6w@n9l;2wU|e(Fq)++lzcQr&n7Es9W$jPp9d2R~eyKx;@z4ON_eGi$1+pGP%Fk z!`g3wcFbU0``2rGIVt)(S#*V*-DU1i@V!`pSbWC4u$&xjW?0Tx^#z2BwGM_N_{zWg zU%y1`u{rH;ZdVUx-t}+>PK8CS<~;6sO6xyPtBUVc{r2;vxxaP0IjA@4@UQjS0>F-_ z^WpHulc@A&tZ6xh%^lwzH8*<8_reF+#%MTS^#~*?N%fymvW365f1MKtE9Q67u2)@M z=@AWdTil4{7szCOH&8%6)g@LRqTMvOr$UKume%lp`ocI)j9?UH8waW|cmG!%DfCQ` zNzp7GF7eYQxI4*Oitqx!Y+ct9XfslE!if zgRu6pN>%7dQm6VI94R|~ClYJTB;tR6-_x?g=h$FGUS;6x>KP7}9%4Z=_e-x6Pij)x zD$jQ|c8VU&7hq`Gl;?M~YZrMY#-C_!Z{9VvL+&$lS%1<+)M!i?O6Rawa9l-~mm)<` zsfHaA7FYTm)AJ2z>IFsvV-Np$@nzQ8-JD@0-ED?zM+PZ&C#XmvZI{ANwS z-|3q{cKXy&wY!jxjVy_H-!x-AxNORIQCkqPyb#DAHXI|nnM~&NygtuVVf^70KN6j- zS(Dq80@svXdM`D|zQ=BKwOM#3gW&{I==?>}Nq~V8yQ%+3*8r$8kmIaBqFVcAPOnEC znvz45h0=~no3~aQv$}Nlgkti0hg#cv_pcjejG-k(7`fV7Mcx|FypJ4muZDeG>_x7b z>UeKA=l`hQ=RxVtM71$VPQ@~MXnhh`Wz>vZBZl-D`RZ|6KfH+UnGSVNbLnJLB2z0% zGPKYq*jn;m1wcK+?tpKgVvR8eN4YCr5lXj0u% zzikT%w|?hRhq`%shnh#z(Npo5Q7%me>$L)z_#;h3g0y zb+zXg+5&>Yw~Bw(?Kpq$hP*=IAt)+~^u3)GhKU2>HWGAAY?8M!lJp%(yKtJ;vx_+; zKX#)<*EzfxIfIQUYC7%;>I;R7e+t{PC|J7cfgb#|i_wCSAD*cvCB%J#Mk&$pUN)8v z`Jp6(Yx#aL#bL=9cI0_Z;wn}~pvqSv!HbsKMgt(?TGj_RkCAW=u5ZB0A6%1dq10Bi zg0i6za}p0Z%3&YL6NwI!wo5<;B|7b0#(PJh8mVpyhRS#9=ktKMf9N{4MpR6s>u8uGDxkC&+Qc;+6WLT-uK zC*=!S*OQs7_bgekHoEbbM4Opyva2pEb_xC)Twi>O=lG2SF4#!*pGf9XQ#QsYoPg~Q z+fQBhJufNo9gU-1=Y1V0AI%R^p7@t+0C3;AC#-c^JL@{sX^eT+$hRG&n!_C1hsk2j!(QeOJ58sLAS2m1l5@%XkyPZU?y6jkVyL97c>5YspPSG1NL2Q}j!A(4 zC(TcX#n#)}q*5duD}d~E!275FZyc?ksV-4 zhK&&W3thvMAo_^WdJl$5igFWDB7l3rn*URXQ(K1)(6YOZ8IKPU#FEwj4ISM3S-~7Cljg7 zfv3!b73yl#18vwx&N;Zh8H;e?wLF5UYf;)Lxt0Cs$@qhK&;{MauvB6QFVwf~TOlcz zy*DudYeHDn2=Vce{k5c1tg(o*adx;)Fb==naA@ALoU?I(pJrn94w^QL+qcZ!7X?>i zJosSQbJY{dT*t2y-}B2@0-{<<$VN~};eQS1s)ZLRu4|MsaM{_2t4u&>z?uu{`w zyK}XoNb}U$SaE3S59B`2aK$i&ER-2ZB;~Yw&~iLVYX<2GBsL{`43@Nyh-d8NPrqt= zwA8P7y`X@f_!!xW(}IbLvgU-FI#2a##EXiy{2|?@33t>raQu^~o2$GFLgJC_60?$i zXy03E!r=?%MBHuwt&h-xDf8u4KX2uq7RY8>k;{ch;YVzgh0Lo30sa-Or?OBv{%Yck z)5KB}hmQr$PWnG|(L5ELQYX!;i|3P&;q;a{KZFW|vVKHNTU0$dihOiXj7DNKXQ_mP zPfH97^*{w#aUOz&khg&Pb22T3$?lo(MT-uD1ge%^-h<0-3NIcr9(YN}I zojYi+cFv0I$qw5IpG%Avm4#CgaML9!NR=TD*EdFylw+^jp?=CjVsXvP%%I~n&6r}V z`~6;JoF<{Entc|C3%Y9zz{x)oFoo;qIbxK#cjK`JgknaO1~7lo&M8#t@m73xIzl`C z!5?jYjg_B|)+BKCqUW7~aSYZ09UvK-%{)jVd||k0Tqh#t-lK!6rpIc5=0`tXl!q@1 zlIRpt4oYC0Wx`b0sHNzWVWjRWt>Glx$vy+5RRgn1gYi_>uwfV(fJl=5UR8OAfH~yqs_TWXISh@6gmo zQnt~5um`1U?$qyUq^jg*7F(C-&y)zrH}eDlO0bMI`#J}g0jhr|$fu~Wus9$glk*8! zr6oIX{$J)q62VmZ45~N!l{t&G22ChMX@t+jHiIlytfap$XuRWDaW?byvFQ*JftixN z|Bw*j_;{7wau#P7?4Jg0zwd~z)gN)08{bdlm{JY&c7k_JFV)T#MD$yp7jvldeusXSlweuF#F4TGe><)>oMCT zvZgy%5Z^UB7)&yY$30v>bFqX{@c?N6R4p}@l(Xs+$&3O0QOi-0m|-6fxOmWVmSp*n zm*f}A)?dI=YqcjA0AGxt2^M$H6GKkDLrdojJ~Xr&N1*FA>dhhqVtPW%jh9W!&{mJ; z^DB98O+!C`R0-#HgkJ-1AbM}@3qCoiuBjf8D6uhZpW=qrjwuc?oDm}V|Cs>gF?qs1 zkvpVhh=qRZoM7ua^!Ykf-y#sVPAE7r2E_mU@z;xekAAuG;F^i0q^BWoX2IB&Qr#&h z{NY8<0RsA0>4i;NB=frwy5p=Ld^1LfzkJ6Y6BkY&oqUrV>J&0@_LA{&pCo)7yPbQ7 zTQ|-Fn9Yy@B8&oNH&<1YJIEOT-HpXXpPG@tXym+h-mxVp*H7>SNu!lyGKvO$lFeAU z`sXB*Gn^XNt3n_QVy~YRE zsV8@t2_kLsmgkq(;)U2Ywz!Xtzrgm4mpq@k9E?aqJu6rOP4FZA76HV$JG`w#RP%m z4c1c2zbMM5`nYw^DNaZfs*dD%ym+m?@VS<@mhWSA!iF7w;l{n%91Xg)9ac5ZG2KiM ze6kZB9s42*6pI&Zpi2P0MWpY4XuKE)o*$-DaPTAE+I#M!O&_WUZ|zYGomf_F8gAKy zNq2VHIUg}6r1RO2K|DOYs>+QK<+YMl8P*O1xuAvQEH0z>MaJ=OPk1#qe88X1R|!X? zwlCUgU{PDa<=fi1Vvc&E=%%V@I84n;yCh>!Z~uWSPhE|r4^&=Xn%~Fqq&}a-|M1~j zxixh&kOUWHWyTb(U+r`G3XUu~$omSUBH?~Vg}G|Ijb09}>k*CMSK>F|LP%DeZ`CGT zv3a6V!>2?32`I>gu$P!OrHBXB)B24g_-r4Fb*5{4>S&9yyw)edGt4WRiEx6ii6i12 zb&4A2Z?jN31`NT{mK@!pW$)Tn^-C~7?Zd925Cy(9U|KZd>*}o+WQDD{1eQc=NQVDO z((UuZpXyL;{ix^Y?eOToWxK+c&U;(S$mg9uS}Z$d;T^nBe)`vl9zZT3D($9Ih41E7 zWzsD!Rl4_djQ48*pMIY6rGVocjXuwQs2!ww(G;u|7U0Tg*L3omd7>lwec2@VdMq=M zjt3uM2IjeOUD@dMqx#08!zAczcxaBJh`BB1-*e)vZPjFu=r1c;G?e&{Mni5~juS~~ zTz7{|0Y5BFkfEtOWkLL*%+-P78L#M9aykMIG_qU~*tU>2*pC4pJ4($7Nis;q9U}hIMqXlp z;unwVG|;wkVi9umMMMST%BbG>oS?|dCp^j?9aTEPT=TsYkMfYMef9@!Aw`;_jHC7g z1#wAgVvEbF;dem{bLv?LwGTIr&~!Dt=6R|@FF$kc8wS!F>7<;SGLuQMiL<30WV)FE zAu)KZ(c*DExBRV8(1^gY_!A0{Ye`hH6o*>84^tQCy0u@ji6-M$HZ95wr>`TYqqqy z14iSf7i}NIx8rRZ^XnfgR!;br^2mmjlc^`xiuSusHZnyo2c+sM1$nl3>HD{WxR=Wb z{LRhHb<8t;TSQ_yjU-|x($k`M-KLMROOhCwm*5lLio36>*Yd!+FL{}z3(8GwV*A?Vsa;RV+k}rJ3$+7Su`!y zf(PWJZPb^?B-Ma{)gJMujAKFm5D5yQ6JqHO(_UMvgi#XdG&Z|1KkFu+1a~bBJhNU( zcG7WMo`@TaK3iMVugxDaU6vrvL?1f&0;!GDrIWggk7LBvHD)k5K}K{kzO`jzRfh7a z$_MME!vPawzxc$h7hpWl*E*pbNR91jKhQBN8RzAJKr=jYU->lPM_VAu) zdpQ9LB{PA(u_OgNQkbx4%gga8l)e-}OjLh4Z;68}hOrJvG;6b+fSFj?t&^6>h zj(l%N%QOBtKoQpoEALO4hKkeFHwqK*0 zO2G1v$Y3`*ezdg=^J>1;z4gnPxU6_Ja+Plw14N?;)VtMMlQHTcw6-0OKuXYoa**+H zmeS(t-{==-nlpB@jn}^Iaxeq-j;mL#N|`T3YEY&C`L*M_XiNNz!(Is7?M%tCDM&59 zj?*Gza0FfpFu3LBM;4G*nx|W}*Y2aEBAJi8!}?wiw#+;aEnpbYz0=jhn#JikUYqCQ z;UjD6rOTD9GVC^`yA|r27;s!PV`~5fx-qJeAth@GN}DS&m3+e_+Xli%2K)cAm{0oX+1{S>8v`38V{@YJ-GJ zWOC&lckN9}A?5g-8bn;N`9#<3Sqg0}8QA+R-&TebveREq)WT)`@Da!M=(u$6I7$6X zJ&L%-_~TL!kW5NA@QC=hW#e?;1i$aTadsaIB1!p=Y-YI?Yjvdo4J?{YN+>HQDj^z=Am<9) z7W@r5_5Q@txL+wCm{s>lKuV>>gZ!I6FC8$!7@=M@cF^k?j<{*R%Iidng_v_rs`v$* zqmh?K&LN?ENNE?ndwp+d^6xMcfcU!35+3j6-|-7?d>86WWI20>Tdq~wf#l#6O8jn$ z7^j@A(TVoxF7m_94>W?*_ZdbFxp0|RX0DL+jm>yd?tinD(!FUTnpQ7fgc<%y;1dag=FM@B z|FKz8qw*`B@8FN`yQ98sm&yb|VK}BaMA6tcE>H~dA|o$}6|a^rw(-`5#>1`1wcVHW z2RZ9D1Y$Dxq(jD`>GyoZtX_K^As~3O^ORp5dc`8jjPBYOtqK-?JE+${Hu}uw^J*bo zLAM;~l0L#BaQGVrklQK&0f9vGR|caigL@!29RV2Y4bF{RQx|#}Sg;3s_oSSU`$XM_ z>MIiV->i#?x?AiXKB9XZR3V$_>c?n1ZbTsuZgt-MW|V zd<^Kr?DT}o0b40}3v+~o#rY^LoRPodQrqd7%7$jogie?IwGXG-tN(6N{L(^V$tgpd zpGRWi-m*Hp{{sU#c#siV+%tzpN1^baaLeH{mPxSy@tC*W{S_CJEH_--W~;b%-{i_9 ziNtdJEZjgZA__2+fv)!*-k3e3NGvNE%)AWBpLNMi*jz{N-4Rse&Or_IXL_xiykmBU za6EVX1jTA*J5{HsqD#%TOpYKany?mo)mXg<*tA_A$_YANo12y#^1`=fh(hyCPM60{ zG{h@U_$`>J=h1%aSrGV5R@Z-DZ!f(Tt@K#}#15z|m!~!cA^E5JbSek|goR z^E-;K{4SRLlq88vDV?Kf@vPO-UjZFby-@MogGO9TU{3LUm@a6Yw9HkNvDJFshNut0PM;YC+vRBaqj9 zWx>}Yv;vdfOX`$naM(=x71;5kJ(=Ez@~}z8Qvm~R1*WXb7R^QlVl*X3`V4$5UHulE zPI-G5Lf8>}a{r-Q33_$sxUaBU^Pv(LV}4?DQQ@Qv56W*jrgUdqaiK%=Y(W$ zROoAoy@j-?t_XP)qn{x=a%`!>Q{j+VTvc zI3IPR5zt!`AN&&;iqs+SK0G>tf5$QlX$z|dC`&C9IdGpnbZ!&2{|oq*r~G$-eI#}w zmw>e5jAiAnVAycrmJo;3Y?On2v|&c=)A&N~b?wa!U+R0Ien8#39Z5^$~SZ1#fdb#BMp3gEXF}49Wfe2ejC)Bgp2J zcHiwn2vGghfOc`g1|Jsm&Z6jL5)5EDKjNO(dn8y8i817>>j)^|C# zZK8i(6nAVO)riDT7>j7Z>=$S_D#{9HP9lJRPhFAy7+z$jDpV}~Jsme4LyjFN*QIF? zfM99TqI*0cV!+)Zm3gt)pTBtWK{CT#-lg@9rZOl#b;qLeF_NF*<|V++4*tupBRv4r z{2ioc3E>)nN?ujEl1)H)1_+%n1!tmq$2|CT|1U!Z;`oqeEX5FRz(1OR9`aJ0H*jYw zIND1S>6p7OF+WYWaH>g!kav)_c>JR;mg&jT{yQv8sYyD6cT?%FeHyil`tb>cCg_&s zJ-dlN_1jmyn{7YZ6*Qfc(H<|OqxuPJ-!MdX<|LdgQV85raNDyr>X{6miFIuq5XXbV~B{si*kPy zq$8=ZmNR3zED@w`#{d=}mOXXF(IS3YYDW|Ah&dU&8uht2#iJ%|b;;Lx*yp}bruLa{ znvBfd@nf2->++8BK#6ilbm|+i&*;U#U#@b{oFI|Vryj&D3hJBr0yOWRun1+dgGXL` z9sO90Y+9#S2diwdFKlSe{OuM?=sz$oXB}mrnM^d*@8O8yp8-PVVlw2tbrf7ctn_uVD|&4y6eWTQujpDP7r<>AD_-O*_cq9MX(E;= z%&}>S6Od2o@p#!mw9r%ly(=+3n+Gj(=Tx39<`hRgP}#U`*ld z{M}fqgU6JeegI+U_*Y7@@Y!i!&X^h_m!#9!(O>feB7~8qd!n%9b6Dwb8Ech&%d@tZ z^JT1zsc@mu{tn^HO^_T}^?a-|o4X|^w5VAVNNrQ>X{}Z_B`@4o z{Ar;RGzFBl9joX14JUU1K?QuO!XglW7Y&hn$EF&4F=OL}{` z9&v)ql)ba2RbnA*q80L0raXsSXjOy~T8xbr)(SJR#!z^kbk!ymGw#sOPy6j?l1;cA zUEg4UwdlC`#tzq^`R<|yqQm>@k6xxuKKR-C({%ofuSM+B^oW}j^&+p~)g2-+e~A_+ zQp>^2H5Y$~Wqn9%-;JPG9g;xssD?*cx1Y+y&#Ga)?o=gif^fiWywUfMSzXg!zKjp7 z-rclxu!ylAvss$t$6?1tI3ldM={HAAIMz16%{ho{mc!(B-7ta}WIU^+&!E>94wb8B z01lLAm_k4=3iUK$5u&%3zQHs=4Qe_!vl!Z^LGu2q;D=-dv56F&BMz7%412GfH|*7? zY|pwyB$_%ZVUS+$>=&`8sTdm#Rd^8MB<}pc1`mZ1IcZz7yC_5EIM}z^-xoj3KS}{W zXOcUL9colFl7W&~>_SZu$KQvi@AO<{IQtk;!SNVMc zt?{UR^^`PqFD5P&1&;m4T;aWyqX`h)ve-<~mzQcmyr<$^L2bI*uar-iscv{sMkmex zwoZyY+llpx0^XnExBA9Vjhlu1QojM#Q~zy+;3#h)WbsNi>&uAcGA=yCf11IeV~QWK z#-gnWe!Gt~x}(H)5I5X8OZWC;6b7h#LXz7kz#C>=?lIBM!R5rh&x@Q+vIDbH-MU+k zgbVt4q;0}zn|Y*=KNjBpOnjx_+({CdKgi)&OnroIY?rT{0tg-Wji&TN;_x zRnw0Kpi9|Ef-JCYXJv~#j3j;qG4cvuJnhMak%Z;qA&_0QH4bw`ini-q@u#j;o z6S@nGsJgTQJdADh>KFiu6}}Ar7lQ0JIFLKkXv+dmZ|6 z`(ImavAP+wMa)=Fa9l3>*tH5;7mBJ8fvK7HPLuhuwyHnGEA6C+*-*R;Dya6~dkO(! ztM%qM(y<8zoDr3*3TxoqfdwBJ82WcM2pE_=qoMg!_s|M=+- zlSc_7PXdc|_#%^{u;jfu_+!t7sCtj*Mr2==!B{6yc5v7x5%>lGDAEMXMs-Rpdz<57 zQrmYi;8~-%7gnOqCVn6P>?%(qdXD)rFLI)rZe*{0V+6t&a1RfnLbRJJuKG{=s8jN! z>5|8UwrMM)m~XpE275rrkh}!Q#Hx}ug*h;IyWqN(g{X)8@GHvIGn#K@R-v>JUc4v& zwAp{&{YRLjKVtki_bX_f&FmwZrp4xdV`HnVD&S4{AIPI6RUBCKD%h?zcKCpIFp zfGpc-dPy&%;UIu|R^8o4(hu%%bQZBmB zh(uibRZZ)=9tJ?dr>SGZYTy)JzdT+$W41^b zj}K6}*!M@uSe1Lc2tt3Q;1FMiy!JXlppg`sy{{*{9%A+$6E6hk9Utx-oVBfj9NaB} z>qO#UJ2rzl!#oHhp>$kU$-kH@!BdM?&e7b)hqt(yV4_&}HsF~hmZK?!OWC?>lbRr= zay<2;P9dk$z`bn$;4%K|hW@Z<4iaHISPYEo!6U(3TjM2-IrDg7pj~COgs%UjZ8u*> zxFN?6d}H%kL=+JIag6K4+47WpOU;Ni5@2Lf=5dBwL$H==^dULn^B%Gg54OTCo}{|9 zX>#*w`n4#R0ld<2nC%l;67FWB2(2DN>jX#Mdc+Bt-+^eix*Wrmq-OBz6nbuX)Bu@B z?e2dxKuXtx)2;Z++Pa@!D0sLTj-JIwml)sy>@WRv%U`iXq5$l!8d@yttbyLp$ zyxWPMj};x{RC}^C6_`S@-@KRZI?;To*}cTc{c@a5C+S=O*l3I)Dgo;FuY!gP-Hgg> z^NhC-E6C~$_^-6wg0);@+%U`DIzA}0gQtMiE=(F+LmTDz_yB(h zb{CZ_0eKAyB%buF=ThT_=})Cy?($A!iBWt+R(9|E54Ygc$IJ~YO$;~INB)ZH+8TPW zXt}ti(-ce5Q_t{AN>*fZobTwAl;~CbxSmf%sg0Sk-iZ0zPkb1zK!WHQ%_iUMeGB$C zeC()O&!GG^#w7ldcD^33J@1bH$`q;fSE(k@goNBD;YyMgm(Cd&kKB!pMf3g_ zs1Bb3iC-=0vczw*7nZ~1xzGss??#1D@wwjHtY>Zj* zA~`E4_T4p~?;U(Ja(x{=x6YHB_7I|R9#MP$SDE4@F^bFaqhJ{B`S{3tF?7}l!~_UB zNXWh-l_F$2<~I8YhXSUs?w~Dx>l}wrnZ^vw;jZqW;tJ%4X1Ouv+KH_me{Hv*jH(Q6 zpV+bF?|gQQ5C5l#ww=s2ER})&^0A!7-PRQGKIo|6R8I8pd?K~Rka_k}ogh!3@o{L_ z&Gnc%=S#O6s!`X{WEujAtWZ)xXZXpaB!tNoo2sPrBu(Ys*3)0MM_xYD?@+yPv#HE= zooOdP5E{O-hZotc zrTA=Vn$Wg?fBKoY`EztLG>tJ1mxj44%vZe%;+%s^bUnlH?CEcwpp56_8_@RNY`#`jcN};_CWkC zGZ#-lyd1?rnnPr4*}fT_i^R(Afr6%iQVoxp(GzJssNow9Z)){fGx1-?{R#%?;+3SP6DOTwwy z{Ungr|4ggn7TjGk2IKzdRQc%O4jyDWfYGHl8fz#shv2S_>Tn)4YpT~1qQD<=G*L?{ zS655e8vVU~_4NmM$vIr0(;em!u7>w^j|ywAJZn|bUh>-abLlL=4M}s*4}JwXWc6x2 zi&|sw2&dB52yQ~kkwx<_ZE#U@jxKxV>urB?p8(1fI^1T=9fUoy=B3nOa_T6 z3@^=I<{aY`ik?}`t`tJU3u4+?=yA*QMllX>Z%kaJ579YXvMnEGt4`CjHLQqOt`2?1 zh`BiJ+6`^k_w@y+beb7xZ!Ev?m_JrdCv%+hA{@k#DWd_(ChX^0#_x8DSykyFt?kML zVeldb_^eKF!jpa-+j7i~Cytuys;xF?D4fpcQ4Jo3ra8rhA$4OAoGrYtkEJi7)XN9^ zZunz7$}K6?4<$|fP+*#&DMZ-3aspYkX)RWurlxOvvVU5=StI zB=ch(|1bA{E)MsURM(J198)85-?XTEbTjsfDU|7*b@uZ)LpG=YUvtFe3}kZ|=yPU$ zn!$TCk3Ziw6XdNk`NR-2%c;|?d2c6)ZOk=CYYAS+tEjRD)@ENW-A(J7wGs53P500I z2Kdh&fL8sbM2$eG7C70_NHXOje;vbYrJS5<$)}xI=6Ndf{)oas2)FRabTDzJ#Nr-` z)r)34zH!ErV(}w|FqCs?tuMB~%bn@cUsnUqH0C(n`L!+yGlO@6(&0tGX__R!@?BnD zh|}4>4MH(PT9%hQWADsAX1WV%jgZG)xUnCb zOty&r#}g1=^pCl*V?Uv09bw16YDi4zH0(_7rhmZ|e?zp$;E@zmDzZYem@1~V{+a1K z&%Mpz(|UvPOMydc;yg_%1}7&u90QgTM$xs6^y(ZZP8o-f*AJHB;@zI@MF}{(02%w= ze0r*rYkQ8zJrYh*B!%{HDL+obA7%B>*GX`Ads1HQNBuCO^_cs#OpLIUwe+1>P$LxFNE)+r2=Z zv37`6!F`6ZzH=$2Xb>oZ1pMDnGhc6HoK2k>IJj3D%|ic!;E%Ye-f55w7K-F80eyDI z6l30N7CcS%uY(5^qVr5o*zIq4;7_-U zjY6{H|Ms91fpHEM>SOJ=q2Lq*ahi)TpA8YX7hca;OkXmYS}=1b%3AjG<%2lEpCI@U6ba&_yS{q+16HalyF}|7+YOZ=Yff~!PG|hum@P7U zpV54m$bW?)dki4(8k3%j_WmXw>#LIwIS(Fa(d*Ar;LQin`FQgD+Mrrbs*ZVgcTB6Oa7-OvN|S3;1^_P-|xwGZ+6 zx{xL%UtlaLAeEutOd(LX}M&fh8K8Tp?;9JN% zSJh|a>mP;UxLGibuLRbo8@XPOe42Q6^lD2hvTKfAR@P9@bxA9at4Wo$orNSvY*wI1 zoBJqUWmZi-zwbPoNiHi$f}3R}>ZoM#{b{&#T|--VOaPy+dQ@KKwJqZR;O*aB7GxGM zt2BcTWT!y}GIHzTh`79_Q3$U$qx3g0RaYy@vou9|w#mD${$OI`Np?QPa@7tOUTe8- z-vYxsfBEk!;&qrYta4&IZ+Jur>(`C>FUDdzHdDPdmEvr|gg}^&bQDF6;(`MOTMKg3 zc2Mf++^i9!r78&edRwlc^NTBEUp(BH#P1cb3`Y2O%H|bAfS(LN2mayr-~^j7=@*QC zjxG6;QncTy72Lxxd_iyFt+tN2RTwcQQBL!A(%3@bbEq_BxA!erOgisS@X(4tor;i@ zUwvpIF1gvHX*UWv8s1~mdv9dy1!-8p;JXdwUm@f9Z6E%}(K#?iwk=UOwr$(ColI=o z=EUjPwmreb*2K2$i9NBC*Z2K|(`TRBRjbyw`Yn0y*Myoo8=u<0txBUxEx_HAL#Hmn zQEuu~nYoFfUAr_ngB4!=qJz8HO*Vl9TY5n3AfpKl6H8ebMqe(J?Ge}w@hV`HUYrjT z*N`Zpv(9#R5NM2mlo=oc=0nMI|18cMK%AABWNL0OJ5$A28laP1p@W zeI(e~76=E4#Z&cL1LKM0%K2vfh8UhwnP4lY;;Mxk z-Sh&YkUlYqJ!_0fPNdzDa=Lq|3N;Y!>H2+o&cmj`_Q?u<&C(nLoZ6kvoEYTI%}$La zE^RRR+LP4?y-hi&gl(E#?czCg*^u9nFCBWRtgDDu$Vm{K!9t>W<@TCKV5F~2+S;tZ zVCR#`4><%KKjn#WrYs}leKS(J1O$Srl9|#=myP4r>R0ApG)*WL)m+nJ4T&b4AHyF* zJ);$o7U|{*N5@V8d$7Dr-|<@Kww6ZhToE?@f`+^fPrx0tKC6M~nMx$inGE8o2z7Qc zKkwu(U(z+xm!lWc;z4&La7Xszs_-q4BRDv@*LL}LK{7$f6B$`0zax#SRe?+=YwFU3Mk%8ba^2u(w9(AnQ zvpFNSrp#AI19K9zu`{zbh+Htpg_Uv*&3UrJnSt+cf=-L5R{D)MWDpksZQ*%2V+^6fz`=eBqGvRr zq2uQ9Ejsm8^vGg1y$pq*0~C9Tv{uZz@Zb4VyE8y$Dd+PTf&RMn+QWxwusp0LlSoAQ zdNAF_K->R7LV2R4#4V@~c-JCrxU`eg@EIxNU3>t;0amRBc!u=_n9@^;a5DA|`iWD% zt-*eX@V+P$nl%{+covvj?wHjOLFp<)pLgWiPe25@{>UH!2U35GB;bDfiQ@SgPWE#o7+~#33 z9dNa0z_QUW+e zy>=CM_pVLIrsj5c>>*M*wiZSL?LaWP04Ay;i;<*p z$7rr0t`W6SOc{*k3pSJOYF0j@TNY8I4C|5CfTc68_D`QTZ)4H-=^$#Ej#Wh`AmH$< zef^yTXDOo#t1y!_#vqgnV}zc;Q-y+9TLK=@I2FU&eRzbV@;NOgpQB=C(rClsxTHmA zL9!ncL|%}zK4Xbs#mKb8X>Cvvzf3+`7`6pikCKC0B=PhMCLc)$B{xak#xPGF(hbyHiiKWh_5C0r{0$Ws4V6dpAR-QbBya~czem|4 zRWTBT6BrCDA-gKQLvuTCUOalUP|jhZBop_Y)QyN&pnAF@w5P-*$g6Yc`qQD^P(~Xg zT(=g8;rlF0o~)#>HVXRcS+WbxG@ zmXd_XhG`v)<9}aISVop`yoH8#Qvh6`!e zYvA;hI<12oJc|&iG@5u0eKn7xs0psw0n6iK?C-k(;C-DWD3}WQ&5|gKDmtH9bf4zt zc3{o1W&mInau_Bh{g)v*=C6Ofg4V=tKMBpU$m%n;7R&PeCqsx>T_TW{g8CE=lKov|E+_aa2KjIGYF`o) z&EeHakca-PPG+cv4YQQWqJ+7e_TqetTxj^Aj~H=G8Umyb66DN8aDdhH)T`P=egjYI z(rxFeWo=AHF;->|RivW`9*2T(aH%DRH$Vn?wf_b~zw{+=(nC&d* z7FhL59$_Ul{Seo~x$?s#6h7pDt8Y}qV!TfNO;uAaMB2BFXNca_yYgEpMKBG3?DGYb z#LM(S9b4o%QU1D(Dh~pkWyEj^mCr@VJd`hF^r$Y;UoqWbUd`nVX+Uzk#jXgMzmbh@y1Nr?yotg_NH6avGk6| zcB!EHuK^v8BCOi5_8~YBO-7re-e9NJB9|aP+DwE%>cc$3J?h#8)swIV2$wDH*#!4N zAW#D@axgVzh8E>7lEJzy^h+&H9zPz2jUTSZTT1Opb>vWx1TKNzOc0NJj@U&hrFPG_ zP~1)Na9q5ceKn|vM!@YVNnjv-n>1o8xn0KgxZoN=`$t@*bVRKUN-qY(LFZt!#=Eo^ z@Z9gO3xbhI^-k#s6GD$p16|mNDi+g$u9k%e*!{Gq`O-pN$WlFSZ2@6pBz@uPTq3=9jsM+iWA11} zwfxoVcLY{`(s=D-Q77;`ga^HJDNk30de%l{=EiRIZ#v!k7kq&|CO+!pXf znW%qZ{{bTzxp2MRakpeuB=ZdC)Uusuj2Q1pxn5Yi;KG6eDLnW=ok{zV;t*-&Z0NKO zTGx`{0AE31d91JMv32#CW#0+g=mxpN3trJqRQwzRE|n>9b`>+f<3_Sr$HuXU zO`6)M2e@Thn!R|Ir?&eI#cZh-f0~?QvDt>a8pYw=>Lv}7%$K#@0J(B#-jW6c3P7p) zl#25kU77kn43h2MTQhgyQSVpjlT5W34`N~a#>x9H`ysS7is+9pN5=tcotNW_DP`j< z3VFhO9!IcB3Ta5DBUQM@pd+2O%2;~TVP%kl6~1HJ5V&Dyl2z%4UZ>PtZiZe|aaVY8 zzjp98vgg&G^#YzG(4eXIg@+&I0OvfIN;K%qHAAr%#+tvM7!_KpL{)!)vpOZ$mQ2k(f|4EZhxKRAQ3;1IJEhY&S_H}=w zA23|qmVXEM>PZCeJp;5Uz571)eqRHsUjjDHAH4$?8rV)7>%Eqr~JNrtS zP_*~CK6i7@S#8_TRVO`W?GZQ@NVAQvPy4m;F8dKsvO#>;^Vav)+A!?*uII{?51zMt zb2}*ZTc^IVqGy11&`cr$%g~%nP=LX=qb|@K;!l;|YHNut&D$L?un1dDfcr{65riJt z%yFNd^~evX<+1Af3mE3js|3ILeR8pp#{!WBJH0yR!;Sd#l#(e_-D_?&*(?#?r|WP{ zyv}?1WLWf%w9(@IS)_bEFtrJN?mN=$!I0e^zwaSI1bPQuwljyb06Z_;^8B`}*DO7T z>j?NbEQR6W$WLw7$H0f72D=r#NV5L4%3RD276bg9yuC3&+K}k^HA?@*J_YKbnZgSF z9mgUKPr}WzeznUw+56=KjFX79EJa&=d$vBdX=;;RsKi4!fD$Cnm=W#SZ~W%7?tV}~ zbPh;HE=%x$gJ*ZOi`;1+AaF*}a|%nD8@P{CfYr!`fqlIS z;mb1h53btu+=$1mFpJ}{aB-AZ_U-A!oc{^H{rT*)yJB zy_*U?vusQnWMCVUsa+$WpWuz2$d(+9L&dl$$yI}zz9!|PsPgSCWDzXitZ+r&peiGO zYQJ8Pv+$ERss8}dp*w|!;Cu+_Z+8cZKnZ}-&Zn$t`9k`8$wlKcXoH_=57 zVJW{jTaEE&CxcIb&6J;p859L0w^j|drJWCsTB;@9@N}U+Pc5+0iO?V^(5|22^Iv^5 zufBty{W}v`yVGMWH}R*NcKbG*f{j_jRll1xRdj<5EnEK9WQ~9k+jYGBm>r0{`gG}F zWSN3ewRvqzo*uNU`xRb>7X=Q$F(N_)H!?k5u{}O#*+h8()y~8Hk+?sc_T}O!`dFRY z!W2Rtw-!@7wMsdksCA(>?-P%blv4wK zKzJUPU%dGqB*Q&--dIaM^#vqZA$G>9o18%PQ%sqOz+amIn-}6PjJfL-$KR}ES9F>9 zDt{Z`@&p{%WHGXI{B(TlAqw+~)rYeT$Th^jORLL??g<4PGqiddX4P8NsNsJN{{QP# zP@h?f#6=GLM|T_~WdHaTkC2_XI@6o-jlfb5=R4_iC=3TFnmKxT7xN*F>U}kp9<*!! z{bq90@eCNbV}jYR=L;Dxe~LNWYtPRKM6a)1x!pt0Lq!GdhwhYFuC6I_S7kUp>mYM; zpe&>~y&54o4gw8-DTwHt+xhGjfU+ZWvJ*r-41bw_VWiLGgme1mB6LO&6b_=>bo|K5 zO$QiV;S4YSvf+4+ZT}nu_^e%C2^Kj8%Z5>1UjmLNYlD!<`f0c^dlcOo(M?fL>=Sm@ zh@!!kasNQfCE%+sca^_5x5gzE_Zp$=>KYGoVa1aj8-mXH=+;fv=eb+RdAcWi2gDEN z0=fF3tUe}q>*Sv9#);9>e=@Bq(%93m3i=2ZDu-sq_RmGjh;XTQj7T?}ZLV0egCAGP zEC7gHMdN|w!}Sg{jT301m3L2epGNSv$R1A{VJrE3;1xoqs3+%^=~x`#Jz#ct7Bust z4f?V~^`{4i01c~)N|M7zl>NqD{}!U4ZRbFLXs6jpnYtDfV& zJ?@Yv4fxx@^Dji>1pWsEJI)#{?CpST_O!1O`Rfa22ey+=nHTG&31I?EAQile?p>62 zaFRj)k^|nuAJaDEb`b1Uq0F*8;MaU6l*!RFVk`{%;`$Cc1nZAaHaKOzc)0Zj5G}IH z>jQiu$oF*Ra(e3~M9!Tl6<0tm;-{D)%=>IyDG^N2-6_yT1RshqVMi=X^RJDhv6<3Q zK#0s2s7)IN8BUS=u${xSOU4JOvtRjI>9LESgt`g+wSQYRF!$4)RT`x&v|C4LLD&uL z-lzkb!To8%WDln3V8h1;P zPj7;{zpon*Q7$;ks5E>akKPXxCjGSIcLM*k4@BUo*=7~0i!J9q`P3*$x$7MgT-8q! z2l9ayQ*zI*sm(#&VIF02hRZ1|y!r`eRl=eEK=Nl(;I{MtS(M@>`SptlU?S&G1TvQN zQKNW0*(lxiQ3Y0n_O5_ z;iaiDRXK~Itl27Fy=y0$KXpXpVo_k7!_NCXj|3b_>?(ttf)sHc1UT4}53hU)n%BK8 zn<$2cC_^oi&zdg`Xgyf44qZ=+K6~cO&|l6;n>4pKUU9v}7e_Mz!eVZEU!SD(`q%M| zbC-9d^a9sFxmM(0(;=!qTy-$l(J(84)4fPzxDVJ(K-mMLX!p3#fn?B<9j&}+m#iUw!cskyR(sK zABOrlHSe!0FKq#ceNSHtWC$U14IdpFlKz?@EZdAptk^hnUj)xAqFmJ!nk!LxX#S}?W z&?t3xss|~x0#xBo-qEU6A;nAUZ}?S#G;nC2BvnnqlMK z@xc%@-QYt1l(BnjCxrIl@&$*6YaQ0MVkGSX$2+OanRtgUjJH5c?*xz!C7GKt^9y!q zXZI#8Fo37ASR~=^OVI#|dj~vYI8U4r2p`DQwir`U7Qe;_66Z}fj+cT}J&8g*JF25$ zRNX|F+5hK~&f&hL3B5`ok;1&MtlXJ^F6a z*C-XlhJGa`LlI?xeEPw91`myVNTA3v~X5V&R!MVFMb@B@e>zl zk`oplVO56~{1rf9>vi3@=*DE)TSiEiV78Z{g5rpg8`gczR_u}|)-`A#WIrxt|42>+ ze2G|QehMg1>IjO}#^NXLJR5O$m0~8dzJJt@0})`{V>YEE8C;IG@upc~8zAwcYk6vK z15Q0P72|(|#%LLc_aJGywjAnVtjtx2fBS=Kkp!wU3*&~>YIc>#eEm=D=gxI0Z=}L` zta4NgQvZH=*IxV1Km&tB0SvV9omD;nXa#6{4y_z;^)yy(;qJuIM6U$ZojelEQeCK= z2RkB~`GZ6TP4Ror_~ud(K`G(-IyKa~z9yw@#29m;@=sKhukyN7tebwkS0?N>DeJ+f zxh5NWcn>kRuRn!6nE~hebfD+J0T?1HX*wuhzlTW2(-a0*g;#}a&hpxs()k3SS0-vg zmgR(oUG7wi_&L0_p&Gd=#uEW8|El<30Prj&ZeFsM{YsvYd5;y9(UYWFL z%j##$EPuB^)RkD(cJUN-2(=4HZeECTCQ%=SR6K}%vl9(FHev}niX)&%6o$!Hd*e;R z9M^64Ewm|11+zTRkjy#se&tgZd9v4A)P(>C>7I>|ZF!m}w|sgB50Am$X}XCFj30fT z$oxX#%O2rVOi}BdGt+uEBc~jT$UT|rvX@GY$nBoflt*6av6deSuAa4-R@*e(J?vGV zNE7hQsV|kYd2f=X-vDrB@c?#APc%|b0yf|hIHjBq|E|(nMDNM-5STLXqo;4u*_D=% zzU>nq)36*4r`&X7<^fw&N*YSsLSn@pY@?M%jA?feT64?-z{uli3Vh|MSRRnY$CrDT zDxee*2V#qH2oJxt&Sh9FilO@!Ytm0tuAHlIREnV#>zB7g0U%qJMHJt}S8MQVg^W+x zMK&)iQ>B=Y!D7>%YA=a6+GSuBE;&ouPf8jL7XS!5K7GmHnB;~uyL#FG;}T|G+K(l> zt5%6ldgHb%cZu5%j)Vo2G5wX}4vh*Q^GI@R^9txKfQ49h=on+;PN^!(TP{EPa4lxA zfu3z17@g&X0Vo0QBmhOsAy_CeaB<&6?Va)0x5 zh&)m*uO+`CL{E_^mHGJ(4lP&N(-4T<%UoHq-JH`2z(4Mc!7f2sXrnUTgopPecd&|% zU_R`nkquJr6QIs9M-j52(_SAVYvke|pYs_-o)t$!<|~sL(9k5g6yyPFtEiQxFi|7s zAZ}VZUq857xWHj-`*p+&TzKsNw3LLnk2(X&Qxu*O>+0rp1HA9Hh#V$t!$$Y zb#oyBly`p(1u-Q47F2{lWF`M4lcIn}B6l>a1rkefS>iNF5-%5qYmMAfO~D}W4D3Whsm}U-T8=4L?uba} zcNT+SoHgQZ8&zd5xuYuEe>t8LSKz`@gT!kAq?+|R(5ce5PL~Ry$O==n@Lp0ZS{|EU zav)3Pp=Pq_4_vb&bea?NKBEq-Q+a%8G>5lEpUc{RngWA4O_h0)r#X*^`r+61km0*A zglVmHLo9E%SYy+-zTHbg7IHE#b;=`D&i+)Trt9Gor(bAscg^KcpkNw4hw`0$G_P+0 z#y912o%VJ>9vsD@;aNdbt!pKk!cLaYF9}w`h$;MvikEQFsoMZ=s?Cqx z*PDW+s4&dhf1xJo@HZd+%dy;I1m*1oRos^Nx0~?aYciRjHlycF&NhExSjR{MNn?{* zS0lnjq%Z1^5KS$8eu$XLjS1c40|7`MLGVOhyQOk4sP$H@47ruL(*MxtE#r#w`#b2$ zVJ&7li4Y1UM47Mr$93Z}fgmcB!>1Y~dax8r+SEL_2qjSSfkVWBDSWtt=o6k_=9u7V z2P%+G?dN0?%(RsMmg11vS_Jw!l|-5V1nmCc+YJm?rpK{OwWVOFq`-f!5dig!d1mOi zG}x^li408`&A+gj<)&YztQ!puft@TreBuw@;Kz)2M49KfVQQ0bAyA4)OE^iT#&&m!3rj?MzFfOqIRGeTlL9 zTWfcUP>h^Q3Gmki-_~9QaDYfz#CZUj=J8_9>eSytH#QkV;8gwfmKefQr=^RC^8h5u zkj=%4x&{0^b)f3&osO5 zy70{PQ}{9+a~QhVt&}c$zuC6hLC{WmSrqmw=2syI6}k2r{s5OXLkrL;2d zfxi)K?11y49Xmh*5bEN$Ue+|w%F`D@N5uwl@@u{ax)dcH*%VlG%?x8{egF-HU*Rko zn7RfJFo8@}FtxX;_KOP7Owyoq#|ocW4ZA$Z&WZ2Gr=52Y+tDib?pD-;^I~TvkMPgFTz0rE$keJ5 zb&EzE0kQrn-eWfrhF2-{X|WXe0~X~iLsri(EYNdpS@y+*f1I*U0_&H+^zS+hIiJ42 zG&%E7dIw-Y+w@9~6$R>Cmn$g<-73i&e%YVbZZ+z{#cXS!9DTTbV^|srohknXox5*!1B}5^!CNwe^Xl^k z3X227&J!6$vC*T8kn`ck#@8lnB7mLJ$_Di3Kn$aK&+*j!?LiO5*s;5{GsS}Eo~Bzf zhFd^2LCPEy%e0SIM=dZa@B)rL8h)Vk#fN@>s(||)oq7Q`XDo^Vo9)L~E3O4sNFAt} z@=)PH2`iL(zxAVWg01c>C>6Z@d2Dn18Jh8TrDvtfsj47N*f@gv-}5wMf!em1iDpCH zvXW&;=F>Za1fXXItq*(C?`8@#5SBbr910+is_LBKC7%cO3+@zG*RyCfaS|>vp`dOelPt3^tPPLX;qi@QjI>VmQ-3U} zMqgkpnahTcdLzsQ%0E_kNLy%K*mIL&_Uw3bUJlfNY=)bg_+hj?rPGpwn_z_eEf%2J zX5isA>mr!uNU&i`NBRj+4mslc4+i^$&AMd(BZjs3iTt}|DwC}x=NlZr7w0(qn|T2P zIg5Kq?M@d@QS_j3`EVYfuPYAvEnDwdA-M zmQz5$HgZX(Z3IZp9m9yXfb%F*qwv8+-l zJ*8aO5JToEf|Gjv&3+>QBtGLPF5M0@2|BnYlDETLxr#pSwfFrNUUrc6UQf>6ghZF6 zQOfV!`~bv$UWTuD+X`yAJ1gyJIh0u8tA{U+z~Q#9q->Sic_R`m96*K#7Kt66hU|=( z96}-bSc-=HWTF8C*M4x6wTvh#`>sESDgzuof&pcbd;ra#l>=9R)-9Ua%+_Zv^Dp0{ z!r7ee@RXMY?h;Je!5d`V`A86*w{9?$LK^6JTyPj3rVs+-o#o{LY4EW5%`)-@3z9#f z_-O`4;hS8SpVx_3o$p>%n3S?IKx2ge>6Wla@|4CR>63wSCc$9C5TG<8onSr8h zzaBM1l7f@c!%+aSyktRCy!q?w>6;pZ+81;UKRyZZXt5k-_5(86D%eRHhl&VR-<1zJ zOQfZoD<|&s%RPYMG+E7vepJPNBdQ$SRIXI9eDv$a&SbNB_C$zeiL2V%0p}*sBg#-H zArux-$!w0V1}Pv+wrEKX$GH$b-lI_jT7Wsp&UBSOH|_wq>w2!yZbM=iaffuBtHOdn z{eTt`CG#G#K^<`P`qK=yV32_j;|W({44hgK6BdUCBl`u;WquWEY*6OzDH1f@x3D5@ z;+1zRYNe9r3RybLDMdKH74NpTR}PR8cJ}l-F|d@uTaqJbT`F$|L~^!6j8Yp0j3$A@ z)|VTWDOtcakH3kV9WJVs^fFq7oFMj|fJaC9tLQ~IfX3Ti3z$)2L>GugmjXtNPRie&(um9_#t0Y>?2W57gYX|_%S&@!X9R^B*5nuxbZ4h9e%lMZq z(bQ4cf$MYkj%D5ef}k z+9@w=1cke`wIixHI8sv7W3^_wx>u;QHT;RWITeKFT*AyAp?Djhv*xZ#6Y|$gDu$D< zZ2=tBB>=3_4+i1lv5&pgm=D$ftydGk4*j*dAl0XonASW)WBj~4C~+nV>% zEy?t9jc77`3IC;b7}NNwB5yV=4kOwWfTYQWmh)DAn~yJn@$P&2Pih;eg~%7va6}q) ziScO^4`yqBa~oVpL(d1)rBj&ems|R={q0PSeaLjn9%?A8`uWqnB5sT{A_6Yti(3_i zh?cFaA^7B2RPUhs|7H-zjT~sqi_zrns(mWu7%TOati zUt>Z?N6~H#ud>&4&e9xQF*3XOp^d84ODz`IW9>ggrtJKn`j^q>h!0hD z4$6-WX`faaihn?~vZ!{zdk6^Z^`cy~!syumt}H4SlVv9w2leRm->!tvvr7vfZT8@* zEF#qDrOAl-a%RdzTWz;W;J5A`0y~#XR>|t{S)(SmzlrT`YAMER-OtWGF=$;w)rLNc z7h=hkOV;N{Xg-^hT;a)YAJ2AOB|JPJi>(603HR5oW5L)4!9iavUIDsky7KqE=Rfsf zM(#Ka)0~%tBW!b&7-(h)2#F9gQQ)5 zZy~bex9VI@hZPeGn+9;DOumAVTQ`^|ra*>HS0~$4pty2kXgA1?`nz85G8E%-*=?)A z%T(>y2XBKPNVQA%@YvrPp29{Hx^W06438uQhIfaKv>=jD>~O3xU9Gk60|5Qs9=x2^zxtZj4B!Iz zbx)1rb;p*j+_?7B&x0YI%HLq!>MwaY=wi1H8T6qLg=S<2GuJ}|*B-4O#izz0*o`Np z9{}pk3+J5pVjR@nE6;qy(V@gBkckR10zP~N5O`iV-^Xw-H*?lsK@POk5y8R=Pv~5% zU7PHqRLyit?Es1TePjoFFJ@}Rys$^Hn>}dtF`jC5sGPiEf{;+E(zt%_5wgl*#6&UI z`%tLmZ@NW>C|RQLUR<#V{ghl`5R`2=cdj?Xf(6ELRQ$~ z@I(TbYnpxBF&FPVs_ORO1X?!(`WDJ7nbyUv{yZJqc>qfNN?LDNtLHeF!|0E}P&z+K z7c(ssu!InPw}o}5cie+byQIC*<_RS!M3(QcC379T z5%`oR*MOl^pZ*ZJrY*m>u^7>2aVO|bB?!N`jhuye%ekFBsXoI8%{YFa{E5`p5#vMJ z)9g0=6n?6AV7pF3tK1L!`;w=8&l=h7Gt}8RgyfMg$iZNWl0ZOoM?|uc8-f{b%lLTm zDl+Q8r-Y3HSCuTyw$p2w0m`}S3E30?) z?oz9k5=hnHFIp4x7ZFEXIYB;%2i|u$ZxJIUP^nn^LG(#qT7^=5W($(wAa&s?$#nB~ zu6`#hT7_?rev!WO2GMTPbd36_G$^?W9%_w>QTWv}&zI{e4K{a=E*T%f!;fyceytRs@D=yY}ax zeYq4Ug>)VK4V{rpNJ2r33T{r~8YcyVrEskohW<&ACHhDsF*0bbKVOiKG#rkA&L;SK zO+gy?+|R&a(U!P4MFAhj;{7sqCY?A}V?%m`y#uJ!{_41i?8 z*Co0A`UFFb;}UL27iH73i0!`AFmfsECy?26|K1+czfua9Q@iV;64CW45A)tefLf7L zF^YB~Z*CXsQk)*mO^$~^+%iUd&X!{L z*jrq3VBSWlqOXe4T>jYvgL$LR2#~w{(2yeDFo$^O0`L%t1j(uH_oSehs~J_ z(M{Q;c&^T7`K5^gzD;Nc^N$yqRU!PCQ{y+avN-0+@}+V@)qP;FCw@iwwi~4!m&iWl zniQ?!q`t_M7bf_W^77T8gA_Zk+hd{*;LV)+nj;$i9 z>j{mMEL5I^ST32{@rUNB<+Q4L;BNeaUhjNLMF{)4D#}qiV+`!PY)_{U_rda}jZ{=% zYn}>C<~NV5}vaLHs z!NHh<>sjvLJ0eMuQ~*mXM22LFnnSiaLJRf)kC>46yq=;Zq=`Xhdureb*h4nt5)J6; zYzl-ht`QxI!9B_%dt&1!5*mtI609+U7EjECA~>L-EAF}zji=sbv$F>&6)^poZi5uf zQG0dBrJFM@LTnm-m?P`3cpIzamIp@H=e87tQqWCg7MVQ|1z5Cxfu_(;(-!|T_~F$V zW|LY*ByS%LLH#!D<3gjMiA)++6g+bG^>;1bWK-2etJ#ta65!N2xO?f@4r&L}T>O{S zUwGQX9(Byl7aNjid^i_7h$jg7)$kuraf>8W#!3;ahmGnc+ZFZcT^}b287qtr3yDII zt>s(3A7b*oCcr%cXT|vgX}6V7FtYJ#O>WF z!tLNsY3njA%dp_oztoqsZSzqq(d|C5kWvxR8!6X`SU`V{m|Zd!Wla`KMX*I^4@A!^ z7=PJkL?#Yjc_O3!3Ja+z%lCJ_#ih6`&#VhI_RmDerA4pgnJ2c8Qs=aLI=-w+?AHHk zpsnEjOsYA>yu8uUTb%n!Rz`59?1+xo39l)-OEpIHG3*S&dxwZpSR*;VbhLp0d;Rjx zfY4VoK%P0g%u&m#>TzS7`ylEj5mO;Gv9Rl1gsk5;l$eUYE$XNDFLW~x2PlvA^+|Q* zb9h%Mdp%s%yQZa2o3HVI3;0tK(}u$De_$&hBN`KFj~^GKUj_e#%xix%(B+en9iO&G z?1y?=b}*|g_muDdA*ndpKwW%X;xn-#_)>JB z=I4T4ik`_YgUMk60tr*p>K$ob^mO9*q4AQG%=J}K36Z1gpq|tkN_K`GeKJZ^0jHkA z0ELaTg+jVHmtv!H(V0Q7$7J!}hVb;fDWi2BsGwKW{4G(T#ZBOc2KA*7<$I)q;SS?rK+Yc?&#LSR8OTIXr{clXvKBliCg@qjoM zprsW{t4-Ej0uL1oAM?_+2ouwTl!7QCxXDm`y&AY*zr2>yrdb z{7{9K6owF2+qY&{o=iyg5Q2_IA_}%23^x4EY&&;JB7_igRccR0=Ab)ci24&f9gb&`G!y$gni=D$k8T$O;Chw7 zGsI7Ei#53)YVqLl{rbqF&ldOQ_(piT+(0xEC6P%=-BF!ANFnuD|^ghLkPBMMEmSD;?}7b z%_WC(L{i2e*HL(#_17E4K0@y;03NIYdFfPu6@(=dGFu0(f*oR?p^0$#IJ$mvbHRqr zE76gC5^TFM6Jk;ht&2?jahi%yw|=JVAv!?!i1y~uMgXng2?efD>#ZDxl=EbeJU3!J zK&)XP78u0lk=FZ5k|M{sNUa|)QCfT&!AMqfmRgW@t?5VDGJ<3W{L70S;3rCC@TbEL zu3I0B_+_m#GeJo`F~bmjooX>UJXs5_RHtFarohQhmI8))tlOp3tLN1$M{MIZX5C`t zdn$wB@@cGOUdooFZX^)7F)9%zsA-)b|Gd-%2OR`7A%z8d0*5DzysCSXhs}bdIFR&_ zKsmQ~Ku^xu7Mi+@Jw#a`V51J|SM;0?rP{C$h3HIrm1amqR;V(TL@4;m|B{ za3*UoM0b|yf``(oxvxeb-P3gxmxJ)j6`Dk3Sp3Ux+b_|J>F4Ba`O)gL(oNDSe_CEn zQx_1}L~6KjtX7SGGhA<)GRhEX|29(nH1p+u~*$Z)7ve%lK7@EDMN-kf9_*|_Q_|8fAPD4n1x9{Dg_H1mV5MZ_zO zk6G#xkw`Akhq>^*9vLNfgY}0>PyoiNIrlT=E*`BZGDth$-SuBsu_-NgB&CDh*dp!V zy(?8;=%&QaiJz@%C4j!pIJxrFdN<{*-x-u*Pzv4*uiYhfWM$s1vsAFSO_;Img{dZm z<&U)uA%~*9R!8HF&`XsKM0Em-WiV zY*v^u6S`9GoUJfatK;3;eB`hu{?d|*Jg+L(Ki0oTZpzyTMaa!-5P!&!g(#b-mO5>l zVwG3jbSQQq9mfZ4LKZRpc) z*wq)+HCETLD+bI^ip4%3*q5usvUo2wineoRLstg*#ueH)%nAKPG;1fS6lq8;eDanx zoe~qcL$CZ-7V?H0-yMg#zoQ4X^Ywe)Q1T7g{JfC-2kgtI*RMTNzFb@6z@SX=HSn(g zJ_XeFnCz3~VXWv7#ZhQ?$1psNfb~~fp}_7*b;By_62R3z(W~LD44N?P=)4+__@oB$Q$f9V3Bt$t+aqg{WXGV=e*xQWafY9tnzKA~ppdY_k9wekvtx=@Pa#oNxdBRp&U7$@Y&y-np~|&1`?k#1tAR5jOHXBC88E%J z)-$SwfqN!vwLSMHmQ-lLP#)r$nI2+&g?zrCXY}8H(1N%>&sCBu74pF8-m}#t z0z$VC{OjzgNCahB)3G<|n~FmM^zfdfDN4K-7QP9l6Y4%spP4ap=dkLRrP;wKS-Sz0 z?^*E*pwA!}m#uaPsD{wgk7ibJlyrltk|sHR&@J3HQm3ZM)uF;Pa&)m0VUKak{&H&pB;TRqBv@80q7oKeSvsl68&EW+FQ`u}0kWF6-7*QG0FHlDHhrpE3@MkMX_`4~N6nTy6N2be3 z;-sLKRe#lvtoW<|9Q!u=gmI_}Z5cXa_0orCuAl6AKgt%>P=?keJ;BR0b!TW|H=+8NyLQ3i4R<*xet!q zH+n<)1CNKFYE~BbG=Z(=Cd7{LW;t7r2GKe!Q)qVg1RWi_JReEu=6S2~ZMq#qZZ>`_ zx!RNk=GCS4e%|TA%vU}SBaJ$VGU~8^lhHZvM#TQjuVOvuZ9o##Z$m)S;;69vPoi3x z@)dmtc`$@QuA8%R;$0%%pJaZJc?)1((rmFXVLwlj8=d9C)O=IHT%vDxSFj;YZn0)8 zu{vKpOoc$iz`({UOP>!+&|piYE5kZ{-cb-UcgjEQPoz+*INvQGWJO0q)MO+i7wdI4 zF)2C6i#Aa6Qu)mrq6-1&aOce%i_;l{;m)gENU@u~;>5UH$KseGt!3>yixIaQEMu=$ z*8*_D8e11W*_U2gN1NkGt_PI#i${1UyhX1TOmiU5(la2X(@ z?LJu2vZq%-zRu#>X>v*Shue7N zl^ki3=zkQQgMS@e5Qbyhwr#tybCWb_oCb|;-PpEm+qT*8CTY~hY^;9w`v>;7yJyeL zv+ulT#_UGqEkJ-!(kh87pF$_H{Y%67v_tbDkFTpjSz|y{U3BgGxWkS|mKK5ycNfT{ z1~3SBi_2KSqPYa5i;_L1U@7aRIaH)M+ok;u{&$VsBNbHgt`*ujUGZu@g=xU6fbiOz zo|M)Jun-0b(&nz9>}4q>zNR=5vV3ML`a55@4@J#y?5?5TI70o>2txb$KGaZbtnq%W zktVZ#_a}J|LML4;kYd#4(vaoq-^E0Wg|vI-?{elv-O>Y~>Aw-Xi8B+XzdV_U7-mf^ zeGQ2-9-81uyEgbyLW^5UMQIMWQk)pAnh5L~XZ)Nqnxy&8p^YY1G`4DPeC zc;2XaFn;1>RQdG;=xI}cPWS9tJnx17`9f=68{te6Y9%0?e^LlBmvz*sKQMdDjL}cAn8ev9<1MnG?7%8av;Ea9h3Ij`i!~)kDuW$+tCA>H zbe(H+)`R87HpiS;TT9Z3(LF!DMTN0|K3bp!*V@20vA83?oySEzrOF3!ZcZ8n`6L5& z;a*e7ru>*#PyXj9H!7iC6`hdsz5Cm~BR(236a!G{VaTYewKLXJlaw7Z>H0U%y1u$q z=!zzD@N*7uAzM0~7Iw!g{c0HFMW$RUNOO|}1)Ze$e5^h`vs2i1(9uhy#dBMCqmjmd ze0(5JdHsNhT+{im+iWf$EHY0)A90@UVa@!h<&ZsVikiq0%B)GEd(GL1HSQ@**XuJ1-*r`nFC+8E%{pV92*p_U_meyv7~ivZ>}TOafa%5 zd_Uon)?A4YNx>HJk_CvP?m+-_F-1?IQnTk5K27+Zf0u~^_6ZX5EF z+pMEhgWc@m1yl6EVVc_W5qTfx?1Rze0M+7|VE)az&iz2%|XdB0uJ;KJW{4 zb=|L09pZbbIM2Rx^>G$959~AJJhZRAC_o(O=j0Bjy9Zf^aYz${d0n z{XHjbrp?Ecw!-(@VYgSTnqE9i#X-^uVP#s|Ve?Tm)as3?K-zlKoTisl&t(<*M>|`y zZ0(|-;sg2P10RYJsrojBL8*Y*7@(W0Fvz(-jkSNsb{u~TxB^|6LU312ldX0Pu!;+~ z$=E&E5?RnokD2f&ja(x+KM{k$0D*@}m#C(W3f5~mepOq=MgJvhn-w@gD|0k6+WzL` z%?gev#-ze#IaHw;k$i$F#{fNuY=HYg^TGy{wyg-;R;y#7bF(v(npKrQFs4M!ew-G@ zB7WFD$w?{cD4dTPJfp(cao$7VDJ~)$3;vfJzI1ZoF8BxYue2LRsZoVJl!5tY(2wbe z!E4$`O{7B0Ynzgw$mCM`3N+yunKK^f8;(AS%VAb?v|nkJZb;q{#Yz6x<%u>9JiZe@ExOd z&+P?9jBi4z8FKy8&}F6s~7Q%Yo%Sn3ovU`>QhvY1T~1B8n;#yS4i z@7xBN2)K17Qp{Sv;U~q}qa5jl=TR2VAg<9XU|Hk?F^>`!d!!o5dzWRcc_?nxB}6g^ zafSZQ+LbZI1S{$goJX>SzWkZk;l8K2x`0@<>Qu66_)HgzHQsk9c{9=A3+z-WI8C0j zo5*MW7>PVY1x8HYxM$3xk*ZcjTSY%&#)L>ct=Cj=;{Vv8Q5$qEp71JWxvI6oCanQ| zT^?g6hrnP~+r+9hRXn(y80ey+IKug*py|IQoK;{ce5KfG5lvq=VxdgLY{D9*r8rI2W26>>LOHN#z3KbJ#rT1Cw70EBpcyvRk_N|$Kh)%{_#Ot2dt zVGMhVX~kB}kN2Z_%*Mz+^HMjdM0d>VVF3zj|smM)0rTSyNkW*!cu#)2k~S#iac zB0!Z-X0x4IKg?bu5;o0^x+JK$_}kHN96Ultk@;8g>yhUU<04UGTI)1eU%j8AZ=3Nd zTzkV=G{A@Er>(N9xtbd*r)~}Qz(*k+1Pe@!3SVlh6>}*UVXmPT#Wv5#Evu>Mk+x3k zkG3>)ZACgx?ezTD5i7(uOP@=ML6}-gcC>f*hNl&SiR-wrj>QDNW65e(6nolMk>HtP z<1bF%k;jJ&=>h(aC41fQJF%n0xMU~itdBK{c|fVfaB^Yz z-5Wg2qV846K_v*6m9d*UmxE3D$6h9vdmgX7w1|BCZ-6wSXi=5eK6M-UL1-O%3aMw2 z%o5Na5ic?_K_;0kpm1DTS`WkYV$Z1N&c1YM2mwu>f$7T@T*a=m&-h}R-Q$x=7-f=zJ!P&bjf_B<90zLN-ZO$YfWPyNxxid_QCfnXA1$8#!1-q;()tlz-Y5*OB|_ zbI@lZQ9wPI>HTDgqy5X~(9Jr@ZO%0R$}DtY`rvjl=kX5eA+%?u>ciB&ZE6vJK>~u` ztV1f(GE-zP6pN^dTwhj^{GzgtPpXHHbNjNop~g4~)(yOA^{y6yvP0})%rS}2K*oD1 z``QJ~<)^tBfhzh9ho3vl2F9}y4@`DxyAN!83aLH~QX^OC6ThInEl%*P2X_a;1_ZKJ z&!y3Yx%z}h>kg?=kek^9uN1L=KJYVEc;>vE8KSWI+XlwE<|UrRlUrTVoL3zt7D3$j zV4JK|&PVVMdrRRCgzYq`BaP*^M$PihQrp6ka+y;yUvUx}aS|T801RgkRZ%Zb&vL5B zZyH5q;AH4V2aZ1n`tYNZkj8@nWu4y1uge?cp&$8G=o%BJ_Xleu<`b~udO+Gs(KdU; zAdE>wUzb(MjSbdhg>FD-4+UKN9O@WkFpGQL5}eX-SW3|neQF*jJGGK8vKyVH96ksI zwZM|;Ag}4#m*C$cr=qv#zc`ZFd|7bnH^4)VsB4OeDMpvBQ}UpqGD>ppIDvy+Qj!;d zNuDQRe(#QjGqP5Mu9;du1AYN8RQ`c--xwMtewm5->Q_#jpt~FcE(iWXrpl#L3?(dQ zJ+m?T?VWi^pKJ@AMz597^^l)CBS9jdU9X6>=(bq2!I(K4YiTjI9-^1Njz(n_ZBe{j zV(Oq z^r}kT6oE-x*s=H{>=)%i>?!!KH_c|oLjgHvdrXr!K-Po2R(`pFi(oTnlM*zm0%4@6 zuXd}MvyP^~A$>4^esesI1IWm14P$baaU2E%?BLlA@J=C#M5dxTeukKlg1Iz<3Cp%b zHa8au$5;MT5z92SAP1r5=kMHHwx*gov3=#3S;PZ&K8q$GoertVP{>3la(mCkx?n4ukTbboc14%Pq}<{4^?Hm!!cbp3E6m^4(~ zdylAQW5oEO+c?*m&Cm%U?8~woa8@wl>zww*nRo;I1`rW$SOn^hW#X4DOZqhlnI+q@* z+$mX_fcz3E>sNjfqov^!TN*hd3aZXul%I2R9);>-?hfqxD$*o~G8ngZIo~e+XceSI zdl9e;f&#C&yBP`V?}ak#wpQ#WoJ?F5OOofiq$kXP=O6Jr{-7+V#6&72WyQeZ3xr^6 z^_Rc7eJYGDfF(2d17Z-M0+!ETpANI`CaM#ki9LxrL$7FY@a@(lph{M5Xu}QmXF~gO z#b$g4q7$MMbf<)LTH8Z^rKHJXmV_=uL=m~1__ti``%;v~le`eY!7_w($5`_&ulZ2~ zR{KZb#!0lZ{2H85Vy#X2+LVV#O;GQs)=EG+*S^&}{~ZtLRwzl`BL;2C()#}3CxsR+ za`*3)2#z#tOXJJ12(buN@v&xh%^ow$Fwd+c`x(V zDM}3)Ts))ooR>Pu;N+RY?wjUfdi=spfM0P-xmKYC`MyYzY7M%a2@E?o{Ci4i_9~3F?Bp|mo zY2=P@5{>4mWS9|*k^185b2+43e4uzkWMCjC+?>r{@|w}#fawu#@DpNUUfr5vcAaQ5 z*4P%NyRekmDG0Vg27Iqxaay^r@>IaNG&ng=Qx=9)j3>;cG;ewG#l+~*A4o|vblAev zN?BwP^80=`*}N_|XkrP%tD2sc!uBPYquOjnon8d<04p0`?EzJsrzI*$U$8il#A6lI z#=h5=<7rtV9TU1^CcWAYrG1aY`4BVj>}rY~m+8}>iMuGClxMqXYvkg383zPC(>;!| z4ySRkzKvlJX5meFJnPZiM^a6}<^>9>xt`8~>uN^SCwYNE2Yp3jbQvP=qx(A-*x8-( zS*Tdb(a?M9LVcILs%gFcW~Xk21s+cB-l`#ro;^b+)C_raH1cR?@FAy?w&vowWe_o@ z$x>gxj@0Hs4nu)OpI+I~PT+L;s}u{uFkYZsah&Ep0^+nX-ari3HXfp5ir{LM*C4Kr zeN4qRYa-jUwZtg&$1jH@n#!_=yTh~18NGV#X2OQH#Wt4Bk2F@sT-bt~S^xG!3oKeK zMISXJlN;ujkdhzxMR7+H`t2(O?XW(5aKm!%k4R~@{a7ocFud)&_&|KjhBwt@1d~ft zbJj@L9fO3cIaknaEv)*aMB{r=RtncycVpg#S6ZTF`(E(b0I7vB(L2j_dTX~7LZv%v zC;|tOrZ4eg;N6#OzWur^^sa6cAD_$pZ#|CN{ zK{zJmZB3DA&{YK;W9N$kGmJ}KS%H)~fY>3wA<=R^SOizk07wsUzk_A19lH6h(e~UE z;8T~gKf@n~fp`~&)A`3KFFRr?eqA0P5YJK~3Kb30s$m<~_yN!G$yy(T&qkd?D^9za zkrL6KFl%8W0lwv9IyRYX=`Wny8qk;~`J&V1@Hy3rJ?>#UpxahxH6MUHzbh<~vCfSj zn5Gnh^2z;xobpW&&3RZ_@9=g2DJ%`xyQqkQ*$86Q;7sA=eH`ZU8~NlEZ2Dv&^oLnM zj;G){%u0^^Pap7fl2FKe)=hMsa?YZ}Y0VYfllo@kO;ry&ESz&V|F_IiO?;1-Kr2*U z3gq%a&{t@ie1R*84qRe-A3l5Hpm3MMe2XCFe$*Er=U+*FM4ClHLb5Las&9?i=^4vE zJw)WGX)DYiq@+M{p*g+JX_s~r*{nObWlo$YWHUmhM#&gIa;}|Bj=!T}e%w>wK?D@y zk7$+*Y&l4GE8kFN`{zcHQ(ecF_|Eht+r-0259^|G`#c1X1-ye8!vG?WZ8c zXCJYFd`%p%)dYw3?iD8*SRX*Rzux|<4pt#lK^m4a;I8-+X1PNiC znoK&V;32#$EpwNlC&~=`aXedj=GTGRJPmExo_dT%k_Wp?K0;Myacj@E<@QCZ8ljf?0zYqb-aVB7{EdIZ^Qq?TMTZfA=9%P^%9Gx|?1CpP$WuiNo5Oi1BEP?w z3h=WDdAK6c;ZxB?jm5PUTx`%3@)ojox!8Pbw3kFF;tL$Zl`xZVBWN&9#6)9ECM_== zO(A^sD^%Z@(HnzV^pw=`A;QMObQorUbn3Sg&L)NK+Z+_kRKSK_G|ZXxs9xdDl$x9c zvO!nO>gijg!N@{FeWQRry1C4Ny`ZcWX1z>?rPe@}VvK53N3nZ!#vCkY&vSgFxHdVi z+!KCJvyW>N9Q6?YoFgd3r9;*UwmgCIMS14{HK|xBvTb!IoAe=|*+#*rzVZ#($g76M zx}F3efTEGK=8B|GQa*j&3`8{l(DLX4y*BK}#~I#nw_9QhYa&EWh5mMo{JKKrF+x~+ z+nbX01b|Htbjdo%10UisY7^0^6fzXiblF|x20?xVbBcN!P@_#%Hltd|*!H7Yd~w@2 z8!KblC7~*OAB|!5n!vI?za z+NXke?xyK8qlC-e4t{D*FWKm$-M{JY)HtzQ!ViN?-bPI|yEX#fa60>zW|>fpDJX|- zjeC|zTAV(TB@ZF+K1yrUL}uL_&;(reb$k?Jf*U-11e5(dMk9PyeFXoM*GLq7GJB{B ztY4NEXG90o6nmm6(hPp|?RtC#DyICg!<$k}DJH(OdG{muXQbm(hMa*!Vd&Q{O-3gi zUI_{9#EYTMlxT?ady2a^WDXBy%9ybWcFcot6BMX9=*-Z~BJtjCHx>y^%iAxejCPsM z5cC`HaneYXM8|wIWgulGPNt2gAHk8O2|n4#r>HmAVE02f96|?c3-_xQkOzf=`tGae zlxra^11ov297wCxQUY-aDu{Aa;X*55C*j0 zOQ`}y0&55v9EF%t^M$Y@g*2x$%CHH;_O^yj6t-V^lnQ61q}g7v5fG*l=dqyM~x)<{sig<&WZO)&i~e*pde-RoG(yYF|4@cyzJsW#Ysu zt#EP=J*RwONKFXGKf=g+lQ=V6o@MaZEFu7#nh-{XHTe?O>>{0l(+y%vIU2&i$?rD= zQ>Q9x(bBez&AJpAt7Eq{0SsLRJ@%bD?VQ(Mp-xkFW5c15zjBoxiYl?!sL1mqZy>VW zrCq*g5*C~CG$jJ{CJ*V1^#a9<>E+jX=SuNta2;v4(IckH-F;MZ!uQ64-cP`?|7Mc| z(d%z2%Ab}AdP=u+F;a&X``#yRkbj$ZF)D*@5d>nVajb)*8QeNNjanI8277AoaJsfM zrt5b~p9TElL}G!$+NSa@8O?zkCzk@0`(P#Yh`A1@-5W?tIdJJ8-T+cUC?vk*Pc%HZ zfn8DK%QjEQGVP9J#(huK-j=-RhG#5-@Hd%C(+|ph%z`_n_IGSV)eK#G5{(6Nm+zOL z_9y1{Zg~GnaQ!GOMy8t8HUDiiz|egnpD$nSht!>zQbxG&SuDZpjo6IiZZvt_voy#P0hNARiNDkI=riP$vpOm*)9c2f%yd*l&}oiX*NcScG_M>bKW%7G`X z+8`a_uBItg2(sjtlH20KLgf*i%ohbl2=g;^?@*J_VnhBME%j;ML%-n z=(!o$>o_}vM{LfkU@i3p8u2M^t`ZX*nNb@#Bmt{p(?&VOX}2il`xe6{55udk;JZEq zw`MLdRALe|H>5JlLL;=_mzigZ%11f6Yq$Bt=`CD^h4?cD6lZ2)B_DzCv*}w)jQ=%5}vmo zcEE@hoNh0C{abAkYw_FFmV)zK2*f+|#?}S}ofsK*Gf8#pCfnc*xMX4N8z-5Yup9E!1C<r}XvQzW~AMZnyp_BuEpTXSkuMC3pX3fqM zrcY7Q+XXuT$Lw71Nkw~!j0?;HyWUbR%Oi=UEk4Jy*vjo4L@#Dq2vr0Qh4rm8nnQ2j zgvuE~l8t{xBA)=u-}X&O7#>PFwk?*(_QB9jKdVA==a#zkbB4e0M6D2DrxTA+DG>YQ ztkK12IiM!=_a(QhTft?nd>z2D0)ndlBYh`?23>8vq)$;E%M!nw4fcc1HJ?7Zj6-lG zX0J32qcO*qc9I9}7b&IK>P=loO8&i;4*POIE5jJFRBot0HhE<$AQ#zFc(sd_B9hIj zN*;0(9VM3Xw&(ETSIADQegEb1 zccE__o59gf3&hT6lfb<`Dc|_MV~<8By``+-D8(3JuOEn!@Z83=ib+!Plr3iNql1Id=F%n45Yub0EXUdZMzCDy4 zT4^szR*}i&hVY?jRaN7#xBXBD!MDWL@OzA-P%#ycc_(6st+9vVR)>@sW9e{=W^!n0PSz!5yFR{SvKdEiANZ+i8gTR!*KyJ~nc5bI=_PB_728$H}rsV19a#DM5) z*%yop@}OS?&hA5E${wmc3u3D>U{KEI=zgC1ZrmV(VJvWDhjYuGq8XY?gqWZx6!Xqc zk9=VJrxQh-5Uz8NG=}|Dc*2e!3!IzR)YfbUKk&}K+%>{1aknr5 zx(fwHxcX^vKR~Y*T~k$>i20F?X^9Q-TjB9zh&Bd9f3ZaH9Xr+i6m9SL4*bfkHT|0q z2Wz}%;>n0p7Bp7bqQQI4B->ido0stB%b%cEtuF**25{`oSk17z1bT!pPUT4Ph55Qi zkSXDd&y@FmX!^4U(?G>hlgPQ-m3{ZA7uC}GW7Pid^~d(0RkxgriSxBfKUizcZG%ZP z-=YK4cC(Tbg&(D8CKX}ll|q-~`p=Ca=+-Zjl+Z&OA$I~%=j&oJ7w9ZOQpVYvL`a88 z_xklvTD!`_Q<(xv53@mb3uQ8GqziFBNL-xHPLU=LW^_TD0YED5pYmDN(fUbc_x7V` zWG>{Gg640_Qe@KAi=}1i7YwoTiDWSO*+d8zn|zTXRAl_N|KOxX@YV3bX=RadlA2@8 zL}KZorPj&FoCWfKFfyRvb48J#RN>L&x6sc>j@AgzA^rU;bLGtMGH|ocf(v9g6Aa*cl9=~f1#j#C82z#@;enL7m};G^o4sZi$f25zKLCEG z{Gr%;P*zAWoRvYsFe?Unf$5C{FiW(*D073&iXAcpj!*26{$dY%lmCnQIV;VHINDK{ z(Aa7O&gkX8h~b@DRwZ5vsvX@bVTd|J_%j*g+e19QHfai~clt-`G+_jzE}5d>qPa!q zmG)JixBv%q{6oCHrEwi&W+w2yRlhn+4D?Bv%wRd#AbNj0;aC;_#{+U!pi+lc(C(0@ z_dwrFGUagRb48&!i0{@K`=LnVjVR^oX~)5vT{|aZuBE2~ds(_Uk;lu*B#BBo7sCYI z^CNBJX2r{%_~INZsF4%Zhe2o42dqEj$=kA{C;-L7SoXszZOCMP=trCQw|J>25L!-n zZnV+;gy_|Lv?H79TGM^aLSqr~A|>l0MTJn)HD~VuLHOEs`!M8} z3sn%6{^*l*P7S;S4OEG|w{(JL!E-=!7!)@8ITg_^Cll# z@!Cbx09LMYH66BMh@{=~fYj6h^W_=bz$JKlNsq^j9vF$bylyR`17C=RX(7f=S(!Oo zq;VmYaG%BY9f{OR_`F4dZqp<0Rue6W+8e8V4M5O~^}8O!iA2 zQ)M~imnJe}2zneD-ZtmsxTK$HfsXQ@YIpq0;;Te{lEwOXr#|BCmJg*K_6n2MY> zd!-{XiIdyZzb<)FX{~v>NtCy09GMGR8JMRjuCYsXRsI3Ag4 z)C$C0I;Daum0XAiJ-$?EY|$M)wNZ4*XZ}b%OJ^8?7+4)gxtyb-JtCqSrdRk3cm9WUW#1qzK)z6wjvI4FgR z8t9g@*k7ya7qTZ^KDS|D$ids0?=j`@W6xhjUNFW-&i2p?9PZ*jvb0H8;Ny8L1JvK#)*ZAm4da7 zc)JJDu%Q@@hS8dUh6xBnpz879biij}63g=0OeO~NiB z68k_-a_Qn`3MuT=#d@`8oAUAslF#ecbJAo?Ke}!qxdU+xkc^eRDuPAE>023m{TW8&`65M` zUd@48e#Vjj91^s!OGeLb&k;$oiy0AlJ4L3YO6JbXlLnUT!0pMPTxq)*ED^g%skQ4w z*1S(GcX6#-HWT-!EAZ0~NE_2p8LEOkLCPNe%2>zIT@{(7hm+xH8EDH~CD7~j<~%5A zt0nPf378*2dRo(EwMkBqhzJTxQn4RMym_$l8U7;-inq(eVH9^|P%%l)a zd@DS&uRW`u7gNIpyuP>a%u67by5zZ=jwh9o*Fw&lX*B>tfCc~NOH4^P!fVdHN3kcz z%M93rS4FTWO53FQZIs!DHyg>cF!&2dtfN3{RU>imEPm{5iglIvbMtfZD_Qdw6B^9t zC`uJMR)+{^l~_RRfG#6Q`pN+R(KT;?uRUcCo0ZKHWEo~xRENjm zd*=bY*oL@)v{bW1oX$MDf&IJ+%`j1X$!&TJJ-#w{Ovm_nvQM6XKK`^`y~iin(z{C^N4}Pi(J1Jg5gPvd>}>h>-{TB68kRt2 z&M$+Fpqc`KKl|_+qzZjT&5hkvTap;BDv;P+L&|Q%kFzNi!(5Z)xqmHE=bkNae4A)O z12wFIyOo=>&gs=i%*PlZBVIp788wc|+zj5Gk0_G9@R0u#aW)BWb64?vxml z$?yCJW#52T<{KK4Y3lS8B(PRI;R{gFhYPL!GzhuO?=rSM5_|VAyS~J)|4RqGr?^hF zsr;C-%e@LLV9E zs+0gGN=2XM=)74p|CNDaW7ml?A3BP7)axqV%RD8dUZ1&}5^_NZVI9miTQXlN|C+Az z-2wUWrzYRuB{p|`+QM$+4UsZ2AGU(}bIW@@8a#zmL7g=_*$nGn3lAwt9Cv)2>3bR* z>*@qN-!8C&ZWq)u4-gT>nZ*2n0b$K{V@Rvuf%QH0NVa9esajcu+SCE4VFPi-kPTsF zuve7P`qrTY)N~vhdblVJA z#xkap#~z`AUx%H#TC9d2mWKl6XBV$HtA8b4Iv*B&-DDvO6}z?ens1ygJ6RySd3H!^ z6_Va%V5%TG$Axp0ZQun0bPG0-c^BCuezmGUb;VzDra?17`Kt&pToN1db3};-1~O@z z20`b(M=6T^j&5RTwInO)5oO}3Sh=pmeGAHg0i>13IY153y7C@aB+lJfBr6OR_9%3F z=)Agp#A{!(RRb}%!Plr9$HIyY@L%f5h!aK?X&_PDs3 z-FI?TkGS5PLX`kP4MGKM&?2M|Bm5RAEr78%N41;bkSi%%zjk1DK+7iXg>r9-f7@&) zMj?u`u#H%J82k>zIvjd4tu{lXs6uTIU_{xv9+ZPy5Zio(zBJLAoqLY!kQ2q<5g`~W zflX|riC3DU(q}|U(!*n1MddUJAYGntD()Wz{18qpImjQcDJzw1gy8Hnw2pj^|3fMW zh8*{#NhIY*Zdj&DKacB%!7Hh@o(_ZvhEhmgX@=}pwoss9d0AjOb|hv_BolTSj^fns zavWu8g%r%3l+S3Fa=T{o`Me62Zx-9~M-!OVPD0Ti=ErnR&k*nO-luj&n`^#=@O_)u zOppZO8$zYDcAO?K&{@WKc2O?6w5gPJQz(Z5M$u#B`{5Hr!C`7>bP&!_bdqU09U;H` zRKNL2KWGBCQW$PdPKG_o57VLg=v{2ERCI89BCx+pun!8CNr;b>hZj=YSU!%F$akk) z_F&Ip#uNHfTiR_oBhjX-R$qe1zR#2OedUdMwv!(mkEsFs7GkR!`G2x}WzuW>;>^1Z zR-NLYcZU)FC7tl zaIurBW6sK(3o)GV_-IERikTh4_K0^wVfzuTh8DP_fBmb@z zc`%SCff;h2QqDtc?h$)(-lhqK;ROm_k$qJ#zWS4QZ$i~=YYa{E4!IVu*_PuA-NW~r z;LYPOxYI$<-0^{AciQvfM;ehQj>{@tF!vXh1hB1^94fep?_U^crdwCN9o-vdqirG& zcc2rZB*o!9xkXv}Zf^DS2X5eaEL24AGo=NNz6#P4 zgf;K`OlRycHA{a07OKdvC*2)c=vv`-KFiF$-)be>6Ak+47@mCmNCZMU>tLq}eJl{` z0+)9COG8sql0$}u;;GBpjf~AD4Y38z(Ry(-yrnGY>$3rWS_OsQwifUDYdZd-eP#{Y zd-`Q1;Ka#dHR870oyh$A@?p?^1Dkhn1$eQgCQ|c0PppUWccrvfyvp%ZZjzJN<)E(Y zCK&R*DmB*w;yNzH+bwWThGly^vVnP?!}bu2O5Je?#x=)%1>@``5GOI-kO-P@ePwq4 zpZ`3|Tuh_in#>t9+>v23SvZNsFAqBQ~1e~jL(S4j&i;|bn9@QZuPL!ko3*3 zOsUcwlfqH%ygW(#E+lLO=orcopnoW~+QnVJ5+=Vca!ZQ9|T`JVG;H{G5D?sapRrNT68h}}4QO6GMb5=$=hAFan5?*luq zT?!GSmx>)xcZy~=P2mPe)O**fdV;qyn9CT|v6kk6vzj2fT7-)QJUQ03j@1vQ*-LkQ zz=pE3G3QZl1)0Z z|H-TYFAC^CT<%4=6zSl>Fkuc*YK1KSz$95Td+a$`+(?+A$+_)zC3@5?4LGSF0_q=$ zt$S-0V2oAYuGR+tx6g=~an5f>5x>*C>@FRpN-%C=l0^X3r1rSGWPBo}9{1PaB)UOy zrIKT7@BOS?@}kCgU^4@rbr-$hEH*?s>G=NLR%m5lW{&z>x63Xz1wXOzj9R6In(6G~^T6k|NT`*&@JW~prH{!K#l`Y&`* z%`bhR%$wS)h%?_|hQfDu8a}$Ff_L9E@b2P|0v`SBt6~pS2n?CFmlAWU#;B(?v&H%R zUEFGd?xH*zjj=;#ULH|{bPGM_L0m5>_pw}U<7=kOC3;?;EPP7Qt zA7m-3tu<0HY{a>KiFCHeUZjjw)gLlYx6qX&BHPIz%lJwp-sxgy0C0W==LFNlJejQValT$j&32+?-Iw}%K&5v@9kSui?nNKyz5m8jrC`90QMr@6LflP{4pHeX$1&;i2TgkGa@x1=fvhW^M%;h(c6hYbX@4J} zeq3;J;@)ghII+r8!J*^f-;j*N2vep4YIm3J#Ya}l!FpmRO(fRj3h=rn{aI(#um`+^ zXrl;6>KBn6ti%iFsjF@u(HjXMbG?Wg-JEbQce52+&105O2eUxB0!EBu0UdaaZLl$r zPNITi3ch=x9!TG$0}05#CKQp1HM;Fn>phF*0AM&|;N0G4=`=_XGzymR5SKJp{&1ZzVwntrZ;M;!NjTa{PEr2&3>|LOX{nY- zeXITJPC_o&c+6KMoi^#;3s~dJHgv=8R=pX(B4ehSK)Uaiw_nC%p_OwvNTqUSch{^m zxYrIsZU>G#Y;|_W*%&qIl!R=Ao>gdoe@-GRH zwZv}xd@ZO^+gkcN4uXizlA}0yzeJD5JE>mOLnc^wZeaDIlYUla5V6DAC)jw+K1!R! z4l}gMqnx%PsTrmWJdjB~l|jJDsGaYP3kiebx;xzZ#h z9*xKLaNd=BR0U0jhma&E(z#+S1%BkRYAk1j*UJcLh|#v9aCdc}U$F++>Z&OVl@t3y zuxT?DrZ6edw$D&J?avrPV^HsLk=BI8@6Y^C3@TEaO*0?E_TVi&dO}ASYJj6K7!FJ{ z2gGQ_VZ`9|Jsgc<0kzs3uzJub$-C%XiT=R-z@jiilVK*c*=z=2p^s#!(4c5-)2$lC zXR@nZiGjoSWD+&yd>nQXp1Ya}7E_Z8-X({WcBkd-cQ2iu3OG~#_{as5q=T$9ccs8S z$5OU#L}H?b9*8o+^{>sO?8l;h>JyGNS%S?qt>7;S3~$9iHZjK^O2xe=^Um3kekV8T zKg_}lrilM3$fz=;?zExSVTYZRZ+H)PSDEnjV&0$gT_EUC_PfE8)`1u0olB9O@w7E8 zYP}b9e|qa^Da@x>)NgKFqbjyH=w9@aJPEfKafiJXFGDd(DEsW7zeRXCU6L$3AnztP>L#57x^J|{iysuOxU_zn;3|>-^h?f|6Lqc6X zrC)jq!VLPAB?tzcr{MI%R_mE&=*TFf=N+(YKuBu7X~8FO_ELuo-)EV@Bl_0D^gs#5 zvO#@yohnpfmi@V)Ir9m=s?N}&8s2oXxJZF+6&hd%8-b#OO+3<;nn_lxS=XJ@;OAyR zXUA6t%b({69MF&YDSZwj9xQF2F2q@QmkaLAg#V0&ns=`=d^99XYTZ5p+FeU{a#v)J zso0UXYR>j(e_QIXyfWkHWiR?!CP+Ioyu=f(y2*&((5bCDGA(BeczZ8K#j02% zW*!2wdBi@!mGA( zlcl%{qtTU_Xyujz)ZH436E{}1@{1mt8=UN-vaZ(6zhuKn%?xBW!6))KRV3<}QMZ|)grq_B5VY!2i>%sCEdg?*LSb*@XDT>r~XheUwRz$Yn?*F$Kac}TV0;urf zHbE{r=V6yBsiqi_Nrid4$<~2%+`3%DnxzBpVF7VLB2v2)&ixlFuJMIo=r7FuFy{Q5 zO3{IfW`xGJ6ogp!FIfqq4uh@@Fq)($&CyOfq!LNS8)__qlWK{2r(hR)P&tC%*D9ov@{*a;o3m-y?B;HTjb4yjk{)#}u_6=Ac!{?Vht9@H|f#e|9Gnu4eT9=Z!q0bXa; z^tpWsoPYnM^y|W;JEud+yI2~*12O41?}266hC;PkE{^INp3MK@9NfVSL!mZVS3$lX z#P3B;1Cnd;FGvhm6;5s>84fw%DKxO7@=#!KcK%xlg+!z~TAsh6^6TEo?%5KwNQ0B~G?0lzL8t)m-* zrSW0_4yE1JcPoFwXgk7p?vBHI@-DVXdZQ<$Owe=1-T9`eQiQsF#!n<+CuNM;xr+AK z`#z~*o}!&0#J)BSFmkYBnRjo7lHjyf1`taT)wNg(2M~@uR#O@ivI1P`b+BCi-(6af z*EWq3C0U-prdKX&8PtGIxyr-flJzUazh9Jiu$XmrOvDNtaA=9vR3VtBJtl-#PbE*@%sOP9$3!zdvYvEu_RU2G@q)^~{llst^`125l8wRAhq&N+luT z0kJj!oJ~9l+-&o74W`bXQ+`~`*$q270Q1#!#LzS_;Xu#4^U0a+&mWpC7*l<}&4YO4-AObo5hYiaKEVI(kNBs+T0VKxA-}<}rdqyf0K7g`9 zXLGSSG1Tt6Us=Jlb&k;Zkkp_lU}2MApmFC9-U%DSC@qQjE*ke3?--NcAHwC6NwAlS zI)NBP>cJhlenbSc5}dTh+IrB8DhnoqWQo@rXwk{0vTDdn7;CQI*cUu{V}ogwaC^#P zv3!_L!HW!j=&~g!vrqgXj=mX+1Dt#SdwnAYJAm^qbhm?%TtkeYJRLUAi(85A$!}t) zs7W%%TDtsXHG9G1KlOiLhc?lS;H+DJ0c%F8@A>k zEz+h%jx6L&=^A}oF2sukZ+ix zjjTB<>tJJ?!6TB+y<{kY>yT+dJl0tDbOh?r*`79%IRI|*X)`_!YI!|Ap~@oIDR5)u zIq6S~#jeUOTJj0Embji1k(nlMVtSV3!BQNR{O2^r6GL(ts%p((bXUGTQN7*`j{zSg ztmE4sA7=o)t&>dX6BrMm3hcFkzEPXx&Phj#XgF|sTJfxm=T`Yq12lwb9={Vg6i!Vk zEGlyS<zEdKJ_U5c$&Not{UMo`o9 zBhaZW|X#r@_J~V)V>GX{6bw= z7R$mZp(c2dC7X>n!H5ci_nx_wRJ0rnKex>Y7GqRG3h1ucPYL4S=#DkdFFdB(kQr)Y z)*J920G~i$zvFcQlLXb)UVna$e@Ti`)L%dLTgtn{D>3c$SFK!s_3i7vj9(_%jCnuK zc5V_SVI+C_=PH4)3liAzZI!T$OOcQHZIwu1A^m-o2zcd5+uu)onPfBm?LQ=rnoIk( z7M^B1HVORIP2#lQ_YyQ&gR`oB-Aa&1)u#J>D-pykx4-WsgtfJ&KX!$Ge||lTUIwuv zZ-n%1zj&DI*dC=y&A8mon%u?hHPW}UM%=lrq_1a9bbF}A5Pu&Ro1Qj>v=$}g>+I+; z=F1|R@iGbR_KSf)r%Ljsq^H@AZ31MZNCfD+Pf`$a%F{2RC1Q*KC_zD{FWC z>bs(sWijA&OMBl{A+7ljm(S&X=s&-n#>*st38R+*zj~-ovmLixpeRypwe;`#c?cM? zlS+S0&})aQj&AsxpSO2D_upx;hx~k!WRtX!zU121ZoV16I{iAVf3WFW7XE3r^G?6O zuAy*Ctaf(Hdqo)L0SNh&K|&6vN^K&0>!q27r>4^&R?$TzbV^+D4k!_A2%FZNBq_(T zGNyCbI-FNi+kNj3-<7DSOvH?;?wcJy{%A@D7dSuO416e;DQ*O?7 zmD?`52-{BB@UkQqe?6&|)G4u2%Je9(|EUPb};AUg|&5uU|T*zkpmHruxZ_ zds`SEIE(StaZlAT+J9B1OEB-H2&?4-q0jAt^j6%ja=q>nC&M{VRHjT6pe5!Y)lSD zosO}AEMGla^xPNwS-=Zw75x{|*<@Di;4IM8!AcDZ1mfr30-pCbVqDf4HkPTIJx)6l+ooRlP$hWdgor|*}cgX`O z=Jl{?bTQKd7O$UJ5xM2dRRx476=CDAV7;z!QQlAi)O&B+`Nu^tgK=L|e ze^9qV^A8;w)jyv`zkjLv3UMzg1*rKIdu`>{?&mtC*hVL|$4tktow5W~NvC2FSMFd} zvkMh;zrC%tjdj#UQh?PnPVc0FZP|_qbleEpUUAS>V_wXyi`qt202t7>#bNe`k6B;$ zF#OGs2u~NzkFJbn4&C%CyU9*1GNQUDe@5WO=?XSCNUY1|Jd^c2@isuLhznw+u#{kq+HK;h}qLd=Rf`mU3 zl3Ey}IH17d2SkPJ=wVqGQ6(a+I*@6x^#fCV6Y-dN)@aH>t^D00LIj2)ZLJ6wGe%;Ijx&h*Z5*a{5Ut=~G-Flkre_Z3jruEJwoiMgsi{jvdUXA$*&67)jlL@z81e+H7 zNOOy_`j`RSdO3#ul@@VP zXoW+E`TpiKH0l$?^ZpE|^k(1C_v7C_CX~|s3T>$U^YhJI|8tZ4e|GYT;Au8Bk09q1 zx^2!bt%Z_EkD=*GMhkT48Kf$KRAFq)S^Quzl(NX9&2ThR4_-U8Q$&y}V$i91pp(i| z86@Xq>47Rl9=NFHfx5yNf8RYODQ~F$0J6BO2C0ai)Rt|prG3LxjdNO0i2-(g2V%5cs zz(}VcSnxd?3$ECf+ws5FsAaD~| zQosN4$6v`#bdyXZY3eUMJcNmX0MZlkxT5lZW<>=^9|Mgcb|V8XXL>Ct0{SOej2R^{ zVzIkF4WgMqe-oImoC)tE#)`c9W3H7mizMXjV_3Z=+7fym5xJwP=V4zS&E~#BU_k51 zd+?EevN+XTU5`^>Y(tEL6TaeZ`Ny{0iLmYC2H^vO#hPfKx4|yLQ-t>?t_79GO8f?~ z)DClwxKd!pCnDG9<{pvqvd=k{Cau`^Iiw@EB{^?w`fq78SyL6C9|m9aaT&EcPz_>yLl^@pt-FH0qhH z)6Bp0Y+FqVhixzTnT?9I3RWSm*TYQeSu1RpBT<#sGiW?#=D^r!ztrlB$~Go8Gygns zg88a~edmCdsMaWB*>{7yZ>`j|QK1g2tR+SrRBzUL%fU`O+o^c7?NBsd zWqq#v8J{B*+xes{Jh3!b8%8dz{^gQ-!3fVv3?O)PZQf2yLnt%6)<)3@*lvKjw41f=L6p2T0) zlpSz|Bw1mj>LEhoX@Mte>dU|W_&fbtTdIYI^WIofu%6hD2~tF_cOOr^H&iS#PZLMhC+vf-f+E=W@EGBd_wWas zeTJ&tYEK9O#6?Zoyvq>H5{?vt(Ujf9lH>V`tL1&oN6`aL3{U+(mP;<6l z$#e;NqHwe>04|v#{N=FTLJQB)IfU`g4l9L*{<+Q5{IO?z5=gxK3Zx#@mll~Of4kz| zN(Imw02NPFkwepBtPqztXhxrRI>`Lj!Vs)3IKP5wK=eDbDV;;xuY`4YWdY12cf@xG z@I%Z+WrJ;#rIkg96-b`zbDLI3DcvD`H-ldb%dS1tvTTKhk2z_1U9rQJC{uQ)@22^8 z=cXO_>3RHRX(7yRp^yC!r`-O>e;I7<*uVbx*B^gpzZXeT7I3ro^OxHNOmPY@Z*9Q~OCdlT;wYL?LK3=!|!1#rC~%k#0vpUv;3K1{Nee?wF!l$KsZ zEKYx4CUq1(=lz>~?O1AD8mgpVK8s?#ncA*MY_2HHT(opW;V{wSGuO-)VuR^VSfi<3 zrg?3t2q>3)Sq*xUsJ_;&y>`^T5Rf73&vlnOwm;Ii8fFzccS1+MOA_A7**d6&oVqMF4hK`=kb zMx%?VBLqrnm_J<{8qj5s&^Nyp&xg|zC>#<*d9KfG!b3=RA zZK=UexeV%YOhQTUxt%@q$J^(0Jr%;%r^oR(4-0}e>g|=4)hGaxdBcbQ;~!uC&Tb?~ zCeaBOZDr9Jl+2egfA@t3#h+PODblA3J!qB#6K!p)fQ8~H0=(pV$i>G(4o&9bDNNjS zN@=)(beG!?&a@xaN{ccMi5(1$(`$gBgMyvEC+7&RLr1iU>C7Nj2BW1;?dhYxJkiao4*1e?+g{WIxZ%{j)V=hfep0 z2rC`wsUZ*o8-{-_egxK4A{!Q}A_LJJr8@lmpnQ@h`Q(fix4G~=xTPZRQ4>AYR4-xA zT0peD^$Mf0ea?3myw|6v@wdE{Mc}iWuU3>-h|rczx)r|t!Qe_{2hx)rX1ogUqV8~h*)%IryJ*aB2|tjDSeOL{W;!h(s#Tx)G7G~SyB zOXEKykji#5YRh3Ya6;LFTm8&wh~16MWu{t03%}w)UFddz>B~`04NaZG=tLuQr5Yru z(MVUUe}z2>JUx9r<0@6K!<*-p{Pm!_wy%_KpYpQFfAw+!1`fcHeFCPa*$2R)S%n1Z zQkkaD(!U|nx~7A$vjQxD)Vdnkwx1XUXw;QxHfJh?=AziwI$}G#LvxwKPUxv`*glHC ztt#`!ZObj507VJY9REUU^y`0r`78Sl5KO_2L}2&7>}QeEM;kDbl>DJJg#_s6dPWct zwHbuhf3*u!JfyOeONURDQtfxyMxvv{F4&41WPn~WU@wv%(p0fH5x-10)#nOCnPWfr zOO6q9S6jK=9I4IdAYC_aqO{GGDrHf91xvf)v*)Q4Q&ht(zlgH!&@M^&FpA01Zh{IHa$*e-?kuuv0mlB<4t}H@a&l0HSaI z`0{tUaq3us6Smo^0v$cb8Hr`#hgKE5fu(7WE>pQ#L4641U^sS@AiQQfdGH5QQR8J>(b{F&qS5RxZ1BaP?2QE|n7lelsK zVHEHO!{8;b3f=yK1e`W7iTvz=DhgvTDE07>*-LDY2RLRINmqlVh zw?|q+XzBf<_}ikg7a9+*D_Iq2Qtl8zzP|nA%irlsc*Prd%<_vs#a1$H#bCL9D#M_T z5+uJ~88^pv`{}D{3jEx?Pf~^N;!#>xj~4I$fDF*g7(6f+A}@emvnz;gq^{f*%yV}BsbEI_2v~t4!K7vw za{YX@J@-876$zs6$zd}nuH!O~D-!ITG9FjR%=61$8e#KMI+IDDRWFJ{i#x%#iw!Ao zCPhxaa0cn54f?fGXNjfv&m;z=e>Uc#B2+BCT}cdt=n8kPBnDiwucycHmz8C%r2SI% z0I&M-#D?eDzx?Zuzq8+4(VCxhW{2?$Mk_icVGDo*_=mPDh+dj7T-caSgDJ%*6h`f_ zSD@ROpF#uW@)u;hPPc%rNRP(e1hY`*xv*y>yzEGJPoLKmlHNn`M z*&9li9Zux+6=Y?b-d*vvk~;+?L@lCGXS4uIn*lxO_GStvT9bcn;RJj&d zgo1>sP~^;^c^|%MKs{H~C)J7OY;oxLS1zGQ3!2YUjWCgsOeBQy#vIL*T7ppmKiCW+ zK8y7o^cv~B<9QZW1Mdk`e?zR=cN5h2_Re6d{p0xSo@L(w!4xTVTifPNb>t-f^~b;d z_&a?IXmN{JbH%*^=SZig-OrC5gw#syV4Z2X0NtLN2nT2!3gFjQC54G>j=q-ME3MC z=`$Utpkcwn1C-i7e}=!TC<|`biNVnSOPE6YEfHFhZ~yr6clIeh3B^K`(|_rQ*+yLg zbgT2HRuoh%=6L8eW1F^zCh97SX?SIoInrXb@IUw|2v|0voSJ>};pY>zMz#fnpOSx$ z_z#enh_nlNlj1XF%8SZ}0+*j;>9r+Es4n|P0*Juke1BF2f37q8Ryzixl6N!dNhw?0 z#b?hK6xD?s-Sf$u*46K$(x@irv;Bpw4cv2nFaA;KT8GtjFZpWV ztqA{e8lL%l&9S6{xarko|Di?v(_3t3JEkv`BZr*TSj%-j>c15QXbgO~o?f5LGdKhZigT1Bu)A*Vac`CNgq)wUrK zya;Vg6_z|#L@Lrw>E0b6Pl~pz&nMX_z8Yb0`#zR#Brj%`Q&Jb89cYLl91s$DRC1%6 z3Z73{yy5e;j>b$pkCN%9$^aAjH`CTvq@=53leC;;z=LyOh5fjT~p2pt_gMcPTz_^2De#9u?BwpYC@#XK-7h%6DXr1+6`UQ6Cf8xRS zzn+BuiG`&eNx^m7tKf>a&{m7ByyGvLL1 z8p~|2qjOiE+XjPJLt$ABS4jO2W>N|mlBS}YvsZo;{|?Tm|DUxp$#LXZg6O_ZQ5R?- z=HWcrO84J>e`d~B@uP}@04@ZGf644hW=5os=4KPLFD40VS>d6XR5dTzGRI>pg~OtD z85@;_y1EMtZQPPd;5@lMn3dHZsw&4$0qq#Jn`lrTf758Xa0z05h~W4a%-D{KS>f~w z#F;Blu56k<&MQP-Ov7EzV?|bA^7)AnSp)`i``O0NlgP@X>WWSumrxYlf8l2RVJ%)I zf*ZKw0G>`Yq>!%zjQsWV>FK<<2++PkBO$Wf4=u?oj3`YE<$GXP;bCD@Vx0%^k??aC zXq`-#9$^d^UL(=IUXY0>Xlr^}3Idh2#PRzZPFvwN3EPW@<9wu4w0md~yAJWEb+#ET z0VGlxI$q2K`x+WS3Rl55e-iW~U!2s+z-@5}=9kHoKgC!9mOE-ZPKc!1MBCIXEG#wBs5tU~s!;;*iE zIYip>!&3zKdnDdE$~cK;)SC#qsva0Uw1(i;%%B5J6^jC@KIBWxG# zW2RyKhju|He@>U^7=;T9o4$#20LWnNG$2^3w>er~YF|->-EleolK8l~Rj^bDSXF#X zdX*voZI;X9n~h$0K0y#8ARTuYQ_pHQz7AzwD`Il%ci}Lue4{|9blLbe_r_ zEA|+Qt+jvXEvI0mn!~H8>c8x&O*{f!HZ%gr0Zt|=f7w;^ha+jteH{^`G@GB5L!0if8epLJ6e$4Eq)w-qb$T2JyDtB?kMPg+JpRyuPg$2ZRFNp^^9^ZTW7w45 zx}Xw(f329Lqu)7(kH^o_zG@ijT_~gK8o*I2Er+;q%C@Upev)s1yR>{%cr_g07Q_K{ zPCxZZGm~q7zZx$$78P32yr8Mvnf8u1SbgVzK0TeMt0-2dPBlM=*&nQ5LrInktxy@ z21trYS4DrPNqL+L45XA0@c_n!yDd1tO;2VPNG;&%qp zeHf%6e8;+-#=t`sNRm3%VPSCHDR4xv7v$)09V%Q@v0; zsnYP})6;nv4$2e4L^Me>I;V`{7xITV?SaknE<4chNTtfYf51q^@=u z!amxbQ$+vth}^=1xX#-%_IcOqS0z=rWk}o$Qa}>9GDQ)>2Cw)=4a_E&`Xype)!+0r zRq~1*0i6UG9{nhYe8>klAK+@+Uh?><`*`01oL!QS)@?(8Zz3qZ0bs3dG7#Xbe=59e zFox4(LXCi)v47phw`=hd76Yl1N(QP>tTCb4(YE^M)6;oK(1abhz`NJ^KwOJ@-K6@` zUgd!QWmio|IpU=f0`q7VaG4H&5|f6f(=4Fme4&1E`UFK){38&y;E@W0DgbEy05u}i zucpz*?0H<}5-xFNE;2u(sS@!FfB9Kq^mA>8xqKmZ7cxD>&YHSplNvS9F0xYa=3{T5 zl@m7f*cvBKzvQQ`T~t*y7%3gk1oo6GC`nSO!4S^ zCT)eSzszY#`AXLSZ>)rvhk@g_HJp;{I!2iCXyXM^7N)eBBCSUqN4!KpfBb$}idUN| z40!zO!2|@^DQFX87ruP@dYZ0{Dj472!Mj&kk_kr;D6Xt@(DPRndT+lW$ZNs z5(fpq2Cp+^azwtbWL8BXF^-DP@eTE-Q)SPXS+Co69nZ$dXZkNWh32=MhG8XLhSV(H za)uskFYXw{d@D^u&muyQf3Z4qbz2pt%clb_p$Cs>d&K9!;9IkW=`Or;4My@>)!=KJ z;^Q4=hvJ)p05pG#@tBPhPM^Nlm46rJ$>`=L&SXk)97j!sY~1&;(T~)GYm+|=yC8NL zyn0xLtE(e+0;B1+&lOo|n)`~v^!@y4JziDVn|{YK{&P?VDdai7f1W-)ou`-$jBYGq z?5YplW!Md7Sg0_*$y^DIJEsWAV%fo;nSK#bCg^;s=l%*qATIVWF0)6?fj~|nXP#1z zSc;~ZN`>F;=3(A0?tf%KvmhC78&&@3suLH4r~Kr=nEe4`I@gV!8(u@kDM z%v4i9hb9iZvxiBpe>^=dEP$QZGiiirs^JJL&{F&Zve7V7n)QdcE<8pNmtv);zBO{c z`MC&1J;+Im_7!vW;dr+I3>~6~0-#GbF1%DpT~Zo9h)MRx!)5-=^n}2lJoK!^mJZ_3Io+vw%o#Eq2B_5e@U(I&Aew@4YA%ujzovG z&iW`GU^T?3CDdK2xZLQa9{04KmFkCk63w{2`2qjw9?QzE9v-OBf^ORREal zVKIOy_C44ziwIuTDSVJLB4IrJt1cA=(L$oUSZU!zpi_lik~AD;%D5V^k(eT+9&Ersv3M1RN1Ctz}%y zmk(dg6W8=Xw57!J+8_F5a7=YT?{5MynA`+<0tjyke>7gLh&GN9Q3^FpXem+VN=fuD zzLD7n<3wH`e!`?Nhn}ib&*`bwYsdohdNirUyabWWSaySAb%FSU%}{9ubqNV_h2!=P z^e}XX8Ku(Sq6bVYkiY2w+Uh<&i6&^y3;(}IUV?7z9U?hGsFz}XUSbI-Jd%t^m`{F? zCS6Tke-wUo2-isl$xL(exd3<-OZ%pQw;<|8yw_&(FC1a{ho&3(26hSkEqiYbx-~e7 zmZh40Scq4+P`Ibz6f#(WhFL-7{PX`ld^s-`gPaRC zX*%6;hh$&cQWXURc&fd8%2fTdXiV_4rnf@;fAUJe$#_y2En$WLC4jnOy`{@2!Fvub zfP8X*40y%;0K3u^A^|w=1Rm82$yNAf2|_`g@@TG8NKPyRGxY5wW|z(b=$IA;UIxr- zE|hQ6H5v{#0>H;LsKd2=lKP6e?G<8pK-dDUji?o`c*zer%2ui<|w}@qIK*?l1h_TQoFo#k>LEW60guO1y>s3z|o!pbvP+SfBxTxFXw47 zMujK}2l=609l1}0j6lWSw5cLeBBz&_ZoC-GDM3j{Ma_uA#j?i*w%Zsgg90eswuI0Eixo;! zR}sGKn>!7_R&$~C(%@Y-Qt^4#yuw0)fp@{{7w>Bwk3wq&4Zm!8VBHtzF6Gz_VS{%X z@aaSi<)8k6BTwq{fAGJtp^3(JZu z&|3ieuwsC5G0G}gE$Y(1O!zkpe;P%0jE`9Op|C0l)%|;8x(;Y9ve1hqr*qJv_wX?>6fo@*coYz|LCy!ZW0v%K34|akS2}VnfUE zABfgRii`4mVIG9A8dTUG@k_h8q&M_d`WKamPQ$%Ftj9~7mFBUrYKgOIe~`w0KL7uh zv(P3`eGYE?_Myw~uo#6V>AO7OVhlGzXl(_G2JKi1XQ9I40dzp!u&P*@W&y>Gd`H+u zro%6l+xWFjqJc(%$Lok3bmcH4DTOkjP7fouU9egVGOJ(pDKt6b;M+vmpo=3=nZl;S zM-ZDwWXOZbdF>rYzJ`!De>$D%7h+;=qD{$q!t#SH?b}LTI0&<)7^N-q|&0km|Nm~sW>rwlp_g(3Wnu%Zd%k1XMCsvrBLBW|{6=MumcIzA$Jk2?WYrLBuvjPNUz51MZp z%EdU(6n_)eNhaK{rzh6Dsqrda^d_1Zzkl=`g$IMEs~y4R;b35VwSE4u7O!^Ig?R2T zJ|seqO#u!k|9>C8oaa^IRhW_deCYa=6(F#C8?V)5Kx)Bpf5A>*td2m{04s>%+K~&S ztUZweF!%{jzcMln3ovsgd=)SR6p?(mf*+-n1XAl3>8&tw(Bs2#T^gdkFu_H`6LeqjW|8$^uC*W$_MT;fLxKkD%s{|FmK-vBs^wI=Fq!md7_#vf@2o2KX)% z2#{+4-HD+X#>-O~V1^HUDR_$oMTQ}Eo;&jz(B*Ebq5?0UtFATIAj*sFU~oE(lqrHY zWSvnze}gfd<20!>xq*bTde}lc$8W1bOQT%y2hgt5eDThFv~NS4@DUpB{JAjFGP(gc z6qf6ow>KmY@zZj=*jcDFQ1dqd5taOML{j;GAHJNYrG;uxlTPi!g9l6nQzCj(Y^6?0 z7^NZ2*h4Lv$qRLE7|DxekOCxK9PpFf-3Yirf3K)1^vz+ai+%vsXl{vB;VKam&BOKP zC77cZH;Wn`C|QbASi)>mG3;OY1ys>uOlFn>ZlF(Hd7)_2Ildtl63KQ$LM`5P95BZR zs7zl1hD9vT@HdPCE%%0CcqhW%{wAU`irMN?ZN0%9XVfcxNX_F{Fns;m!a(HkHONV( ze{^f;f9?B9~Jhb;s!;97rWhkV|dO>dAU~7^G z@;4AmpHJFme~1B7G}aYedAjA`QNk8gf3cB4Z+%bJWAqK^{JMVclP=(?zFE|O;~I33 zdJ_|_u1!Urpl^y37g}ij*s+qj8=NJ)uWCA~oxA{u_#23l^AZ#;;U;hXX27W1kr9aP zchnowr6ZhWqEN>HQSRKLjk2PzQJ7)aN2J@-Vs77>LDV<&rXkT8)MBovABH+sf2!~4 zp;rSIeprlu+gF7+)cXo*>1!6gFQ1;y(^Zb<^5e4SLqz0}elD;RZ`xHbLoM{@x7o%) zSa&H06lm_54>-v~KAWmmA_Sv1b{=0`kpRbW7)Yk{Pf&k?=w&t^Uw|vq?2)`LwP*Qe zOtE7D&=XuqVmSV$h}}s9?@U6ef1y_;+16^>Hwr%V;1Gv7T`@k#Blxq(m+r6aqYeq* zz>boafLm!xG{fJNN^e-~TD3HFjJWjjG?|abZEJrVv@_<(OAK|W?!(3qC{$kpiu|e| zktZ?{Jpa^{4;mQD4=~c_DaO<9*W%5aimO0q+`|y=Z7TjweBVvq`<@azf8&uA_Fo zVeW~lvbg)9?V7%Z1{I3rLs3tNu-!ZtG?O(_FWmqJNOp2^lyUTHIo=)p{plM7liG&A zVNXx@ZD?4E1JK{pErR7Zf6k!UuHyBlx;hE!I1Y0M%JLki|8Gm8F928de4l{ExXG+< zP8WY5k0e4&Rb9CBE{rDTQ}0dlXWy^JzdONVUQpcL1@`{i3HsC1dAbOFt^>Aee)v_O zLw~Bg`g?*amw&wu9&Nf{DQv} zPnd!hTGJ$kMLq?%)9$6rM{EV#9yKj6K$=!-kKk&?O%vG7h8G)R(&TS7tPrKdVxQz&+ot#>;)RrrCtF zm5yYJ;uZe8#EvfO;R+-D+4;o;=XmY$&}En2xuSDT_#W%pADM}`_h zCDi#Qf1+a<_|+r_W2;f?D#N~zM7J}+3(%ezON1Co>Y@ES%9oh5+Z2xFk2Z{M+ply) zrc!9Yb;d&+(=OzMX_@H?g=sj7ix}-2t(@Pku!7j<5>UqgpPF`sg=s!EgE+GUjM1fW zu(Bpyd>BiG>O`bUQ!4xtGr}&B*%P8f$e)ULe+U99jc}NZZRoavdTq6R@4WNROn~?FVVbpXRjJRzRzVXmO@eA1g{bIZXv%@^Trd4hj zFD+b8(Dtt%zMN-JFX+M@5h=c~E!cp%=-^+4SmQtWLP!jT1f3N)0FB-Dg-hMtefidzQx^>|ztAs%x_N6ypIwQSJX$$woD%u$pBAVvspTnLWsboCRbO4X;O3nAiy zKC5}v#Z_eYJeUFFC?%wA(~j*L;M6!yRh<@vofPnCCfofDa{(uv6x21)u=)z{vx*D3 zRL_l1Z^RxuzH}dt&3&~&MWEA7ZLPm_e|Vj0Mscg1?gu5O+GN^!P)r%0OfFH!ow9H@$2c+*VDvoP8as7(9NzA#a!R;Wxh-D29wA<`yCnm zfZa|vh<`6buTJqGjceg#W$0RIagnl?>Ww)RdAF-V_amv(-h7;?@R{WxYV|!ce?r(B zG;pH@iB&sB0Pqd4UKtG>)1q_i%x^K^sRu9d25`gO?AcSA@f?qT=tT!20&3kcPLq~Q zH_S(ljn2UKH_VwS>x7PL2otQ=0DQ1i+r%)$cv^<^ksplyaD-tky94w~({bJTxW+_2 zc=}nv$}MCU97AK|Gn~jsEP)}ve_xM(*;sL5CaT#>o%sN7EC27)84e3Xx<@$mAxFPd z!z(cLzRLxQ#aU8$ld)YyYpz`&_PY&bcfF(VT$T&rf-zRc;y?@_*q~WH$qRML>-q=a zd7Y|30?kaC{n?;^RP6&r%j1hPjj%P@{6ODGN5>u1Xf6m_)u&1nT zl7At_d>;<5fN0Y<8$Gt2#r(-OI9qpzH=H7{m8XM|L9Y@JmIG7rr=AnYnAv>|2Cg5) zeEKxkS04)UttFsIDO4y=wKAZL`#%kdb$LegxSALo|ME8rv@Xw` zf!0_-d5$`Pk~DcOMiDw_7mhcJzBM18l>f#fO(Xe}$wTIFkFzore=NT%wR}?<=`}Sw z#E9Oa7leW^ejF!kR2f6uxpUpT1e3MLS+fRO%dog?QAM>sp5WZl7;sX__(wi-Mo63> ze!CVg%@li~YMzTAEN+b`@YmC)ucs*@2%8W0>>7tn1^A1>X%&Ir=l=@B#>)=A(L6Th z80G>L+*-PLNTbp>e=$2({cord!0xfLT1m$x{X>PiERRPJvRw+I$OBP~{h!$S+~w1J z1OPl=qar6n4&z{YWGRt^ucG1Tt=kzUUFH_ zK3piJ!H~6zuoSD;&!1M~-?kO=(AWEl0x=_7zn(rlou`PPA)o*W=Ww_VSvk@i?Ul9q zZ$6OLOm~hi<&Ye>k#qx|{*ovt>H#}I8e@ol_e!CQ}b`=Frs7B-hk!g=t ztBH*0>BE=voPsj9wSn<|$Raa?8>x>p=HBE38OTIh%qAZ?jFSaXNeUnP2mzm3ns$bG zi{`5J4L{OaGScjlb_kw`8MK-*L5$ zCc8Mr2O0g4bhulkv8#*>?ed6~5me`8Qyh>Zm@4XD@@KhK-|U_7W?7 z%~dsX_?%W|w@2H^6=%LXex<#r6T$V1Vh?&{__sU)js8=fI}vZ#EN zo6_gvI8{q+^glD>i||UnieZQ_K5IXEcBeEIx|j+|Uk3_N&<)N$P$oA!C}w@Me`}8b zTBuyf2Wl8_s(>dsshcnfhT!kMwBq9%6!d6x;RL6oQWWA#ngw#t&mR`z)s`xt?Lk~x zmJ2TCG+a*~zMQ8UQ8%Fx<$TEQ9!eflz4o^dhT0f2r@w6QvD%vGl2?gn+GgaaC!Q;g zAA&}^`HR`i@PpfeTSW%^z~r;Uf6~J7#=qU(2yu@q`*qZ>N+#wIQlaLawN?bf)l-kX zssb_Tk!fsj}Y?gd8D(?(?@-Kgb0~OY5Q!l53e_*w*4!<#f z3ppibjc~3n~Y44LA^@o1ys38d0#KE(Ye@i z08j=YrIEgGp(u2mRc%3>OptdpzaBq%J5-Nf4kx8NSv)e$qXLAF7|E>9u2iGf(L{NfBBBxSUXeo{NQMiQrK897Bx z>JRTK{-)!Hd+BE#7ga+?UR1Da{F3&&Nr%Gd<{PGEn9u)I>GHr$x_lgi1c8t_V`w69 zJc2RwzA^>uRwt2V6Pv@zaxtx@a%EL!V>g-{_n$=^W5BGJCl+drv<$^u9p$Kf>u+tZ!$YM zKNV3@=#Hcge|YJtOZ;S2!7O^q<8VKA{UPC8tj=t@+}kt*&BGw_YDuIE^>&l$1l~Pz zV}Q#Yl>%ZXbVls6)!wO(=2k&+I3r?4v3oY@sz*OCe_-(5LACw6$jbYEWG_T>d;~CEsK@iy zY%gxNurlRZ$Ugm-#Pupw4f{Ff`c}7Xi<4R=n1hKlBgK})!?R6B3<=o0`8W(9KF%oJ zkqQn*Zx3~~xdu&_Dpea0*&zJp^nG-BZ)~0XZ}{5-19*e4BE=v0g(|*j z*Nq?aOu}PPk7Pz4-FOKoU6Bix>*L~wpB`qG9?m!twA5xJDl)D35f}El>DvqBLa9G3 zt=M$2bUP(3`0YBpY%MdhTx^bF)6;;72VuF0-=Ch&leg~Zp0*1zz%BvCxu~8BwYhzT-~CLZQDs>+Y{S18?&({w#~-2ZQG5l#%zq2@4lZf zXJ+vMrtwiULqROM z$NQ=$hpP1Ro*s`86tv;n%b?8r-W4UuCYvGX9*xO9c5xKg7u&kpgQmd24F7fN!*zZ&q}-B>RG3StG8< z#x0JhVv7?*@E&m~i|pfTQhkzzU9*Eia^Y^J;b~Q05J?~>R16f%z-+{_`Nbl|zN%c94@d7qzpz`5M?p;zD8(lzDv_LH~y zGSNQ}>NcGON^7*fIElc+q^k(MX0ms3*9=Gjx9;7|(Jt{?z>d7fY_1D!$FgS5drOiy z$I}dA5^X4)U^zJ~q^%NR3Yt(cp2@^*cEp-3VbDl$aGCW=I;ifVSA8CYp?r2RJ=_ zhANCK>d^|@QaN4mB43Op2x9H{4}&fPPcC4dO{T|wN5vF922pu95JNv*JT$=JZ#U)R zCP=`~L23+1&JHnGkhtdkO~?&WsbUYgW+pVjPI)bV)*#RU?-`#{`pp8ydr9Cak%`zF z@pPP6oVh=*V@aJkk8)annwsd6IC_Ficgw^F$6K?}U1+3L`?LA=?we_QF+xv7`;a%diq4?jIlXyuS`PT{pT{*9q?Vh{nFWvC&-Ji8x}@n4>f z2C*+j<$x;dzHRiOZZke+Ka)<$Ah+u@W+7pKopksd(kOKzq+e=Uz{Oj6;2&=~+ z_!p^Kl%@2b&VTUqN7!^3_r)CM4=FAP`(nz@FUB9-6uXQ+g!(JgOT@o`ZpKUv!Nu#O zUP%Ivz{a4!g6GxhzA7+4rj1Q}^wfiHSRlZ?n<=_IhzNyjYM>Mbn;n`=-c%=KZ^wq4 z@MxUbPJG6cID$;*uqFP6c4bugQ8WXh6z!)X^{*V@^h_`sRx=xg4x$7Xq89H6amHLok6Jfb zVPM#&q5!f^U3`5|h+#z51lWL3W+;{{-%n}ZmPP&c^nKANQc>udF*CoQJ>1CJhTMGX z)FVkh)v@?9v$rF3%vPcb`9o=T0CtG!67*_k7d=*%LFJ|s*$fgGGPn-$Wg{Hye&U=^8z8D2% z@vn(S`V`vpX$>lS?C0Y#FMlsyCoS|>J98FcjA^}$#Yxl&*JYZ+LupCf<+LS-0Ra=y zOYndV_P0EhWCPtlJnjgc;Jgl zt7QiV33K!>j5uL&82taz$Q;WAe3wdW`z#X%P8*i?CgFgTINa?zui??C?Cy1|>aXf^ zC;k+kmUIMKMuPu7Lll3x0x)G32tIVa8->rS2``amTGVjL3{+U?auG!fs?r&yWX&^3(tg zYk*}Amf-?OYw%cnhh+5=(AfNYp_+_kP+!IhK@`F_0ZYAAD-Vh!+sr~G>THjI^yBdD*9|Txj4!AX>UE$+QZ7`e# z5_B{44d^jR=$BT?^DP7mT)D@r>If&V$bOI2Xs3q_3KtL2mPYo~ znC>A3h2@Z<`e8nJW-#9pbh?a*kvq8pX@o9DP*QM&D}^W;SF&yL#)|BX=HIg`5Xhpn z`Np?N-P%r$lSFdsI!I)&!<_yely>I*wp8FXwslOX81RVK%68B^_*P9?;RMwkswA3C zDU(0``#WaeDR``rgIbvO=L$)MTlivIP{00@i=j?MWxFAoHVr^@q5+wG}r_v*q6qc%@AZ)Qx?Yv9No8f;Xomx*WwkoHrcDTj-I`X22`vG?# zw$vJ0PeCY81scSH1Sv1`A_5gh{<_XtE4Cb3NnM`_B8!*2f$z!IS+0N~d7ted(N<+$ z-m)q)XLGh7l1)3U?j>2NCzJ}@eNvm%91h9@{C2IbHkp)062x2E=Nxkc+Dyoe4sJOd zu`YlsDn4(SbU6p_)s-XT*AO9hlUmbuXZ`2WN$NDmxOao&T&1Hr#41o?uw$4BJNko@xa47$8M{IWBO_t-C1%uc5mLRL8s6wkoMKk8ATN(9J zmOj!Mgr=gXd7zl6;RARThJT%NTz75qx0bqSbU9Xf?CWLGq^m*0_*m*~sFjEc%L`gn z=i4~=kKM2{LR=VAS!SnI*w$m46DvFcsk7<{&9iXup|n^E>zOIQvD^Ug!PBtdPPw?& zNC1f_ElZQ=!Bv7rGtx=kj|P_5&t-{JBFlO+bM;ZCbyWvwAO|ie)Y7#3vl*2v<(Nhc z%C5oR%SV^8(xMMwDugO-L7O_jHIFVQ8^ms7!-1h;sTo(!6~9YDGj!Gr4W| zbJ5*;iDItH@d4d2&fhO-K^S}&cxpAD6A;5n^)5asX0?7KkP=s z6VD4P4*SL5gdPa<@EaWpMr+DlLs{Y^!hHFOx_(09Yn((Uf-*?(xPFjCZ)?6Hz;7E% zahy0%z=kvUHiqb-mdotKC2}ugsjstngR3WF1>6V%p%0Xo58qQr1!1)`=vs~T&ye$- z16zW+Ma6}Rj`u_)`^WK9lpuAnJ0?Ao&Jjt7-`^L7)YH2j{3=-5kSWj%Av^_Lvrj2N zQQ}h0hpX?u^{6`_A>lb|wQb}LZK40bxq$Dp^Y1QK3JPPSNbbg!dQPmSSf;^>uS1ZG z+<DBp3pG;cqf zxc28U#7Yq?_B|G73dg|_^Z3S;H zL}CN#HSE0(SqO%8aT(pN1R{wLZz5JgFB(9AV*~6LIgBN-6pktZ;h-^LxrBU1QG^M1 zTIwbo#_gYSLqByjBII6B@8#T7FEBA+#{~(tGbUDDPu`!(g!zG~mdY0qrN{cN86coe z5n0Zs7sp{+GZ+$|3q~c4Kc0onl75}%I%uTtdjwVa>I#m>1f+9{Z%JTOnbI=HSP13< zp?`{gPt0SkI7^nU(K>_Mt4Md3!Yb0r0Qf`XJp*82up*1Z z?<|u>6eVF}a3b3E!%OL{qxdyQ#47b<4>D`)@sE=PN@ru%KV1VN=85|0nBm%tT*3(q zHu+nFV3`i{XW`j@#08u=tbH!^ll381ePs45ew>5pS)LPAzF!Y}=WrX!n(CAb4w`!@ z;L%S4Eq?AXaP7rX1eh|uA74yBi}9BQm@xj*>N=HSy^I2QPjnWYt{cgRdDhK5*yFN{ zFBXO3%qo3V{>IU4U5Wwx9CaQBlQR=xAx4`DfW?Z~Ky4#AjKmRNtbMRpY7EBDHo|*c zyM3F#xqk+&NW`nE>=yWw@JJVyfWlc!76tYDu$!`svCJl1xjT77%ok8Vs&LfUs3W4G zX{Vn_yqWG+MYN#KI!XRad`vNBS9};|!f12q7~B)ZRTq?5c6M zT0$04im3!I7!A_*@uy567|0td&`nHbVv;d`$Ol9%&f42?&PRBx*&ownd zDlV;yYo9EvVvJWuIv^~u$w?c28E#hRB`Ay*2|=rFN8qM;9N4n$2}hcg$C$Hx3XJ#U z5Y&ij{^*{XSW@?=!neGr+Vty3>XfDtGI`hjt{@r?9sw58g{Y^%C@x-8Yk|6ZE4)@8 zIChMF*8-^~W?_o8IG#(3E-!7Bbyd)@+>oR{LYwTdU+AQiC2+yE$mXDJJs@zG>9~Q0 zpTN6^YK@eqjYjPx^Yj(vMt|ed!NTx1Zty(Q{jH0|#ky$o$bzI6u5xoE@!@|gv%DH)gb6P5m43aepJ zb@TTGG?lLbM`@Og40w>!=pdw0Bv-w-UPM2RtGw9aU)A1lse(Fdg-NC!0I5YYsFNZ@ zhKUXubG) zdcO5Q%D6Dt-BmjEKr(z$k#q$r9)LB+bbwvBZU2JvCFt(?*#e$h$@?Itn5;4Z6lpi4 zc0yE}*r=&@DHC8)y$Ui4p}WBk?K{3IQk_QPO+Wl#thHZyH7dVL9#vJvPcJ8d)j5=e zc3}GBwkW*)@sgNt2GxptbTVUM?A49bU@sbYS_59B65fLXnQJuXC*bSF%hdg>5d~qu zUH}QU6Hx1;392@NuVm!P81fuo1&9ju7*?-x`!c(DR$h(5XF6+W2oz0*;`Nh#6ujYB zI2-??{cS<mPlW?e96OdF(D?}w*V3=7WAgp+{?jTa+;W|sv1 z-MuH@6@AhoLebE6GA$c)uH9I{|C!I4EhclIx`(^aI|oM_A$D1y;M&Y}zv>kEnvRde zNv-1x%3ismtciAP;S}(O*49`N_=(1`3zb?(T9p|F2{nTwrBW?QoCB z{Qkep5**9`h{S_1;8L{ai+RVGV-5J^AtV-$dZL6MVug7N_A!l(ot~xkt99bYlyU|Y z>g#}r@t8=i)B`|DrB|`VvrMCDG7G91a#+IujsehW0&b>ifhi0J2KAQ84>46*>*#OkFuGnA$ z4<|R2zIx?;9XIo<(8@Et?#1ZW0~4Wi60A@a%KLLW=H(>>+Q1>!2|9=bF2qA*)0QkC z+=y&t5px1dJnYy2ew zO-nGgmB#iRMF-TBpf-MY2>2-fV;(Lo*p|yF$Sy$oRp|+?NU3WYjYoC;2+^YOKlpJV|6`C?VwiU8#S(=zijmlIM*8T&Zw61&aO zy1BY#r3bjnyMo1^CLl3L3-j-YsH{EEl!bVmh+82xwl+=m&q7GTk=eD}tMr&yXNPhub}yY63b6a;hS%cd#H1lv3e3L7 z^b~K0apas({G{#VH!a9t?~dO8C;;dy4C^3fRVQ!?V3);@3n3TXYrKeXyC_UY&)}al zRYF^z$W+}_k=`k6O1)BzNKyTc5X4Zu4`WkYsVUT5oxP;mQHaaX4PtWjQSET8A)Fp> z`t0-z6%CEBz+7E9za4)VB`Q879h*UAzcX%`scH)?J-BT(U^%QtVNrowxyrkhg?_N8 zMk-4GmRbktmw`Lfs%0~B2VI<@tmXMZ)~fyC7AZZ;dzwFF7Ez)FOo65+scEQ%M-^&@ zM-y_+842>t&`W8YXj5^PDTZO&ST5E<3b>dD2p*Chuvngo%R!lN??2*yUm~1}d_R(I zUi0{Nz!~J&qN^H&_7)>05M+aO54%T{sBSV{Dk|nFN@HMpf%I!+Xa)ymwTYc`rb?cl zL|jzTe#p1KABG!lEf=A~vHO^H_L5yC3-3d+iZPh?kx*@*cHp-oL^69Zy1!6RLd&t! z*_H_K#b&jN=2M*&)q7k%*`|pv2`k2Au7J%FCYri44a8%0{ZCj?7moqi#UJ}HP#P1? z`f@1(ibv|t=ssSo2?>^~A)2Jdzxs#pEO0qlT*$7DlDujP{Su6Ehie8$(p;T2vvi1nkdPR^+NaC#x_hd zO>^O#dJefZ#CLuIDm6iiEU>#}lTS41jq5maZ&OY{3xXIrQV=)I>(J8J`9XmV?3*pr zy9y!r_H@4ViXc(TpU)Xm64)@j@OySmGH*Fm|By?U9QL>U%AZy}jQ?frP#a>3cLfDB zMzg{_V?ILF7GsTT_JcGD?hc)w<>yZK*oK$cY^0O{wn}^tDCTf4tdwKolw0=xMOmoiXnQ>mfGol;ir=j!u%Mv`iFs#A;$TAUw^i-x@Z{jBTV zDiHS^%!LV=MA*GXXw8AjDWTP7iv!$cSyPT>e%FXU8t%DKz?PEQdIx8xdm(^qBKI7t ziD<>xHzIRs&05e?CRg2X&hJnwSF%i z1ep-|l`eE|wj9)zZ2)N)ty_TC>WB}M#t`P|&8_gp{vm^bkN;HkVa-`R8Rtgi^^{EI z_i&1tJo<+IK4+T{C0!Q?23(uWz~jiWtT(|i>iuN_Ei;PjUe5)8Acs1{!)T|Q?pCz^ z!k`cb2e$-Qws@&wE=?$wu8Km!3^G}9RBg?fm5TE+w$(y5locs)NrDBAhf`HJ6y`pM zOor7H1djUjV$>pN7{WlP;w!Vlvq6?+87ltAS;ZAl@bd~?7M6Sd8M@Hg9*K>?{Gl{g zb)2#Z8K@21KxMhrKqF=*1}#^K>@3CaFyT9VqMqIhs5tkRQc=$tv6`RiBh(Na!(0fF z^Xdsav1`hfwJB&&(E(z?*Tysy%fMwoOX%^siw3}2BQ1&|&I83Si2Yq^(5tFe(({Y#@q4%5*;PP8d@57Y&Pm9`y*abApHq3Gg9H;a^@c{ z4<5GC5cs&$4^qP_*f%yAQfLS5?VktH2xkVzNq$!%{8Cmu!(-0$Ib+rfXQZLw`$3e- z7u7nQvRdskRR@IRv1MO1$BL!cb?Xp@!b@EiYFVg5R0+%YVRq2DUCcJk1Sn4oFH>M4 zyH8WXb|3!+$>eJFY?x?s70Z9e@=uyIx1ksybkYcF5$uq6JS1&nYq?VHLYS8Xu5MCX%uJCzk>x&S%J+Q<_!!>5pbjnOHECZ{v)Z=(M z{f@3YQ#z+G!Vl~OXxAGM5KuNOkl+t{L`pj>wc$kQ5}w7GuLnKICW&L8fU%)5=E@A0 z_eshh4=>oAU|^{*sS^&Jin_b#-i)ee7bKmicVJk0y!pRG9(8RD6TLka+ z|GP;pJ3KT?U``!;eILF(o=#+JB(vh`Ziw@l~L^MyvPsn1GnlpS^sLCWZ+6*^6Lm>!epk|G1|h( zgP(E#z=LBD7^ND*z7TKQ{Y~k%z=C2=TR+$9;R^=rbkhA;kAz-zhG=qIpW(Yl+wu+WlM zcNtAqY?Cs|Gzzuyc&dcR)h4R~w|Z(S`?37w8btBqqbyNqk8q>b+5> zrbb7e-+G6@^D#i-4Vgg#A=t8-Y))mjlsF{MUIKoRB1Pb%Tw=gcjG|lAPGQRfh-3BB z8mJSislePY61Wt_%jq4SgdO_+zknPA!%UEL`<8y|J}AeC;!Y7NKwq<>Um<@NCs0n< zKHj9Y&w@K1RK=`mM-Z-LCu|Wn^>XPJ_7Q0mEQgRg+U5lFg@P6DW(h6&pBYXPSoM6d zWUwGc<0SwNd`bTc%GO*Qc@#K94Q5aE=|b>FiE2IWC;IYB)%61W8ri%2&BQx^W?=K!oXFqf-c~LqBwz8SZmkEV>n*;^;d zA2&y~+NwSCo4=G#(Vqy$?VP4SK14If(4PGS4A$tMnKdfW+_Egk>dYiEqfJNwJT}0{O?b zmy5?y85!KcQ@O3gjR}yxu7h?(V1~hYy>W5tyIKD)@_i-9asX^pFUOcm7!+A>%z6rw_Nl(l*|5^a_pCf+vTl&!xx9EBY@@@@pWwhsJS%yb2$u{il!z(v zD%J;4RFetZe(5-c`b)l7l0X0YdKRH2X~*5VU>WIFYq-VeGG2yrHxzACYuBX9?M@ny zTr**8P6j2Hlk7Sx^P?($<7G@WH{p5IVP<495&$jZ^6%~>R*UuIh0otP=-!Nn?%|W z`pmFbpcegoZm3E95xu;ETfh?8me`T^X4S@+2P*a&w$Gh&`4buw|ECJyJ~y)vq7r&G z%ay=;*#3_Dpav49V^usO=@xh1sGg|fQ%(P&s1pGp{pTMnL+yDg<3o4>c7i(TDEG=9 zM7TxiOBf(y|7$rvK%($sGVU3d!6Hzoc!k0c>2q%Ceu1mh8Fp~wN%l6;69x<)4&s8K zWEvV_msS101RPTi|C07@yHHnCp>Pze*Qq`u3W-wtNFPfjQggN*Nl7WrC)_WAaN0Cl z+%RMMGu7}G=T2j0Gw~;?hrB3=L!vC#62Fu?MBs9=w<0tQucmbVphX z{XMzIkf0?d(%6}erKnxBtX_9T^9zt7AFT2y?{T>O?#}!AIAhUCu@|bt+Z-h}(HMh? zLcAG6=SzndV6X|j9e2YFoWWVD zE)y9byI`F6-XunIQ>9;i1cS-&^w&m!Id0^)i4fZk$Qa0`E^#Tk)OnuN8^ibyZmNV-^vs_+5%gcJtz6a3ye)DS5kEr4U z6DKoa8Ls)Sx-w;c#G!U8y;5L|mWty6c_EXPw71#B)#T_rQfThsTZqRvrwa+g3D{j0 zNRV*u$Nvh5{4n}1r4g}DTJyTfET^lU0z}8%r1tC9pD}Pg8#>w_c zKU6nL@&{qX3t~s_xrp46@H36Gh(gWa9L;i;a@uio5V#Besz_a&v$XuMH*T}t>diZn z&DHeOF=MrcWRxlvM)#daP>w`(^LL)hB_}A($;Epa6ST8z*%mbJbQSrh5n>oehN-Xb_($%ZQ8?s7_R^0KDErCc;U- zKEBC12O6nk;X6xoWjo(^Z2>|4oMOYF^O5XN3NeeWuocOF749zrZ9M}SEf>AEMcPFc zI(z7q>TCg84>H$(mIoDJZ)Uvh=A-<`Ti&G3L|JIEg{!Pg>lKs-WG*yMf2&=$dnJSzDKtv_wagdPkL@%gItVSq9#)Fro6dm_nPl#)|p=*QKqAK<0D8^9c;t zgoSd!X`uFmg%i9j6dk7CAdM4^R4JU=FLR#IVY0*T20`G$7>y}72dW-DteR(5IE7_a zrV>nvNiR%wyjZ+zjC5@#E_@H5JN{X6WsYEbE*r=5Zv;oY3$5z#tzHH2Dg*bipTU4YGmd= zqV0Pqr3xgql)cOUpDiHHBwOQPz_<=c07>g}zr07DKEe!|AuNdoCn$MvOPCvLFRj~+ zh&Xu7-1#cqDU=zB}1cJu;Cu0sKY&&uQvPpiah2fDL7 zcE3dRAC&NWQ+Ha0ce)7rSknvY3!9oYMPxcQV4+brC=USDtgwWZ*?^*QqY24{mBWnw zNvdCZVuly#Qfi!Mbxec53!0mDDqBVxqrbud)Mj7_Yx1nrXI|OAImjqQ!wea(Qx*RW?xiNQnzl6^d=@4mz#wxwb*$(g! z&e#Le*I;XFXK2JNMEIO+!`^BacR`UI_Si4Yj$1@h9VWOM!N->F4XaP#_J9Kg8n_hS zmN3PrKf*!;i_s#k%v}CpMlj?D7g?BE27cQpZ>|Ksy0qMe{tUT&%6DPU=L)q)SR(<( z3a{26l=Fwwk)UTUp$HTU#B!3$1p+vW7T+xEBDL%qTliH4))yG2gL@XZd3mO6|tIAdJCIw zp~oIwZOv9NixT||xTFz)(9@KU10f%R+o?q&*j=w}?TNbOe0KcQN(QTK{v{+Ht@3|3G zJRkmJUjNO3qzOD zfyIkdmK;aJ7ky<0EB&)AD-@9q?8ii-DI%>K_H?LL>Gx|}A3W6J9ixem-GV^zN**I% zkrQU#gyiJ&s{#tY5`_IzgFR`Ly>(WdPFz4+muOO%^|1XPkM&@QOUaGW6kq_t&oh_N zPv1LkuR}iWEpbDd?XgoszyJb&)Yx;_HeUcKS@QpJ)Xw zI9F34Lvq1b##^c)DVIyjj6}0}kx3NUUTr%*&l{Bngnf|pfNB%_R|>US&hTnWz@X$6 zGNTHvj(iyNEFjxUi>5tClS48PU7xbVk4kE4jDa||aO8v-YQn04wKPUgQIQIX9-QBXy2Un6Rli4!xp-375X?Q z;<~G>B1%|Zdhrh3e66Z@*z67Dn5`a_2@x=gLT3eJc>E^7@6w!pPTVH~QAvW(xe?obG)xOi$cewi8>h30l2QV}=r~#^FVoSL2^a5-# z$Qv?GgT-vMoH4F=-S~_^>&*KzCP|uNb^;g^WUq5L+zOFBSsayRTaF9e=TI%{#c)ul zjOavPi%IIQxMh#&4!@+w8k=%0a1>8e^XK8k8#X-_cjnL+ew^IBM-9RI#fp&__l2@V zEWHbx4&MXqOYVDj`J1W{dJlT)VFK8ev74C7OJs9aFCJ6M(sonc>#~O_TN6Hv^X~Pm z9eq0Wz4JKTfE^5%J$J^fWwdKHW^rFubIPYSL-YQnIC<-3NUHcVbxyvso)HS+e*#`@ z)Jnq)Xe*!jd?B^ROn%5W`cl~U|?@k=;lD~j99+ZGJ9GX?usc&y@9zM2Pj0)YXD(#Q%qz3 zd~g#xAY=7Dg+q)WVbGh5fY07K@RDE^YbWR#EGv=48kt#};p@+;%6Fj`w@Zu(7&Wc? zb|TOU%<+%F4Mf0k(QFYXu#`-~2ef%mB|~Dlxw@t^w(xf)Eio73knm`)e&mWr`ZM@n zN*pBBgeLmOZ<+c1m(C`Xe*PqmlUOtew#SsNr>Zx8wGabBqAji)x4Wi{_^v$(EmdEe zSb7;SHY^AX(YHf?C6wPy_XPiSS?98?MXKkrZ668Km+e;@Ort&;&`y8CYDiI29aR6i zc4^s4G!KgEaxYz=910Fxe)7OnP%6o|@m2{72-{U(X?mtC`N`($8fujh_$B8x!H6sI zRpoI;eo7N|lh_k;gUoK!!J=t8#>Ht|_;Y%r>;Y`V`mqH6yF&h^ky(eAara-4|DVrf zY5(7TSY)UH>OF?Bz_d47`)-(wOVVFD4cayyJ|4WXub%SHh;7J%d7qyL!GIoP#F-7| z{BVpRk#WQ$u|*eg_JKmY>&&yjz&X$~3I-V(~EiC>i9oj%dsI?IZi%v9R6fkh`5w&T41 zr^UW@qwZ<|Ng}e8f9fEho&}8hjoZBE66C!yZQbzjzks9aAoWm@!lAn=%P4VPU}_+X z*x)+eiN2$Rc4PY!Sgr2er*mE`xlVv1Vz=u}KSZFkDR^UwC5g}7q@hfQPEk{5yxQyz}Pnq1SK*V8uU>sEp&=?E=xCE)}dbKybYWONgPnYe5AJFhmO_4I%ZtV2$O^x;y4?(8$qDosd>4YtX(DST`1k$@IT++skHZfgvF|^pY{P0Y~l#LhaG}b zA;nzqsw75XH4F!tLMfmaLsOXslE~CTFm%#^c_M`Q`ZWGp3bBizj;CmI-BM$tX+~dG za1GMOq%EoSsCqt|WSQ(l^bnzCLCc$OviTeGyz&-e=ZNf+^$@Fly8vI^T10`=~=8xT#P zIFWEi(^Fb+1{r&a9(@-0cEyoKICe5K=wt(IS!wHlEm;0gAc|`cr#j6iD@V7jNC%ws zREPUlP5Y6uOZJprl!9&tk(=%+#+Y6O@*+vc*6Rc2Z4YI&O|;PT-~nBHhPsF0OCV=U zas|#CsGz`&1VNl(^mKqfOgN2rICl*&qW0)h*tkW&Bz5^E6c69TRsnOacb#h|6FvYGw*I-;k@#AVDI#ge!Y?S;RrUPJNr zTC6cy_aSv~(Q^rk>!AG|$P#_`DPt+s)?>X!JKwSC+UV)NtNU?L;8LEd&UXgPHK2;% zd(YqVjx-__mY$K>)(Edq4iVr%8n*4=`z(M6ff^B-m{R7I*=nY!!ABBak`fDJ zPHnZ)B@+Axsb=8(yBZBMrB-+x{ZL>Vwu&LPF@WlU$g9z(&kE{1n0JI zj37dsk{0VakT~Ba(_odIa5)5o`T*Tf#c)a3KjFunB4*;RqWnGuIaN}a@UBqnM+NJ2 z191q_3G|-)ZGcdr&2N1(6y{iC_uc;A1v8EL=bI**C(_7Q+tE{>t{wK&G#k_6}3Af_GRptCW zM!C+|F>QVb&BQPA301pV89u1nZKtgj^5K1Zxu2qQ+L&9!{hMbBOoKS6@v^98L7bw1 z8=o^t{k+^kWC2b=9N_wYVl;GDa3T75MWAX7ws}eR^nViVu(~5*R28YgZ{!9IYG0U3 zk`Ir`o;#!C6kDhB-3becv(PC{7P%oVd5n9U%ICm_ZF4x-M~GwemO9VChe(-H)kYCI zn>S`OY_+J4E>cD^qEt9O1TGWbj=)HbU~R`Y3Qlb7czJPF|ilr$i6U7OxRbB&WXF<$Q!o0sF+Y7fJFn2WmQI5BZO=MMPxFY{8$111-Z~i~k~p&GlGGts4{< zh|VR`y!AB3L_O|>V2xqhz{JFLuNZ5gNwQdpue zNgQ!UF_!e@{@HIv_|?|2AqF=wejA#WMLYHKT`;bnb?d!APt3mSXDx?C*|Yxe{$+QKwEcEwvsZc{pN(|0$i3 zY`-i550DxdU<+Y!4t+mdj`u|Q;92p{=4~*(LYy?K-2vbU3uY8anEs!-$YL z3QitIYLViac7*g|NGl#9FW;&s)SU&N>jE_`DsoWkMQANe!nu1^M-lS>zK6`MHX+BR zBS5L@gTF#^l>VzqpKa#VFE;^G?-;+Q6wLdnCdFa`9$Ok^DnZeZBriga^N7yxq@Rs* zgMxQ~H{D1jX8X(s=x4nyG11tkKzBzELPR;2oBI)nb1*fA*fA#8**C1le`xplR;s0l z#C@LIF^okk$xRYzH9n;*_lq)J^i2Nxm4A6eZTxn#?IoCf{?o%Grr}>hD2b^p=1AWh zm_npJ!5wE4&?a!(Jf%9qty+DIaKK#x>a%Yh!#krs&>MTp!i*|-XuAA?WW-7y290`0*_5>n197w01)%|o=FJj zMsPHq9U==h&>{8~m)T|j4v2Jj6l3O7vrHxjA96Gg^3)i$yRgpa{>Nz2uBj%O#cX+F^Wr*j8jd$sP`=1ceQZ_YRM@qIw*k!N79j zQEis-_aAlgIAE^|h>O`_JEl5l&9gUnfdRrtiz`NK=3m5VajqyP*_P66h=(c}0 zczt=Uy4h42zLfdwgj$MZSNog8vxVLq^D3!_@2gOcYS?`-A#D}4{Vx@e0# zC>V|rkAtrLfjAYoZ^)^>igN|nC}SFnQndfywcF+PSvf?-3t4nH35h8}VS9sHJFdrpZaBZt=Q}WhGCl+sksN0vU;>cHvbxunu;bHWsvA;q^DiWTI?dpj zHTZ3GrB6OEoe(K8Oj|bA>+=s0-*aT=7AE$cxCvOy4Xi9|P#1sQNU4n}$*kCa?n&HM z{LJuOeouo-x?xPhK&&P%g)lz1gx!60DS9n`dwVJ)+LLt4l6pK>Bn&Fnzq zEw$oI?>b_M#G&qVz?iHo0Y8WXf7zO*!DHQ12M1}>DgtyY{t)h(ill#2u^yI5YJs`o z#e!O#=1&ier}<=vX>#;}=!+X720fu`@aX#HAKR~yuQB=?w33{-G|OC0GR88M;1j$P zpBpC#5u*!-2vbv&ECL7?k1b!+0rFaCkjpU)@X zFyC60#kQUHmoel!8(7|4%m0(`Oa|m8u-Kpsa^xcEAg6HCC0snhRI>TIT7D@9Ky~9L zC}i#;R}RcL)#RAz%gqR9DzeQDj+{E31uh2B?B~f_dUZ*cnD29FwM;h`u*Kg@ov0kioFy@Wv&j`@9;#H_$ zz#Fecq)450BHB}x7cN{rvRtKNAnZm&kcE#@JN@rin;nEVs2gZEvX+Ir`s zUyY4T-d&>VU!wc95Dx(Aq$9ocz?JGnzm1d!K!akptd24Ve_{j3W7Nh6Vrs9?E3K(y z7J)`Ggp_NkovonN@4Gcz7ho zSIK4CI5#F0HSO>dc^6w?8Wx8zsGm^1i<~kh?85gQM!QUt=uxYdHMq9@=yaA~Q5zX` zAKJFY#mElt@iG{!6A%yunkDCXH`7@t*p!`AmCF9xA49flbUQ6~81KD<`>exb>NfI- z!T0`IF-b6@uxino0R(=(SwMrdqW56?jR0E&w?;#Vl|22kxB*=@l_d@z-jZUoJv0JS1`A^v1CYO>mJi~nf zNo2Bi_wE4f5vdQ#Z~Z?TEvAh|+c6uXxID!&2Y{R0S;9QQoy7*QRF2?mm*~=m57?3% z&?}2P9AsdAp8d|>dDJXaSf&exZwv$PE={`DHH~KX*Axgy>3gAjO>(aPvtORL5RPQ? zkp8mW4~rFWPpbn}eWCe#(ZH=K_{3nXom5y^FsgPi zUV*Pu3z7ULD)XeS=hp^zgTOSoq+k@^^ftC0@!M*e!_S+NnDcBj$}eM@?aopcCowcK zR?9lPMkS!JzHIfvy+<0l*fPCs0vxs4@Q*=zZh%1IFSP(25cc4-B=q2(3iEk$Rw8!G zUi4+LGCe{_w!_x(bJuKY>L^}wW#wjUGcPx3zNHWnb^>464#2*kB}m10BouT(hs;wm z%s>sh#GOqrU(%E>KQ*7GKzpCsa)c1cN8E`I|})m zf?fj(0_0%*04>IDs8>s`tF0xEF#5{pDM;YiTm+1raU`Kh|NmI}28X);@BeJuw(XW} zF59--EAwXCcFSIMb1mCiEo^bMg_?pK#ekNTV$+yi+X&VU4Pa>Viq$1 zW!h?@vCPyy{eIvP@^?y?hU0mGrBsd^ylm7Pn_Lg;?EyEXyb>EFaSFu4M0*usc3zU;it0_0PLUVyqFs5xY1t|nZ={-eV- zF>h~2$Xji@u(*7~sY*3!!Tz2T^w}MVWd<0L4w?KZZNac60isgP;ZSl__(>o%tn?@< z(ZLQ{(a#M~Ef;=$MsncQ53S|OfFv({Si3^Erx(ResprJwg z&UCiur}Vcosc^Lm9|(G^)GB*)l+;T%qpuHL35ny$nKWKO%&_?LO)Vz_d+I{LoyG+E zxenV>PDBx7X>_5<>QAy=iZEr6{Jt<-$;f>XJzyP%^~uKk`Z3iij3I~jh*@nafrz|y zHWhDN)?Y!(h9yYE8$#XpT7SxF^nd+?Lz<^4xxEOuD2H0S{Hvzb@~sff?X{&U-Y~@_ zx(s0=9Tza=CDCl^i|J7W5SYC&PKW;iOw)-hw?7+1hqE=o@AiTwzv`QlG~w4w;;yuE z?Ed}F8S}@}8A;hw@F#7Dy!9}FS7+!dW6<|;%;q=-CE72T=7WTd&QVUq*LB$l9B_;3nEL+o{KV`-L|uFGUM=p zeYa|*EJAzbXZW_d2Zv3*br`>H<@KWzpYS2mO^P96O#o~c&W`A8MRIZM;pk(1C_N=d2S^fgzFU#kI{@ei)OV^C`i83K4 zh1rAZ!Vp5qg5=Z~cCtv@l7oJvt%kTsL_)akr`iLpqo{fTkG}Kh}AM^R=?W5a`ranU< z2?W($M=GErarZj$yW4Mgy(%wMDL{Lr#id=cYF4Og+WRN<1ezld37tfNefzKG2zzKA zLlw@S7h-qBoR2l);?pJ!S$9P}>mEVJWFPC3=`m=^T@ofLYNBYb_uGvcc~TXn4|-5d zx@_(pQ;93Flg2T8ih zk!iz7`0Dx6ZegSOM~C$Hg?>Ydu(=@snu%W{*ZbRTXZ;*W>e$5$<4m2c4f!$jcn_u6XYT^w~r^cG`duv}c3eiLqeM}n(HzCK|`*ZgclS6eh0 zN6tj{6^=jRq_0l%5A_(MeOD3d$0Njd>Vs#STQN&)N)S3_NdB$K0jU+=AonXOOs6vY z!Z1u8JlBz6&Cjm;W!FDFWWmTaPC?Bs>CQW!=9R2E+b8|LT1=a6NQAMQWLs$90AR? z<`ZDS+{Ukzfo6N>HPTAtG>Sj7qVOH$C7*sH4Hq+~ecb;QD**D{y)O=5idH$@YPxa5 z)bw3<9N(3vHg?eZfem*wuFI8=Q>Cr>n23y19 zl;Y)01Ans$&ZTdc?aXt3{DufktLmSDc*k#M#nr5`tk zKzB9<8__)QsKv(z`F+?TK;gI>lx#CI=o^3iDFjmvTRmziA^6SxQf8qcF zuVjPY06m>{^%oLaJOcQF-I|VlM_86Pkn0qow(Y~*|={d7#E}*(E`K@3L zYl(NSDm)P_x)q(sr zL}QYao1m^A=S6g!dbgVIPg0(cQEFXql^Iy6vw#6sJoGfDkA?anWXHxSk4R&ivu&3t zI~ew7CV?ViPs6onY0z?iZn=+iOvV4ji~9{4CMDYFE`&lc>>L~R`^S^|1--8B#KS}Y z-3Z6OIs5f*a5_3$8Y)HRj?ooWG2mx6IOOO18Cb=Z>x-(}yGO-wqrU{YPpXnNq+?}z znYG4;)zb#e`n2hKeqL#z<~?D9l%t29uDaHvEje`Jo(%V@Gt!Z!7uVZL-mK2@cC8A8 zx8^}Tub|bL#ThT=XD*L)l`qI=H~X{?1UScpAxSx~(?}vnGsHN>o^;40#qcVkFiKY( ztt@_wHoNJf83hd4r%bphlFvQY=8AX8Bv~~93XNgflFx`JL3LKLw*CrZzpD&y_I7U` zM09TBqxau09?v_9RFQgNaf%BNxPm$n(Mn?a5up&ne&T6lF*;vgqI_!;t97<%hCmlr=bW~ z$q5faPfZ#qXha9U#T859Hh5YAquIaPRgCb&zr0#Q$FCugcsCG=w;eKDX3k$Ydu0A; z>7+6amr6<)aatU3dvV(7)%j@w5ip=uXL2d)r47{&)Myd6Gh_U2BDB zD`Rj)Bl5#*zaL^4?!R-YjgpxAI4fPz(T9hR3QLjc+88r+Ego4p17n~2mSdioF(T+f z&|oiIQbe>ddDAyq_abGYT|-(*JGhmEc}vB`LMeveM-ZRPlCf9ezi|V>!?F~uC)7*< zE-m&tbCo|`CXf;M5S45AZY{;k@iMa@;6pRa?dKh6EBVl8u4!pq74lmsSVuhMz7E?H zSrqGhFN8o6qj^U_Tfw?2wa!;B z-F1pq7Y#I-^1`3SBCllwN(?w3;kr`(q%a!^+Hn%B$uf5M>6%nV$J(EXDxlBw^N+lq;VEUzH|tAPU-Py~ORVi;aH>@&l>j6Y7w zaXo}Jqd6wu8kgiva5!cJKgHOsQj;gq7oYD?m^j*YQQT^Yg)U72d*TJ(d+Mx|Lb0UY zx&N>C=I@8_+6mC_wWQk1P%rrB{m*Ml%@$mu?OZaKxad_$D_|;j1w@9sD^Yprt?I`P zjwOnMPz#``g}q{g4Lk9g>hbbfd?NXADCy6)2)dxI^KW@7c1S4^>~wN;+~)q#gyGku zNou;G)(Uw{P}pr?eHHcMu;mh=UeH2Rz<5mQxZ$r9MN$#hi_a}2cfD#F+IknmSbS#4 zHzXwvGLj`{pF%r|*P2}zT0hI0<8(ZB&FgCY1q%S6+hn?6G-WV&b*V8&q`Ql_-$?*M zzCBYq1-`GjM7Ks;desS<$T5@ZVx*g@4llH-?m6FCHZpb3b|JqqQ5u`Rry8m#%}n9Y zes2%7_G!;6u8NhqdR^yP;=L!h=jzATFmZgP`?ztYG70?eLgg=Sq|rNJKxlQEg&B^7nhY`=lC#U}30>bJ}nD1YjithH7ei;YHekGu=+ z8hm=AD=-;nwWWwZ$48X)b|yjL{=9kZe@e1tve>0mK(EbHMoym=dHehEy{(FvV=CJw zY{l)trHPMK=<+q+|Io!RcNhEMAn=WXV#{GlqG@26YbD$~RPkudnsG57s8PVl2~B{& z=^`n+%QMF@od#sh9989^&F8+yUOhr{?tiVzSo$No+%8KlbZBv(2^zgWi;!>mAGr&= zS<*v51yq@3a>?CXOWlCx5vg-inoP(fS!{1{(o*!kd$qbdwb2CdA*Bc;SWviP-q_!# z3&i>lxa3P2Zul_iywN4@b*U?nm{0@$V-Ffaog18ncN@A2HMqXs6p9z)!2r7na)8&W zvWEE0gGnXm^}naA>VkgO)Gp5!tpKpkap3~4P7EGCW5_?)8~}#ptT7`oQ7-c@5yjQH zq$*2eOpTGjEP`;3C3s4$hURIuP0Hu^mNgnY9aDSy>yd84sV;ANQD|1kfR7J1agJOy z;vJO!Q&8Vb2%{`L7iSoUlu>to0mv9Dtuo!Lsdx~ke{K;WY_T#2?nMjhQ^2!il_GmD zvGW;N@u&9aWDK}<0a1@4gSspMtjt9B0`e2};2o1Zi;+pQjgHJ&Rr6tz*EJuIO(~|n z*^R}83Wrmxj#$&6g54Vg`th5B2W%w+8n%82^E*+UeyB}9?L02=E;Cp}_|*kH?Q#hx z{@vaZ7@vnmxIASXhv~|4npNis?uZy>d>(q}#Lr6qYpB8cO{YQvuIg&>n8?;TYooGU zI@;^5y?H!NJNf_-D!tBaF0fX6Dsk1OJWCgK0YrJDmf>}~Dz;_=Y~$$5Pe>pWW^r?t zk8eTJ+qc_|Li^(j;Ic(>jdo=&35AKC!dGf>=2K(_@ayB&>n5~7|LZ>|4_$D$rSxfm z++FGYrg0I0l)91$k2ISd2{W&OVoZazvjxuw{nvYMH*QT07cEr31)ENlxNGM}P0xST z=|7mS-IkxCo`nLE*B1FNDi{c{{^N= zu?RI(CcpC2(H}XImKrx>y`8oGbOtoMCVqhta0Em6x*?+7&)NaO5x0gy_s{BNxq6i? zqN}%bSbecV40^WIuCdj!8&wQgo&`DTvUpl*7s*Tn1YZFZ)*Pp?7&pR<8=S=_mVslH zuSp?(FI3&wcD}Mb9U6(xdDl|E#o7N1co+PYv4963JlcDwiR7}#i@#o(^JN@ErQU@9 zdz0;x9z@x2SE8XaNu>jNOuv&C`f5sttC&c><~iW*T!ZukD;9kz$=6V{NOf&Z)D@ef zK1Gq+e_;m(a%#ey9a>(W}C4| z%qtM2#~P)wDx#5C)giN8p|MPUJ^udfN*KrqzKj2|^GWnqrDq&8#~Byq%;`1W;-f&p zU$$>f8?gt*CdRq3)>wjB@A~Q=iJHLz=MKJ(q?1s6UIv%h6N-E4Tj1)&!F?ZH3sW!` zW;xI`+-7b`8jM>=fb=9O7Gpf)4%mB8pL|A9oLq&{o=Ah2`cEh8!xqKDd!6V4R-M(f&oP_1Zcui#_$_0`hw3FfJq7vGGLt|WVO ze{eYp?Lw?>R-~(1C+ks6)2IKq)a1(QWQWZ~wPCQzS%T55Y83s_L)v844C{gIsmL5P z^0`t4Ho~;X<=^>PJQN)52C4cw1^^`Ao^H{+(Sp&d84o3K>2(?Y zO^oy3vP3Q_Y()QK;Ymf0wPZk&$;0$lxK=U5Qan%s7HsIG6sIUL(*U$bU>NHi zii=y7UdGN3UDMcpm$sH)K$?=qQ$q*9WRTLTn@R~e;~i+tyM2h^aVZ~DP_30q`iwu_u6?Xm?gNIYPZP_BkEo2;uL#ed2apj@VA`t` zx8u8mV)!K`8AdI;j^gME(*S;1Nu;ued)}TlKbQ!N@@!^P6ELTD7Jm3lA&-w#AkCX% zN^@B=-CYbCA6z-;=^~PJl@=MGW=*`+wP8 zY}rnxgH$F$sPu~@3)%IO&|FPyyQo{#S>Vw7s=%ASHKiCC#z+MP-zv7Z{A(NkH<#yZ zIM|TY=u@WTSp3o>*{!_Yv!cnQQB%1KyVWOp>>>nhVZP%jJ5mc7vjLWpQvJHI_@FQt zTa~=dF~RK!LSY5qDgBD^OA1nTl)NBC)V~zo!taZH3QPp8zY7_`8|# z(7e%(wQ}BQ4Yj6M9T~ zSXe$g@Z5ZOJPPyk0rghZB|gwY+$4H@glS*D$@K&znl&1L9xq0m*-Z^@HEkLszM&zu zxRd>J#=F&z(lz{$;1*Ygg_&U(s2050#PT`SWUv5vjw11#md`GJfzpVtZ3-OsVQ9tR zME7~`zf3Y^!S4k28VH|rVm^u@=zMjT9xjy)(i~H;lnI?uRpTj)u<#M!OsOVm7CMfh zf&#u}eh45RBpH`cUsYtv(E}A}9SMv(FE^T<+Eb(X<&4%<*J3D)yNTS^e0zJu+Xfr_ z>P&PaPyXQCbZZ}rT&y@-Mm%`Z{G~GdDynev;nI0S&UPF76YO6*pZi<- zLw@sP$IG5F*3xC^E*gPB{^g$5T^ZTXa|$6 zLs6Nw_|X#jPi8qZ;xCUGu42DWo{G;P^nkt&(Q)=+`ek{PFT&>Qsr)1!a+yYiqX4M3 z{`e?oJ$4|IIO7I7LB964*%-1>1aezx@9+;B-J1z|%IJ)g8*PH>1}}sPpd!$SQruwRd-GV*pSU(|WJseuZod00A;z({O@GqoY#r%Y*TD-+4mD_5%aUDC47mbw`tU|h2Q2$HQ zrH7=WZm^CIi5rxvR(8f9Hqo|1tqG(H<$kdl^g@~gQ=|2m)_d`K7MrAIBf(r zAFEPFSU9fk7V{*X+hu-piu{AF1&8z@`}j^;12H?P|$y&t|8??D>M zs^c@?f9fy8`LR=gs>lk*?rJ(J;N?pmXR1dyB6?SKb6??q2x|xM*@SrM>)C>l_jVK4 z)KjkJ- ze@8ZMF>3PTl#c(-=3;%@?p^(CF=P1+o|d96>t_Cqt3;0uQ+lAcVRtFFnq&5ifZ4R~ zycB8i+xAREFW+-&VaaM1IxOW*E*d9WeYf zNioCTBRakQk+2@u^%4j&>1_$Jcy}r<81)#LCkJrq%Ail4!WyI&%;aw(kXr~6hOH6; zHO?4H2^N^J4jbYgs3l1C4Zi@~Cc|cZO4CWL_#{DOl`#m*^3CT`jhe>n z_4u<^vgo+@G+UTQp&gs~Xyz-<__CFU%5>_sCP$l-FMEK?hDlAugxFzk-p!`uK=qnE zvVX)xx58lI$7`ngVl@(`_{q*-VoV^gYZjD~`~s-J$EWAi_(7Sn->WE-85p1}KH_EF zM6MJ{L-Ccl^49DtziXe2(3MXo>C6m(c8M;8WObI#SC;{@kCZ+f1dlr5r~#P4or#w0 zMj_lWzaB=WR=*|QI!m$+0a(v4`#7t>7)Q2i{`S8-Y;Ka)D?t%c)UDr>7=EUcd=Y$1 z&;m3Y$db;lyEy#hHwsxWvYE%kzIfIv|G?1k-ey%LqN_1WxJi2OjK8gkLg$XN6x6m8 zkWh7PdIY^5==MG2Xf`n{UMI4#YFm1Z(H=i2UTNq02a!l| zl9}0UB&ocnk`5uRh^fSpTFTPOr1ww939|1LE_i?`g)m;evRo>a0*h&p62qt&jsS3q znZ4%$kP*w=@wOW(KKcLa^gXJW8jNYfLtWv}v^JSzdN2BDtj}jLY~1+@&Y_8P1z%&g zcLGP(Sz+jQPM;X{!N{_PZ@$OU&>54zBIVtSUd=*9?}xng#W}OD3HtB1D%`F|L0rw0i@V!EU#VwRiPZfB@*y(nQgvHQoi+9zP4vC^EQgel)qo|O_& z^%K;++6T0$VfvIK@m8z@8s`-tzklg)rJf_lElMTc_CY-4kWqze_BehP<8Pf7_*D8# z7O>vt__T77j z)C1*HFa_*({3!0`u+)Nyvar>Vhjw=ZQXvZKzuD&BPeX)K3`F11&bU zhPxcwc`7Dk$0G7q{(noq;SM1S3OD3Vn6!pCK54xv&{WP_x8YV4H%xWf-L{DQg|KOy z!jkURjeEH)uD44Cc4AO#`88n==93Tl)^`w*jZRv)RJPwxQ{A?w1?gm!+jeJsm94Jk z-Z7}-l3k0Gw&LivEriPuj1x(yILpRAk&ErbWg+OnA*XifW~>rM&BzY@*H68?a-X3g zX-d6Ok?Rn%Odp}%YcV#ht(*+vWVv*f-ij(X4vlegV9)@J3Xi4>BV4yUKMC6C$op=Y z91Gmfi`krFmrQed$YnVbVZ%@oscG~k?#*RHik#k}Q`-p>we}$9N$*CD7MyHNABB#(Ku^@?zlz+FT4% zy#b0AcT=FJoY)7|g8lvv$D5$g`*QHYK+Q_|+mXquTt_7ImjnZSog@--K1C z<+tk68pGF7Dh_Ms+y9+-aC@5Jz+*w9;kXAb-=AhHI#J=d*rhRT$Z`pHCQ2GnX|ClD zQH)Cc&&iq_r@zd$Ua&0Zc_s0{@d?1HnZswq0wpPKlTWPjs_3lUQX}NUi7Cr52GJJL zVWFf7C=C^k9dP9HUF%XgbU%d4Sw|l6d?kz}ZQQ9q7%C8Q-;G5lX?M*?mW?VD= zMYJAL*HtQplIjzMGEz^2u_a?nS7y$#-Y^1YW;vq6&luZpcR8+>f)I18c;KP?szh>k zfOIA-A9@-$8eP>UrY~vKk*==bJaVQvpHg2EbdTtnxfjQ=uWX&2u)5BR>IFm{DtzOj z4dPKSZeOv;(QW)43t3!=B3yHo@xUrb1T8&m=YIkx^*}?TsF20k+wm3AsdSES%N#go zp(eZYs#IxG$$E|IT)Jx{HOUbcyDW;dz{+zuwxE3ZZ?rn19F4}bwlIj13|*d(F$~1C zbjOt;m+<}MSSx$D)7T6COXacK(K4=N_}eLOqTjPPmYtzRicjWUsvCX{KI=F%+Hl`$ zRx}=WjJEtl7MwJd=Z{3RvGa5~{!mQ?1+trLZhxrT+2El|l+3J7na=)OlZ6BTO9p6j z1I`WZzF!ma$w~fswK}PD0ew@TcdBaTnth-UlI;weTJq_`q@2NrOUZlS zqMedN@whQsZqZ!*+fIJx>3qpqtbi>e3PBBOS&V=jWhT-4t5jAXK7=HYM+@ofGOjhx zJO`PT>Tn*E`er8SW`m#IRhHhZf~}XH6^fQFs?<;v=7~ZFZJ@-je)wMBsfWp5mPYca zAUgHS9?1<+AepxesHUc7KIlHwTwAX8Rg2S^ob>9JrTm| z4}@O+%QDTr)IaLg+Bn<>hZIg2vbMCmq?!1&cw6kA2?1ph#-lnd%NhA1 zr=Ls=or~{hm+!}25UQP1YhWwMcTV~nDY38;@1>!GtVpEvGvBX{vvyNw7_sp2ZUOf~;BQjJm7 zs>n2yp;|WcrcfHE`PtXiWA4j6hPmJcdx?KK+dDD?dW!+Ou~ao;tFb6lw#+7W&7j?pS;>6-XN+-Org@J0!6SvOxW#aM{<3?dLPp7l|sD&>}5>e7_ z`IC&wK*$nM<-ML}dX;+3qkT8rkms}X})h(toKdl`Jjt(H@1MP)bI|#p)t zv(8)FpLPtrO3{~N7-yBAb|q5gh$S^+wq)ozptNDhdmBey#Cxm#OhjHi&`U$%P#>lK zGxF+p{=i4ooUgg>C@|~Jf9ZAiaPH4PP7`j=5asd7t4ZCvVtL2pA?Ll4KoKA$^q-xL z6X~(5dBj+D)0U`@)agFFO`CI&Tpg=^5W4u(p|-K@y6BYgcKn`(n9p0K^vj45jme8< zch%>(Qtqz+icEh}fE7Nk@o1@?vURQ^sa&@{pKVF=@dqS`7tR!8_u2OIKxtOFoTFyi zjY8~(zkNXQ-<~``c4=m?T^KktmYY!%BPojfa&9kU*8GrF-TWXlR>h%^??FdM6A>og z(d5nv;v@!?cp&TNMRR9|Gow1ojCp<>Rc+lkOqR}(B!TE)XuWW34f9dIe4Od%ySW&} zF)u+$^^8;Ua5aA`d|CBTu?x`LgVuDlmP;$Z`3*iNt=!6-I7b1cHK4O=+QeWt8p$P6Kzs1WUTci*Xg1P>?B6R(lEl z81A{4PViX1oiLqk3BZi4`9T!pMUWf!s}XMu2w8C+$15<;8fFulU6uX zk*0|>9-_C!pC%!1I+8yYDb@iPGOb^Smi8itiF42$Z!lsg0E0;FLcDaeNmlZ|#0Hi* z8kpqa3sp8@rYsnse~9<{{n8V(W-G&?{LEX?xx$5$0cOT*r%1a@g zyGOAYz@WLg0McMP^*>mtW@0-@S!UV$5V|WhdS00<7Jw+wbycwsQ#339Zpk^7^stuq z{^Oh=;ir`Hxu#t1GZMMX__fSOoS?mg0fY(KbUu+i;a~pkL<6s$zHQ9up}~n%rPwy= zq7s`P*fD5XCQQ?Ax`r6#0A3;)P`Vg=g8{j8ClrS}klw4&ZfTXNwu)okiY7t7p@>dD z9+vcl(KT6}=_-ASr3VjR84|XRc!+|9ADvgujXyziW(@_(rv(46Y^-NRN}tbMQQ1bz zs`J3vtx8Sw7}@s#&2EvhbG}F2MMSMHQlJ9_b+G*2-=k>58;6!Dqi2c0*o%qmLs_Pi z|5#^$Sb=lw8Iz0l3ot~%&1eB8JByS*yM_a03|DP&7}9yvhsgWTsu}&01>UtThry^jcg3an z+e-4Fkt})u`boL9ofNb>0kU))Z(=PA$xIM%z;YSw54U*uAOOOpsZnnd92J8D^B%T* zjlkb3!MhD1DDpEp#ZzJM)fcHeC1224*E!A4Ja*Xjk=BdyIi{>&*Y5Tboxja?*uwx* zB4<~)oyrx(cXBv|G&8>s(?oW%UGh#lUS!cXIIzuEQ7GezBv2`G5h%>0MD$- zJ`vPHKwZ-O0_S6w(ZUt@;DU3l-n{TALsIa)b{Cgo{1Ft;tw6gd-9)c*fr8*eB(BPm z6TsnGFI{k_pnniXGHH%po*ZNo=EA>VN4|TU}#Ek!-X2ITY z#8Du2B#ec(j7675vV;xUL|-}-m|DKP$axEcP@m%*bDiI{bW(6|Z|n_wD|%Au%^8z; ze8y{!m1mM^u0VVo+3};DP=%+~9ifGwxv1o``|<0)RSRc$zVU!^P1^H_wZ?CIz-RfD z8O18KL@|nI8nSd^>k2r{k%J3W&dYSj3@K!fd!!0ma9~|nKDTEh;A8;MnuAMwwQ#R= z8QXl?hlL6@1=XZyDQHe^9R!RKx{j4ZXe7UAhrm{2Mve&K7o)Wv+AGI9@=K$$>*ML4 zlv`QbQT!sOUbs$;UEAOjf==8lp@dIu2sgp$7VQA@o~u}8q5W!RJY8&!lHfMmT?r<- zaD!F2knx;7i>Ims==Ol*lKePKdqYoBKWgv*yoOGOH4<9;%Jb9tmp;F?+%u$LhK@L? z3|aE+_J#k79i66^q-8ebO~y#t2?_3#-Q#01)t>oU%Wm%?a?-I3rcGGjT6sA8wWx3h z_5E1FO5P?fUSY0QOJnA`)rVhisJiS&(WbMmp<9HVgk zYC)j+3iHBv9K}p2Ebuc~Z@{yv+(x$aOJ#%Kzkd>jV^-VJsTAAUT0-c!Y9Zo%6?o-1 zOOU!hnrJj7)oPjaH1~4_%w%1V>4_ z{Q9P}doK;EppA{y=A_?DK`Sve6BmcC1LRzD*p&5pP*#Yi^7D znu$9oXXFbmIoJ~AP$QT>6;G8I(bB&6d^p$b>7yEVH8Fe27uyD9HTKAx{;I#xnnmI4 zxSBcx{#(Q1^aDmOQy4N7g<_J`q6&stz`e!lY-?Yc|J4wMh3egi`TlEJs9Tv1v^{k& zG7`o~fJO8&kjLTe2fqk&8#+aAh*llb2x+-~t=52(YHac;PJX8QdnwCEmghlm#bK$* z|5Lo#67;Rjqn^yG$4^(Ch{&eo?*7~4T7Oc{u%(X)jwfuv;Ybllf;gX+PBxih}F zp{r~}gYmXB>(_4No%?SDG~lO8rSLiX_y3@RN~pu&DKAf?$OR+~&fyTMw0ZsmGay4b zHeINCl#kdGDnebt?Q;1rG4iTa;WHR62`ydW*iTu-VP|u$t4Aw05-wC1f+UO1W@9CJ z$|+t7+pFQGs8azRXV}ZY4+6@#*ZX#1&Q2Ddp_TVn<~!^$+O<#!Hp5v9e1M$xFLe1D zl&amrIvjBL?3A|cr>d>vNaOUDSm18e`z)d%kJ)xePQ;)7;b=@_>EZkOai9)wJFBoq zEeT24)aLXCB9zx87j0`|l8k#{4m%#*ZT<&cAg_pJ4u1p7O|8gB-nEX?_bl24h zwmtR1dg_dw+fV)z8VQ^YgHHjZcBtc$3khx8mWceRc)x1&qu5lE3^KeGq1c9|+l_Oe zudYJ*6a$?DS7@R1l-=_&If2>9E6;(Pz@Jy`6PXVm99}GV&JyvtB02btc91*B?f1pU zk8zwC_g|e%djWBmJtyn-(k^Vc2&G8%kn{rTsJdL+W0%1y<{VeA6y~m17bD_(X}wI} zWrYvZJJqN7H%iOzKYwCD>*@6&eD)ww_52ZyQAp2(7(|_M96VYQG63M=TN7v;5y{7B zl&N`k@lD>188pv2{Bl!PrIPtqv*zf>@_UMrCJ7pOFGsXeigeAB2z2-*G03JR1$Ci` znS+_*p>Yw;X{$YMHE~Y_c`6Ou;IZD2r)(P~Yh-6+^2Eg6V1h zlV!wafgiZZ=LA08OmSwFR{l6Zh)i3;dd^xY>^EBu%nLQc3jj*1xstdvi?EomR+AZ? z8b6%FgT9L4l}f2UO-&&pgEClc5dujs3Wt|dUdCh_dTvtSYj$1BOb#GgwwtS#h^*!d za*ub_AJW3pf?S^r?>&>Lb9NJ%>oK1GqqugLnk{I%M-#>EwiXN(eH2;8)fh+7zi*FH z0ja6ICXfy|HSUFnaoiD`u+D?wx6_>S8rfPpO7|E>)VoDmdg6brs@z)P${j+th4XGi z!TaXGnbf8^076u`cPB2Z_NE;I0$!hvR|_N(BP=>obl+mNK9dRJ+U)C%=*xI|jKKuZ zYA8eu`7PDhC}ywKXc9R1r}v69Pdauc(Kmnijo|_pO!1N4LcS;+C3b}cyDH>r`ye{d zL%kQs<7ZPfAB7<++o$p|FFhIcp;h(1WEpjFH{?K98)FsZgsbLmhrkbVy~%+YOWs+y z(;AlDgfi&ngPip7mhDu?h}AJ?uOkSvUW%84dvFoWcQ+=M=NX){232BR6~ac^*HYr` z=0NEMTMUf-PWi|xpS^|g7Ip6LL5i)P`lbF<^!q-6i>0bg3o89m^@$aG$+Zi<)Rg%Q zm%eI$Gu*>wWmn{DYv((l=y8~o`=yHYgLLdOR1g#MMzc!XP~XueBKo-4zb4Nh`gFPyHThn=|K0cH5s=L%KXpJv!0sR-9((HV!9;*Mr7c$G z?5<=#$z0$j{z~&Y2Z@6Z2UTR)3N=FDX{!k`DOY`jECP0pX(vd{g^`gvQpcA4IDyJv zf&@7=yr*fYuoDl^l+XnOm&4|toh=xCIF&NZ+_4kwh$N~&GMC--WWWZhX&oL^h@cDNc7#!lH+c-k^~;u0?2|qxBj?a+7M%>2 zOmksrPgVG1VNh}oAw~_!vDbce#OQ|Qd+PAT6O1X6(~OV(bwLoZ-EiirBLgt0yz;8B z`RG4|Ie{)1zqha!RZU_{t(4d9`+V~=hEl_kIC};myBu`JUexgFn+#{e8lun>_Z-3O z&_y8kC&C~k*)@KV=%J&E-qs|{m4!Yeu{f_#pUze2&|BWeANT3AbAkmM863kCMZX@n z^bJeeCBeMaCP>1KY8axgE&>0cuyv?J9PqNv>Fqe*GY3xa9`INqs2OBq1KK+ z-G}$)g~}iyITszGW0RK>BH&DEm#Mv5m<1gv)8ipc%z#j}M(Sr{(yWQTXdD`7;S}>I zF=@UYl8h3qXctM3IIG;yHP@hExE$I_`VV8QZd|GWQH$9n@)fB8|7?lys;Mb+hBFp5fzI6RC-H> z!f+;f;V>QZX|{L*HFB@V+`T?-29EA#RwW+VHH3zk>><25=HaqUCD`D@q{pZ1^B!7S z`)Xrby!Jmgy&h$7k93|(Jy2sCi$0f2eVDfe_u*7qe_uQ{-vjP9)M;m%y><1Wc5%-EqWD>~dP=vC zSJk8%lohNFTcrwuYLfJpk)yI$f+}FM7HK=>4K~^RtX&w$`x|$1H&30C-rIshYX3OK z{v7Gqka@@w(l#m@@x~>-?30}YslCHR2&IdbO@RQY-r6y#!x`rDhLFI_?X8!Ov$FK3 zSjG76LiLduFdXei`pV-X;eugYU3NO8P0S?b1U2iOgFg`fHnVGU>8@#kq81rsASOkE zMiFlM=I3l%|4aK4Q?B7VG>V-R!fxDsTXe1s&3c=iHcS`^Fvd2|PyQ@mE2X_IAfbFj z{|VUHf&Fk!2D?|7BRg+6BV0YH<^!0MI(6`zJ(+l$m^Ua3)xA$)ZTAu2F5pV(6Am2o zF*R+a$9J&$kF?ODjDl~VkQl$v#fj1x8vP$VD(YM+wFg)n6+#=`KZUGcOZ*4K`vEZ4t@v)d$OCbYRfOzYs#EblLGSIDIxzuTC3o+)3}(eCedH<^3fUJ`kN@_ zn;`>DMckM)JSI+C3}_C%mP14F$TrApYcouEOj-wUnVZica_fu4YnUmd2Qifln-arb zQfKp4NY@E-tx#(*YGXG_(Lk9q=ieLQ?rHj>$kRA6VPsW7e^JMgIr=$!^Wh@{_;b({ z6OD+?>6WbjM29r^sv1xG8#QU2Z=K^a1qxMvK`TR62V$X}eix^;eSLjo2&oE>*k|T% zziK{`%?pW_Axs%L8@Dwqk_nV-5+x|cwKsnc#zfZEZT@}T@q0C!4JG>ZV8$t6D-rdd zkjKnwLYB|b;9w*sVcuX==foHtSWUijYsJBybHXnPw(HLAE%X*zy*e7_NBX`p-xV_B zo8=+aHPY+%hf>s&ZKYUt)a$PY)acQ9O&z3Y&htO&0)qF_>A$T1kEC-%vj>MhkwJ1$i@T zfbW^VV}eq{$n+dRA(CL{do^-2Q>UbxUkM@vJ&P#y!>{K-vfnSD{Y_g(8|DGO8Su=! zlQg{jp2iBMehEn#DHpHn1L4XYoF=m@RrjP{RT7=!c?4?>9JgnmkvESC)20{;^!qD9 zmsG=u)tKc1C|XX9Bme0HWK+x}22f@8IH13Aja|I`=Y*j06W@?~Yd_5(dP%V}j`i;u z>>#9bW@L=Pd>{`UM-8iyO($FNx=E0CHGQ-VC%v1C9WbLmNFi>F#N=te2rbL!Dm!w4 z$F8b=D?sQj9+V3?sGd-6u8a?8@;dVMge85z>E6 z9wk2D_HanHwExIg zq%z}I9NDKZY<@vuWkkC|WTrQtu`(o9ZVRsnAFEIZc5*QG*3O(`786k4>?K_i=j*qIu6_U~cCu`m4gZZj>8z@p58&@Z zcfd2CEgy9Y!{S1>9g5OcMRuJM&ZsM?Zimzj_LXW!B@x3;O&QV?7Rs*1=P3D*#c_mY zDGgO6jNLlSPKo?reT|H-IlN_}j{vg|4}j_J&1 zg6JhiTUHo0{hw|%Et)mj(AJZ^fzlZ-@NY5-b9%s|T zB62M~6tgkk1ueffVA=p!H}RAj+cX4mbu(VjhZI%2X{)6s(I*JZ#J_!I(Tc`18VJ2s z9?+MW;%yyQn!2g#@lKHc&a>k$f{hxR9a}t1{ozf{mtl@Wr6yKSfn|1~YEi>0V3sfU z`4XqX9cLYC0hVC?fe2*=AFm{nILG=@4?gz*y}qQQlw7>0#m1;?~aFs5HbzAg@!^Kk!j4@@nIt9Q7vJ*(!sE}_Wy0~l&F>tCRX

5f9>m(`yA%B%nrUt;uqm$GH3d;50nJ_QZ++4f6 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%0AHv8BTwqNNGRB=G2sq+nY# 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 Date: Sun, 27 Jun 2021 22:39:46 +0200 Subject: [PATCH 23/24] made is possible to drop meat items into an empty cauldron --- .../biomancy/block/MeatsoupCauldronBlock.java | 17 ++++++ .../biomancy/mixin/CauldronBlockMixin.java | 53 +++++++++++++++++++ src/main/resources/biomancy.mixins.json | 1 + 3 files changed, 71 insertions(+) create mode 100644 src/main/java/com/github/elenterius/biomancy/mixin/CauldronBlockMixin.java diff --git a/src/main/java/com/github/elenterius/biomancy/block/MeatsoupCauldronBlock.java b/src/main/java/com/github/elenterius/biomancy/block/MeatsoupCauldronBlock.java index 92026f312..aaf9963c1 100644 --- a/src/main/java/com/github/elenterius/biomancy/block/MeatsoupCauldronBlock.java +++ b/src/main/java/com/github/elenterius/biomancy/block/MeatsoupCauldronBlock.java @@ -115,6 +115,23 @@ else if (!Flags.isFlagSet(flagValue, Flags.BONE_MEAL) && item instanceof BoneMea worldIn.getPendingBlockTicks().scheduleTick(pos, state.getBlock(), 55 + 1 + worldIn.rand.nextInt(20)); } } + else if (level >= MAX_LEVEL - 3 && level < MAX_LEVEL - 1) { + if (item instanceof PotionItem) { + Potion potion = PotionUtils.getPotionFromItem(stack); + if (potion == Potions.HEALING || potion == Potions.REGENERATION) { + stack.grow(-1); + entityIn.entityDropItem(stack.hasContainerItem() ? stack.getContainerItem() : new ItemStack(Items.GLASS_BOTTLE)); + setSoupLevel(worldIn, pos, state, flagValue, level, 1); + worldIn.playSound(null, pos, SoundEvents.ITEM_BOTTLE_EMPTY, SoundCategory.BLOCKS, 1f, 1f); + } + else if (potion == Potions.STRONG_HEALING || potion == Potions.STRONG_REGENERATION || potion == Potions.LONG_REGENERATION) { + stack.grow(-1); + entityIn.entityDropItem(stack.hasContainerItem() ? stack.getContainerItem() : new ItemStack(Items.GLASS_BOTTLE)); + setSoupLevel(worldIn, pos, state, flagValue, level, 2); + worldIn.playSound(null, pos, SoundEvents.ITEM_BOTTLE_EMPTY, SoundCategory.BLOCKS, 1f, 1f); + } + } + } } } } diff --git a/src/main/java/com/github/elenterius/biomancy/mixin/CauldronBlockMixin.java b/src/main/java/com/github/elenterius/biomancy/mixin/CauldronBlockMixin.java new file mode 100644 index 000000000..3b93fbc9a --- /dev/null +++ b/src/main/java/com/github/elenterius/biomancy/mixin/CauldronBlockMixin.java @@ -0,0 +1,53 @@ +package com.github.elenterius.biomancy.mixin; + +import com.github.elenterius.biomancy.block.MeatsoupCauldronBlock; +import com.github.elenterius.biomancy.init.ModBlocks; +import com.github.elenterius.biomancy.init.ModTags; +import net.minecraft.block.BlockState; +import net.minecraft.block.CauldronBlock; +import net.minecraft.entity.Entity; +import net.minecraft.entity.item.ItemEntity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.state.IntegerProperty; +import net.minecraft.util.SoundCategory; +import net.minecraft.util.SoundEvents; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import net.minecraftforge.common.util.Constants; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(CauldronBlock.class) +public abstract class CauldronBlockMixin { + + @Shadow + @Final + public static IntegerProperty LEVEL; + + @Inject(method = "onEntityCollision", at = @At("HEAD"), cancellable = true) + protected void biomancy_onEntityCollision(BlockState state, World worldIn, BlockPos pos, Entity entityIn, CallbackInfo ci) { + if (!worldIn.isRemote && entityIn instanceof ItemEntity) { + int waterLevel = state.get(LEVEL); + if (waterLevel == 0) { + ItemStack stack = ((ItemEntity) entityIn).getItem(); + Item item = stack.getItem(); + if (item.isIn(ModTags.Items.RAW_MEATS)) { + int amount = Math.min(stack.getCount(), 5); + ((ItemEntity) entityIn).getItem().grow(-amount); + + BlockState meatState = ModBlocks.MEATSOUP_CAULDRON.get().getDefaultState().with(MeatsoupCauldronBlock.LEVEL, amount); + worldIn.setBlockState(pos, meatState, Constants.BlockFlags.BLOCK_UPDATE); + worldIn.playSound(null, pos, SoundEvents.ENTITY_SLIME_SQUISH_SMALL, SoundCategory.BLOCKS, 1f, 0.5f); + + ci.cancel(); + } + } + } + } + +} diff --git a/src/main/resources/biomancy.mixins.json b/src/main/resources/biomancy.mixins.json index 4dc26cb4d..ee0a47f46 100644 --- a/src/main/resources/biomancy.mixins.json +++ b/src/main/resources/biomancy.mixins.json @@ -6,6 +6,7 @@ "mixins": [ "ArmorStandEntityAccessor", "CapabilityProviderMixin", + "CauldronBlockMixin", "DamageSourceMixin", "GrindstoneContainerMixin", "LivingEntityMixin", From 8378001869fd9b14f6f28520323a60a96577f36e Mon Sep 17 00:00:00 2001 From: Elenterius Date: Sun, 27 Jun 2021 22:59:05 +0200 Subject: [PATCH 24/24] removed unused code --- .../biomancy/block/BlightPustuleBlock.java | 89 ------------------- .../biomancy/block/ImpalerBlock.java | 22 ----- .../elenterius/biomancy/util/WorldUtil.java | 13 --- 3 files changed, 124 deletions(-) delete mode 100644 src/main/java/com/github/elenterius/biomancy/block/BlightPustuleBlock.java delete mode 100644 src/main/java/com/github/elenterius/biomancy/block/ImpalerBlock.java delete mode 100644 src/main/java/com/github/elenterius/biomancy/util/WorldUtil.java diff --git a/src/main/java/com/github/elenterius/biomancy/block/BlightPustuleBlock.java b/src/main/java/com/github/elenterius/biomancy/block/BlightPustuleBlock.java deleted file mode 100644 index 5061bd8a2..000000000 --- a/src/main/java/com/github/elenterius/biomancy/block/BlightPustuleBlock.java +++ /dev/null @@ -1,89 +0,0 @@ -package com.github.elenterius.biomancy.block; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.item.BlockItemUseContext; -import net.minecraft.state.DirectionProperty; -import net.minecraft.state.StateContainer; -import net.minecraft.state.properties.BlockStateProperties; -import net.minecraft.util.Direction; -import net.minecraft.util.Mirror; -import net.minecraft.util.Rotation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.shapes.ISelectionContext; -import net.minecraft.util.math.shapes.VoxelShape; -import net.minecraft.util.math.vector.Vector3d; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.IWorldReader; - -import javax.annotation.Nullable; - -public class BlightPustuleBlock extends FleshPlantBlock { - public static final DirectionProperty FACING = BlockStateProperties.FACING; - - protected static final VoxelShape SHAPE_UP = Block.makeCuboidShape(2.0D, 0.0D, 2.0D, 14.0D, 4.0D, 14.0D); - protected static final VoxelShape SHAPE_DOWN = Block.makeCuboidShape(2.0D, 12.0D, 2.0D, 14.0D, 16.0D, 14.0D); - protected static final VoxelShape SHAPE_EAST = Block.makeCuboidShape(0.0D, 2.0D, 2.0D, 4.0D, 14.0D, 14.0D); - protected static final VoxelShape SHAPE_WEST = Block.makeCuboidShape(12.0D, 2.0D, 2.0D, 16.0D, 14.0D, 14.0D); - protected static final VoxelShape SHAPE_SOUTH = Block.makeCuboidShape(2.0D, 2.0D, 0.0D, 14.0D, 14.0D, 4.0D); - protected static final VoxelShape SHAPE_NORTH = Block.makeCuboidShape(2.0D, 2.0D, 12.0D, 14.0D, 14.0D, 16.0D); - - public BlightPustuleBlock(Properties properties) { - super(properties); - setDefaultState(getDefaultState().with(FACING, Direction.UP)); - } - - @Override - protected void fillStateContainer(StateContainer.Builder builder) { - builder.add(FACING); - } - - @Override - public boolean isValidPosition(BlockState state, IWorldReader worldIn, BlockPos pos) { - Direction direction = state.get(FACING); - BlockPos blockpos = pos.offset(direction.getOpposite()); - BlockState blockstate = worldIn.getBlockState(blockpos); - return blockstate.isSolidSide(worldIn, blockpos, direction); - } - - @Nullable - @Override - public BlockState getStateForPlacement(BlockItemUseContext context) { - return getDefaultState().with(FACING, context.getFace()); - } - - @Override - public BlockState rotate(BlockState state, Rotation rot) { - return state.with(FACING, rot.rotate(state.get(FACING))); - } - - @Override - public BlockState mirror(BlockState state, Mirror mirrorIn) { - return state.rotate(mirrorIn.toRotation(state.get(FACING))); - } - - @Override - public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) { - Vector3d vec = state.getOffset(worldIn, pos); - switch (state.get(FACING)) { - case UP: - default: - return SHAPE_UP.withOffset(vec.x, vec.y, vec.z); - case DOWN: - return SHAPE_DOWN.withOffset(vec.x, vec.y, vec.z); - case NORTH: - return SHAPE_NORTH.withOffset(vec.x, vec.y, vec.z); - case SOUTH: - return SHAPE_SOUTH.withOffset(vec.x, vec.y, vec.z); - case WEST: - return SHAPE_WEST.withOffset(vec.x, vec.y, vec.z); - case EAST: - return SHAPE_EAST.withOffset(vec.x, vec.y, vec.z); - } - } - - @Override - public OffsetType getOffsetType() { - return OffsetType.NONE; - } -} diff --git a/src/main/java/com/github/elenterius/biomancy/block/ImpalerBlock.java b/src/main/java/com/github/elenterius/biomancy/block/ImpalerBlock.java deleted file mode 100644 index 32eee8b4b..000000000 --- a/src/main/java/com/github/elenterius/biomancy/block/ImpalerBlock.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.github.elenterius.biomancy.block; - -import net.minecraft.block.BlockState; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.IBlockReader; - -import javax.annotation.Nullable; - -public class ImpalerBlock extends OwnableBlock { - - public ImpalerBlock(Properties properties) { - super(properties); - //TODO: implement - } - - @Nullable - @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return null; //TODO: create tile entity - } - -} diff --git a/src/main/java/com/github/elenterius/biomancy/util/WorldUtil.java b/src/main/java/com/github/elenterius/biomancy/util/WorldUtil.java deleted file mode 100644 index 499eab63f..000000000 --- a/src/main/java/com/github/elenterius/biomancy/util/WorldUtil.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.github.elenterius.biomancy.util; - -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IWorldReader; - -public final class WorldUtil { - private WorldUtil() {} - - public static boolean isAir(IWorldReader reader, BlockPos pos) { - return reader.getBlockState(pos).isAir(reader, pos); //TODO: update this in mc 1.17 - } - -}