diff --git a/src/main/java/tschipp/carryon/CarryOn.java b/src/main/java/tschipp/carryon/CarryOn.java index 6ce0d27..4053781 100644 --- a/src/main/java/tschipp/carryon/CarryOn.java +++ b/src/main/java/tschipp/carryon/CarryOn.java @@ -34,7 +34,7 @@ public class CarryOn { public static CarryOn instance; public static final String MODID = "carryon"; - public static final String VERSION = "1.9"; + public static final String VERSION = "1.9.1"; public static final String NAME = "Carry On"; public static final String ACCEPTED_VERSIONS = "[1.10,1.11)"; public static final String UPDATE_JSON = "https://gist.githubusercontent.com/Tschipp/dccadee7c90d7a34e6e76a35d9d6fa2e/raw/"; diff --git a/src/main/java/tschipp/carryon/client/event/RenderEvents.java b/src/main/java/tschipp/carryon/client/event/RenderEvents.java index 04105a8..df8713d 100644 --- a/src/main/java/tschipp/carryon/client/event/RenderEvents.java +++ b/src/main/java/tschipp/carryon/client/event/RenderEvents.java @@ -208,30 +208,30 @@ public class RenderEvents GlStateManager.rotate(8, 1f, 0, 0); } - IBakedModel model = ModelOverridesHandler.hasCustomOverrideModel(state, tag) ? ModelOverridesHandler.getCustomOverrideModel(state, tag, world, player) : Minecraft.getMinecraft().getRenderItem().getItemModelWithOverrides(tileStack, world, player); + IBakedModel model = ModelOverridesHandler.hasCustomOverrideModel(state, tag) ? ModelOverridesHandler.getCustomOverrideModel(state, tag, world, player) : Minecraft.getMinecraft().getRenderItem().getItemModelWithOverrides(tileStack, world, player); - CarryOnOverride carryOverride = ScriptChecker.getOverride(player); - if (carryOverride != null) + CarryOnOverride carryOverride = ScriptChecker.getOverride(player); + if (carryOverride != null) + { + double[] translation = ScriptParseHelper.getXYZArray(carryOverride.getRenderTranslation()); + double[] rotation = ScriptParseHelper.getXYZArray(carryOverride.getRenderRotation()); + double[] scale = ScriptParseHelper.getScale(carryOverride.getRenderScale()); + Block b = StringParser.getBlock(carryOverride.getRenderNameBlock()); + if (b != null) { - double[] translation = ScriptParseHelper.getXYZArray(carryOverride.getRenderTranslation()); - double[] rotation = ScriptParseHelper.getXYZArray(carryOverride.getRenderRotation()); - double[] scale = ScriptParseHelper.getScale(carryOverride.getRenderScale()); - Block b = StringParser.getBlock(carryOverride.getRenderNameBlock()); - if (b != null) - { - ItemStack s = new ItemStack(b, 1, carryOverride.getRenderMeta()); - s.setTagCompound(carryOverride.getRenderNBT()); - model = Minecraft.getMinecraft().getRenderItem().getItemModelWithOverrides(s, world, player); - } - - GlStateManager.translate(translation[0], translation[1], translation[2]); - GlStateManager.rotate((float) rotation[0], 1, 0, 0); - GlStateManager.rotate((float) rotation[1], 0, 1, 0); - GlStateManager.rotate((float) rotation[2], 0, 0, 1); - GlStateManager.scale(scale[0], scale[1], scale[2]); - + ItemStack s = new ItemStack(b, 1, carryOverride.getRenderMeta()); + s.setTagCompound(carryOverride.getRenderNBT()); + model = Minecraft.getMinecraft().getRenderItem().getItemModelWithOverrides(s, world, player); } + GlStateManager.translate(translation[0], translation[1], translation[2]); + GlStateManager.rotate((float) rotation[0], 1, 0, 0); + GlStateManager.rotate((float) rotation[1], 0, 1, 0); + GlStateManager.rotate((float) rotation[2], 0, 0, 1); + GlStateManager.scale(scale[0], scale[1], scale[2]); + + } + int i = this.getBrightnessForRender(Minecraft.getMinecraft().thePlayer); int j = i % 65536; int k = i / 65536; @@ -239,34 +239,33 @@ public class RenderEvents GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); this.setLightmapDisabled(false); - Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); + Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); - if (ModelOverridesHandler.hasCustomOverrideModel(state, tag)) + if (ModelOverridesHandler.hasCustomOverrideModel(state, tag)) + { + Object override = ModelOverridesHandler.getOverrideObject(state, tag); + + if (override instanceof ItemStack) { - Object override = ModelOverridesHandler.getOverrideObject(state, tag); - if (override instanceof ItemStack) - { - - Minecraft.getMinecraft().getRenderItem().renderItem((ItemStack) override, model); - } - else - { - Minecraft.getMinecraft().getRenderItem().renderItem(tileStack == null ? stack : tileStack, model); - } + Minecraft.getMinecraft().getRenderItem().renderItem((ItemStack) override, model); } else { Minecraft.getMinecraft().getRenderItem().renderItem(tileStack == null ? stack : tileStack, model); } - - this.setLightmapDisabled(true); + } + else + { + Minecraft.getMinecraft().getRenderItem().renderItem(tileStack == null ? stack : tileStack, model); + } - if (perspective == 0) - { - event.setCanceled(true); - } + this.setLightmapDisabled(true); + if (perspective == 0) + { + event.setCanceled(true); + } GlStateManager.scale(1, 1, 1); GlStateManager.popMatrix(); @@ -281,15 +280,21 @@ public class RenderEvents RenderManager manager = mc.getRenderManager(); RenderPlayer renderPlayer = manager.getSkinMap().get(aplayer.getSkinType()); ModelPlayer modelPlayer = renderPlayer.getMainModel(); - modelPlayer.bipedLeftArm.isHidden = false; - modelPlayer.bipedRightArm.isHidden = false; - modelPlayer.bipedLeftArmwear.isHidden = false; - modelPlayer.bipedRightArmwear.isHidden = false; + + if (modelPlayer != null) + { + if (modelPlayer.bipedLeftArm != null && modelPlayer.bipedRightArm != null) + { + modelPlayer.bipedLeftArm.isHidden = false; + modelPlayer.bipedRightArm.isHidden = false; + modelPlayer.bipedLeftArmwear.isHidden = false; + modelPlayer.bipedRightArmwear.isHidden = false; + } + } } } } - @SideOnly(Side.CLIENT) private int getBrightnessForRender(EntityPlayer player) { @@ -406,7 +411,7 @@ public class RenderEvents } Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); - + if (ModelOverridesHandler.hasCustomOverrideModel(state, tag)) { Object override = ModelOverridesHandler.getOverrideObject(state, tag); diff --git a/src/main/java/tschipp/carryon/common/config/Configs.java b/src/main/java/tschipp/carryon/common/config/Configs.java index 4383b18..7d1205a 100644 --- a/src/main/java/tschipp/carryon/common/config/Configs.java +++ b/src/main/java/tschipp/carryon/common/config/Configs.java @@ -115,7 +115,7 @@ public class Configs { "tconstruct:*", "rustic:*", "botania:*", - "astralsorcery:*", + "astralsorcery:*", "quark:colored_bed_*", "immersiveengineering:*", "embers:block_furnace", @@ -135,8 +135,11 @@ public class Configs { "skyresources:*", "lootbags:*", "exsartagine:*", - "aquamunda:tank" - + "aquamunda:tank", + "opencomputers:*", + "malisisdoors:*", + "industrialforegoing:*", + "minecolonies:*", }; @Comment("Entities that cannot be picked up") diff --git a/src/main/java/tschipp/carryon/common/handler/PickupHandler.java b/src/main/java/tschipp/carryon/common/handler/PickupHandler.java index 76d2c80..f7664d0 100644 --- a/src/main/java/tschipp/carryon/common/handler/PickupHandler.java +++ b/src/main/java/tschipp/carryon/common/handler/PickupHandler.java @@ -4,10 +4,6 @@ import java.util.UUID; import javax.annotation.Nullable; -import com.feed_the_beast.ftbl.lib.math.BlockPosContainer; -import com.feed_the_beast.ftbu.api.chunks.BlockInteractionType; -import com.feed_the_beast.ftbu.api_impl.ClaimedChunkStorage; - import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; @@ -18,10 +14,12 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; -import net.minecraftforge.fml.common.Loader; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.player.AttackEntityEvent; +import net.minecraftforge.event.world.BlockEvent; +import tschipp.carryon.CarryOn; import tschipp.carryon.common.config.CarryOnConfig; import tschipp.carryon.common.item.ItemTile; import tschipp.carryon.common.scripting.CarryOnOverride; @@ -44,7 +42,7 @@ public class PickupHandler CarryOnOverride override = ScriptChecker.inspectBlock(world.getBlockState(pos), world, pos, tag); if (override != null) { - return (ScriptChecker.fulfillsConditions(override, player)) && handleFTBUtils((EntityPlayerMP) player, world, pos, state); + return (ScriptChecker.fulfillsConditions(override, player)) && handleProtections((EntityPlayerMP) player, world, pos, state); } else { @@ -54,6 +52,7 @@ public class PickupHandler { return false; } + CarryOn.LOGGER.info("Block is allowed"); } else { @@ -69,11 +68,12 @@ public class PickupHandler if (distance < Math.pow(CarryOnConfig.settings.maxDistance, 2)) { + if (!ItemTile.isLocked(pos, world)) { if (CarryOnConfig.settings.pickupAllBlocks ? true : tile != null) { - return true && handleFTBUtils((EntityPlayerMP) player, world, pos, state); + return true && handleProtections((EntityPlayerMP) player, world, pos, state); } } @@ -94,7 +94,7 @@ public class PickupHandler CarryOnOverride override = ScriptChecker.inspectEntity(toPickUp); if (override != null) { - return (ScriptChecker.fulfillsConditions(override, player)); + return (ScriptChecker.fulfillsConditions(override, player)) && handleProtections((EntityPlayerMP) player, toPickUp); } else { @@ -115,9 +115,9 @@ public class PickupHandler if (tame.getOwnerId() != null && tame.getOwnerId() != player.getUUID(player.getGameProfile())) return false; } - - return true; } + else + return true && handleProtections((EntityPlayerMP) player, toPickUp); } } @@ -153,8 +153,7 @@ public class PickupHandler if (owner != null && !owner.equals(playerID)) return false; } - - return true; + return true && handleProtections((EntityPlayerMP) player, toPickUp); } } } @@ -165,14 +164,30 @@ public class PickupHandler return false; } - private static boolean handleFTBUtils(EntityPlayerMP player, World world, BlockPos pos, IBlockState state) + private static boolean handleProtections(EntityPlayerMP player, World world, BlockPos pos, IBlockState state) { - if (Loader.isModLoaded("ftbu")) - { - BlockPosContainer container = new BlockPosContainer(world, pos, state); - return ClaimedChunkStorage.INSTANCE.canPlayerInteract((EntityPlayerMP) player, EnumHand.MAIN_HAND, container, BlockInteractionType.CNB_BREAK); - } - return true; + boolean breakable = true; + + BlockEvent.BreakEvent event = new BlockEvent.BreakEvent(world, pos, state, player); + MinecraftForge.EVENT_BUS.post(event); + + if (event.isCanceled()) + breakable = false; + + return breakable; + } + + private static boolean handleProtections(EntityPlayerMP player, Entity entity) + { + boolean canPickup = true; + + AttackEntityEvent event = new AttackEntityEvent(player, entity); + MinecraftForge.EVENT_BUS.post(event); + + if (event.isCanceled()) + canPickup = false; + + return canPickup; } } diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index c426175..cabe84f 100644 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -2,7 +2,7 @@ { "modid" : "carryon", "name" : "Carry On", - "version" : "1.9", "mcversion" : "1.10.2", + "version" : "1.9.1", "mcversion" : "1.10.2", "url" : "", "credits" : "Tschipp, Purplicious_Cow, cy4n", "authorList" : ["Tschipp, Purplicious_Cow, cy4n"],