diff --git a/kfc/src/main/java/nmd/primal/forgecraft/blocks/Chisel.java b/kfc/src/main/java/nmd/primal/forgecraft/blocks/Chisel.java index 7908da40..2c3f9ce7 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/blocks/Chisel.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/blocks/Chisel.java @@ -429,7 +429,7 @@ public class Chisel extends CustomFacing implements ToolMaterialMap { private void doDamaging(World world, BlockPos movePos, IBlockState state, EntityPlayer player){ if (!(state.getBlock().equals(Blocks.AIR))) { if(world.getBlockState(movePos).getBlock().blockHardness>0) { - world.sendBlockBreakProgress(player.getEntityId() + PrimalAPI.getRandom().nextInt(100), movePos, PrimalAPI.getRandom().nextInt(3,10)); + world.sendBlockBreakProgress(player.getEntityId() - PrimalAPI.getRandom().nextInt(100), movePos, PrimalAPI.getRandom().nextInt(3,10)); } } } diff --git a/kfc/src/main/java/nmd/primal/forgecraft/blocks/fluids/BasicFluidBlockKFC.java b/kfc/src/main/java/nmd/primal/forgecraft/blocks/fluids/BasicFluidBlockKFC.java new file mode 100644 index 00000000..79769d8e --- /dev/null +++ b/kfc/src/main/java/nmd/primal/forgecraft/blocks/fluids/BasicFluidBlockKFC.java @@ -0,0 +1,27 @@ +package nmd.primal.forgecraft.blocks.fluids; + +import net.minecraft.block.material.Material; +import net.minecraftforge.fluids.Fluid; +import nmd.primal.core.common.fluids.AbstractFluidBlock; +import nmd.primal.forgecraft.ModInfo; + +public class BasicFluidBlockKFC extends AbstractFluidBlock { + + + private boolean isSolidTexture; + private boolean isBurning; + + public BasicFluidBlockKFC(Fluid fluid, Material material, boolean isSolidTexture, boolean isBurning) + { + super(fluid, material); + this.isSolidTexture = isSolidTexture; + this.isBurning = isBurning; + } + + public BasicFluidBlockKFC(Fluid fluid, Material material) + { + this(fluid, material, false, false); + this.setCreativeTab(ModInfo.TAB_FORGECRAFT); + } + +} diff --git a/kfc/src/main/java/nmd/primal/forgecraft/init/ModFluids.java b/kfc/src/main/java/nmd/primal/forgecraft/init/ModFluids.java index 31742a63..4f6480de 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/init/ModFluids.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/init/ModFluids.java @@ -1,22 +1,77 @@ package nmd.primal.forgecraft.init; import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.IFluidBlock; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.registries.IForgeRegistry; -import nmd.primal.core.api.PrimalAPI; -import nmd.primal.core.common.helper.RegistryHelper; +import nmd.primal.forgecraft.ModInfo; +import nmd.primal.forgecraft.blocks.fluids.BasicFluidBlockKFC; + +import java.util.HashSet; +import java.util.Set; +import java.util.function.Consumer; +import java.util.function.Function; + +import static nmd.primal.core.common.helper.RegistryHelper.registerFluidBlock; +import static nmd.primal.core.common.helper.RegistryHelper.registerFluidItems; public class ModFluids { - public static Fluid SILVER_WATER; + public static Fluid HOLY_WATER; - @SubscribeEvent - public static void registryFluidBlocks(final RegistryEvent.Register event){ - final IForgeRegistry registry = event.getRegistry(); - //RegistryHelper.registerFluidBlock(registry, - // ); + public static final Set FLUID_BLOCKS = new HashSet<>(); + + // ***************************************************************************** // + // Fluid Registration + // ***************************************************************************** // + @Mod.EventBusSubscriber(modid= ModInfo.MOD_ID) + public static class RegistrationHandler + { + /** + * Register this mod's fluid {@link Block}s. + * @param event The event + */ + @SubscribeEvent + public static void registryFluidBlocks(final RegistryEvent.Register event) + { + final IForgeRegistry registry = event.getRegistry(); + + registerFluidBlock(registry, + HOLY_WATER = createFluid("holy_water", 0xFFEDF1F5, true, + fluid -> fluid.setDensity(1000).setViscosity(1000).setTemperature(100).setLuminosity(5).setGaseous(false), + fluid -> new BasicFluidBlockKFC(fluid, Material.WATER))); + + } + + /** + * Register this mod's fluid {@link ItemBlock}s. + * @param event The event + */ + // Use EventPriority.LOWEST so this is called after the RegistryEvent.Register handler in ModBlocks where + // the ItemBlock for ModBlocks.FLUID_TANK is registered. + @SubscribeEvent(priority = EventPriority.LOWEST) + public static void registryFluidItems(final RegistryEvent.Register event) + { + final IForgeRegistry registry = event.getRegistry(); + + registerFluidItems(registry, FLUID_BLOCKS); + } + } + + + // ***************************************************************************** // + // Registry Overrides + // ***************************************************************************** // + private static Fluid createFluid(String name, int color, boolean hasFlowIcon, Consumer fluidPropertyApplier, Function blockFactory) + { + return nmd.primal.core.common.helper.RegistryHelper.createFluid(name, ModInfo.MOD_ID, FLUID_BLOCKS, color, hasFlowIcon, fluidPropertyApplier, blockFactory); } diff --git a/kfc/src/main/java/nmd/primal/forgecraft/init/recipes/CauldronRecipes.java b/kfc/src/main/java/nmd/primal/forgecraft/init/recipes/CauldronRecipes.java index 1a64fee1..95aa4e99 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/init/recipes/CauldronRecipes.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/init/recipes/CauldronRecipes.java @@ -103,7 +103,7 @@ public class CauldronRecipes ItemStack.EMPTY).setRecipeName(ModInfo.MOD_ID, stack.getUnlocalizedName().toString().concat("fortune")); } - static CauldronRecipe genLeechRecipe(ItemStack stack) { + /*static CauldronRecipe genLeechRecipe(ItemStack stack) { return new CauldronRecipe( 5, new FluidStack(FluidRegistry.WATER, 1000), @@ -112,14 +112,7 @@ public class CauldronRecipes RecipeHelper.buildList(stack), stack, ItemStack.EMPTY).setRecipeName(ModInfo.MOD_ID, stack.getUnlocalizedName().toString().concat("leech")); - } - static void genRecipesForStack(ItemStack stack){ - genSmiteRecipe(stack); - genBaneRecipe(stack); - genFireRecipe(stack); - genFortuneRecipe(stack); - genLeechRecipe(stack); - } + }*/ static void genRecipesForList(List list, IForgeRegistry recipes){ for(ItemStack s : list){ @@ -127,7 +120,6 @@ public class CauldronRecipes recipes.register(genBaneRecipe(s)); recipes.register(genFireRecipe(s)); recipes.register(genFortuneRecipe(s)); - recipes.register(genLeechRecipe(s)); } } diff --git a/kfc/src/main/java/nmd/primal/forgecraft/renders/blocks/TileWorkbenchRender.java b/kfc/src/main/java/nmd/primal/forgecraft/renders/blocks/TileWorkbenchRender.java index cdd99d51..24c51c91 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/renders/blocks/TileWorkbenchRender.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/renders/blocks/TileWorkbenchRender.java @@ -86,7 +86,7 @@ public class TileWorkbenchRender extends TileEntitySpecialRenderer