From e9bba1cce6fe2951c46fcae88d5b6abd1d28e7f4 Mon Sep 17 00:00:00 2001 From: Cheeserolls Date: Sun, 19 Apr 2015 23:01:46 +0100 Subject: [PATCH] Make BOP dyes work on sheep and wolf collars --- .../common/handler/DyeEventHandler.java | 61 +++++++++++++++++++ .../common/init/ModHandlers.java | 2 + 2 files changed, 63 insertions(+) create mode 100644 src/main/java/biomesoplenty/common/handler/DyeEventHandler.java diff --git a/src/main/java/biomesoplenty/common/handler/DyeEventHandler.java b/src/main/java/biomesoplenty/common/handler/DyeEventHandler.java new file mode 100644 index 000000000..1cfc1146d --- /dev/null +++ b/src/main/java/biomesoplenty/common/handler/DyeEventHandler.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright 2014, the Biomes O' Plenty Team + * + * This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License. + * + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + ******************************************************************************/ + +package biomesoplenty.common.handler; + +import biomesoplenty.api.item.BOPItems; +import net.minecraft.entity.Entity; +import net.minecraft.entity.passive.EntitySheep; +import net.minecraft.entity.passive.EntityWolf; +import net.minecraft.item.EnumDyeColor; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraftforge.event.entity.player.EntityInteractEvent; +import net.minecraftforge.fml.common.eventhandler.Event.Result; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; + +public class DyeEventHandler +{ + @SubscribeEvent + public void entityInteract(EntityInteractEvent event) + { + ItemStack stack = event.entityPlayer.getCurrentEquippedItem(); + if (stack == null) {return;} + + Item item = stack.getItem(); + EnumDyeColor dyeColor; + if (item == BOPItems.black_dye) {dyeColor = EnumDyeColor.BLACK;} + else if (item == BOPItems.blue_dye) {dyeColor = EnumDyeColor.BLUE;} + else if (item == BOPItems.brown_dye) {dyeColor = EnumDyeColor.BROWN;} + else if (item == BOPItems.green_dye) {dyeColor = EnumDyeColor.GREEN;} + else if (item == BOPItems.white_dye) {dyeColor = EnumDyeColor.WHITE;} + else {return;} + + Entity target = event.target; + if (target instanceof EntityWolf) + { + EntityWolf wolf = (EntityWolf)target; + if (dyeColor != wolf.getCollarColor()) + { + wolf.setCollarColor(dyeColor); + if (!event.entityPlayer.capabilities.isCreativeMode) {--stack.stackSize;} + event.setResult(Result.ALLOW); + } + } + else if (target instanceof EntitySheep) + { + EntitySheep sheep = (EntitySheep)target; + if (!sheep.getSheared() && dyeColor != sheep.getFleeceColor()) + { + sheep.setFleeceColor(dyeColor); + if (!event.entityPlayer.capabilities.isCreativeMode) {--stack.stackSize;} + event.setResult(Result.ALLOW); + } + } + } +} \ No newline at end of file diff --git a/src/main/java/biomesoplenty/common/init/ModHandlers.java b/src/main/java/biomesoplenty/common/init/ModHandlers.java index 18726873b..9e63ffc7c 100644 --- a/src/main/java/biomesoplenty/common/init/ModHandlers.java +++ b/src/main/java/biomesoplenty/common/init/ModHandlers.java @@ -9,6 +9,7 @@ package biomesoplenty.common.init; import net.minecraftforge.common.MinecraftForge; +import biomesoplenty.common.handler.DyeEventHandler; import biomesoplenty.common.handler.GuiEventHandler; import biomesoplenty.common.handler.decoration.DecorateBiomeEventHandler; @@ -20,5 +21,6 @@ public class ModHandlers MinecraftForge.EVENT_BUS.register(decorateBiomeHandler); MinecraftForge.TERRAIN_GEN_BUS.register(decorateBiomeHandler); MinecraftForge.EVENT_BUS.register(new GuiEventHandler()); + MinecraftForge.EVENT_BUS.register(new DyeEventHandler()); } }