From e67669ab6eac9aa2225155935c802fa5488d31ec Mon Sep 17 00:00:00 2001 From: Tschipp Date: Sun, 19 Nov 2017 20:23:48 +0100 Subject: [PATCH 1/4] issue template --- docs/issue_template.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 docs/issue_template.md diff --git a/docs/issue_template.md b/docs/issue_template.md new file mode 100644 index 0000000..84514cb --- /dev/null +++ b/docs/issue_template.md @@ -0,0 +1,14 @@ + +### Expected Behavior + + +### Actual Behavior + + +### Steps to Reproduce + + +### Version of Minecraft, Carry On, Forge + + +### Screenshots encouraged From cf2b6001b176b93aa276eff39a7465a0f1498536 Mon Sep 17 00:00:00 2001 From: Tschipp Date: Mon, 22 Jan 2018 00:00:34 +0100 Subject: [PATCH 2/4] Tons of Bugfixes --- .../carryon/client/event/RenderEvents.java | 32 +++++++++++-------- .../carryon/common/config/Configs.java | 25 ++++++++------- .../carryon/common/event/ItemEvents.java | 26 +++++++-------- .../tschipp/carryon/common/item/ItemTile.java | 6 ++-- 4 files changed, 46 insertions(+), 43 deletions(-) diff --git a/src/main/java/tschipp/carryon/client/event/RenderEvents.java b/src/main/java/tschipp/carryon/client/event/RenderEvents.java index 87ca614..e4e7438 100644 --- a/src/main/java/tschipp/carryon/client/event/RenderEvents.java +++ b/src/main/java/tschipp/carryon/client/event/RenderEvents.java @@ -16,6 +16,8 @@ import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.block.model.IBakedModel; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.entity.RenderPlayer; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.client.resources.DefaultPlayerSkin; import net.minecraft.client.settings.GameSettings; import net.minecraft.client.settings.KeyBinding; @@ -29,11 +31,13 @@ import net.minecraft.util.EnumHand; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; +import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; import net.minecraftforge.client.event.GuiOpenEvent; import net.minecraftforge.client.event.MouseEvent; import net.minecraftforge.client.event.RenderHandEvent; import net.minecraftforge.client.event.RenderPlayerEvent; +import net.minecraftforge.client.event.RenderWorldLastEvent; import net.minecraftforge.fml.common.Loader; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.gameevent.InputEvent; @@ -183,12 +187,13 @@ public class RenderEvents AbstractClientPlayer aplayer = (AbstractClientPlayer) player; ItemStack stack = player.getHeldItemMainhand(); int perspective = Minecraft.getMinecraft().gameSettings.thirdPersonView; - - if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack)) + boolean f1 = Minecraft.getMinecraft().gameSettings.hideGUI; + + if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack) && perspective == 0 && !f1) { - if(Loader.isModLoaded("realrender") || Loader.isModLoaded("rfpr")) + if (Loader.isModLoaded("realrender") || Loader.isModLoaded("rfpr")) return; - + Block block = ItemTile.getBlock(stack); NBTTagCompound tag = ItemTile.getTileData(stack); IBlockState state = ItemTile.getBlockState(stack); @@ -208,8 +213,6 @@ public class RenderEvents GlStateManager.rotate(8, 1f, 0, 0); } - if (perspective == 0) - { IBakedModel model = ModelOverridesHandler.hasCustomOverrideModel(state, tag) ? ModelOverridesHandler.getCustomOverrideModel(state, tag, world, player) : Minecraft.getMinecraft().getRenderItem().getItemModelWithOverrides(tileStack, world, player); CarryOnOverride carryOverride = ScriptChecker.getOverride(player); @@ -241,6 +244,8 @@ public class RenderEvents GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); this.setLightmapDisabled(false); + Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); + if (ModelOverridesHandler.hasCustomOverrideModel(state, tag)) { Object override = ModelOverridesHandler.getOverrideObject(state, tag); @@ -259,7 +264,7 @@ public class RenderEvents { Minecraft.getMinecraft().getRenderItem().renderItem(tileStack.isEmpty() ? stack : tileStack, model); } - + this.setLightmapDisabled(true); if (perspective == 0) @@ -267,7 +272,6 @@ public class RenderEvents event.setCanceled(true); } - } GlStateManager.scale(1, 1, 1); GlStateManager.popMatrix(); @@ -290,6 +294,7 @@ public class RenderEvents } } + @SideOnly(Side.CLIENT) private int getBrightnessForRender(EntityPlayer player) { @@ -361,19 +366,18 @@ public class RenderEvents GlStateManager.translate(xOffset, yOffset, zOffset); GlStateManager.scale(0.6, 0.6, 0.6); - if (CarryOnConfig.settings.facePlayer ? !isChest(block) : isChest(block)) { GlStateManager.rotate(rotation, 0, 1.0f, 0); GlStateManager.translate(0, 1.6, 0.65); - if((Loader.isModLoaded("realrender") || Loader.isModLoaded("rfpr")) && Minecraft.getMinecraft().gameSettings.thirdPersonView == 0) + if ((Loader.isModLoaded("realrender") || Loader.isModLoaded("rfpr")) && Minecraft.getMinecraft().gameSettings.thirdPersonView == 0) GlStateManager.translate(0, 0, -0.4); } else { GlStateManager.rotate(rotation + 180, 0, 1.0f, 0); GlStateManager.translate(0, 1.6, -0.65); - if((Loader.isModLoaded("realrender") || Loader.isModLoaded("rfpr")) && Minecraft.getMinecraft().gameSettings.thirdPersonView == 0) + if ((Loader.isModLoaded("realrender") || Loader.isModLoaded("rfpr")) && Minecraft.getMinecraft().gameSettings.thirdPersonView == 0) GlStateManager.translate(0, 0, 0.4); } @@ -406,6 +410,8 @@ public class RenderEvents } + Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); + if (ModelOverridesHandler.hasCustomOverrideModel(state, tag)) { Object override = ModelOverridesHandler.getOverrideObject(state, tag); @@ -506,7 +512,7 @@ public class RenderEvents this.fakeLeftArmwear.isHidden = false; this.fakeRightArm.isHidden = false; this.fakeRightArmwear.isHidden = false; - + Minecraft.getMinecraft().getTextureManager().bindTexture(skinLoc); if (aplayer.getSkinType().equals("default")) @@ -550,7 +556,6 @@ public class RenderEvents model.bipedRightArm.isHidden = false; model.bipedRightArmwear.isHidden = false; } - if (!renderLeft) { @@ -559,7 +564,6 @@ public class RenderEvents model.bipedLeftArm.isHidden = false; model.bipedLeftArmwear.isHidden = false; } - if (rotLeft != null) { diff --git a/src/main/java/tschipp/carryon/common/config/Configs.java b/src/main/java/tschipp/carryon/common/config/Configs.java index 958b2df..434c811 100644 --- a/src/main/java/tschipp/carryon/common/config/Configs.java +++ b/src/main/java/tschipp/carryon/common/config/Configs.java @@ -131,6 +131,8 @@ public class Configs { "animania:hamster", "animania:ferret*", "animania:hedgehog*", + "animania:cart", + "animania:wagon", "mynko:*" }; } @@ -154,6 +156,7 @@ public class Configs { "minecraft:flower_pot->(block)minecraft:flower_pot", "minecraft:leaves2->(item)minecraft:leaves2", "minecraft:reeds->(block)minecraft:reeds", + "minecraft:daylight_detector_inverted->minecraft:daylight_detector", "quark:custom_chest{type:\"spruce\"}->quark:custom_chest;0", "quark:custom_chest{type:\"birch\"}->quark:custom_chest;1", "quark:custom_chest{type:\"jungle\"}->quark:custom_chest;2", @@ -190,17 +193,17 @@ public class Configs { "storagedrawers:basicdrawers;4{Mat:\"acacia\"}->storagedrawers:basicdrawers;4{material:\"acacia\"}", "storagedrawers:basicdrawers;4{Mat:\"dark_oak\"}->storagedrawers:basicdrawers;4{material:\"dark_oak\"}", "animania:block_nest->(block)animania:block_nest", - "animania:cheese_mold;0->(block)cheese_mold;0", - "animania:cheese_mold;1->(block)cheese_mold;1", - "animania:cheese_mold;2->(block)cheese_mold;2", - "animania:cheese_mold;3->(block)cheese_mold;3", - "animania:cheese_mold;4->(block)cheese_mold;4", - "animania:cheese_mold;5->(block)cheese_mold;5", - "animania:cheese_mold;6->(block)cheese_mold;6", - "animania:cheese_mold;7->(block)cheese_mold;7", - "animania:cheese_mold;8->(block)cheese_mold;8", - "animania:cheese_mold;9->(block)cheese_mold;9", - "animania:cheese_mold;10->(block)cheese_mold;10", + "animania:cheese_mold;0->(block)animania:cheese_mold;0", + "animania:cheese_mold;1->(block)animania:cheese_mold;1", + "animania:cheese_mold;2->(block)animania:cheese_mold;2", + "animania:cheese_mold;3->(block)animania:cheese_mold;3", + "animania:cheese_mold;4->(block)animania:cheese_mold;4", + "animania:cheese_mold;5->(block)animania:cheese_mold;5", + "animania:cheese_mold;6->(block)animania:cheese_mold;6", + "animania:cheese_mold;7->(block)animania:cheese_mold;7", + "animania:cheese_mold;8->(block)animania:cheese_mold;8", + "animania:cheese_mold;9->(block)animania:cheese_mold;9", + "animania:cheese_mold;10->(block)animania:cheese_mold;10", }; } diff --git a/src/main/java/tschipp/carryon/common/event/ItemEvents.java b/src/main/java/tschipp/carryon/common/event/ItemEvents.java index d3cae5c..1edbd99 100644 --- a/src/main/java/tschipp/carryon/common/event/ItemEvents.java +++ b/src/main/java/tschipp/carryon/common/event/ItemEvents.java @@ -93,9 +93,9 @@ public class ItemEvents eitem.setEntityItemStack(ItemStack.EMPTY); } } - + } - + @SubscribeEvent public void onPlayerLogin(PlayerLoggedInEvent event) { @@ -127,7 +127,6 @@ public class ItemEvents } } - @SubscribeEvent public void onEntityStartTracking(StartTracking event) @@ -163,17 +162,16 @@ public class ItemEvents } } - - + @SubscribeEvent public void harvestSpeed(BreakSpeed event) { EntityPlayer player = event.getEntityPlayer(); - if(player != null) + if (player != null) { ItemStack stack = player.getHeldItemMainhand(); - if(!stack.isEmpty() && (stack.getItem() == RegistrationHandler.itemTile || stack.getItem() == RegistrationHandler.itemEntity)) - event.setNewSpeed(0); + if (!stack.isEmpty() && (stack.getItem() == RegistrationHandler.itemTile || stack.getItem() == RegistrationHandler.itemEntity)) + event.setNewSpeed(0); } } @@ -238,7 +236,7 @@ public class ItemEvents } } } - + @SubscribeEvent public void onRespawn(PlayerEvent.Clone event) { @@ -248,18 +246,18 @@ public class ItemEvents GameRules rules = player.world.getGameRules(); boolean keepInv = rules.getBoolean("keepInventory"); boolean wasCarrying = player.inventory.hasItemStack(new ItemStack(RegistrationHandler.itemTile)) || player.inventory.hasItemStack(new ItemStack(RegistrationHandler.itemEntity)); - - if((wasDead ? keepInv : true) && wasCarrying) + + if ((wasDead ? keepInv : true) && wasCarrying) { int carrySlot = original.inventory.currentItem; - + ItemStack stack = player.inventory.removeStackFromSlot(carrySlot); World world = player.world; - + EntityItem item = new EntityItem(world); item.setEntityItemStack(stack); BlockPos pos = original.getBedLocation(); - if(pos == null) + if (pos == null) pos = player.getPosition(); item.setPosition(pos.getX(), pos.getY(), pos.getZ()); world.spawnEntity(item); diff --git a/src/main/java/tschipp/carryon/common/item/ItemTile.java b/src/main/java/tschipp/carryon/common/item/ItemTile.java index c8fc3cb..154e437 100644 --- a/src/main/java/tschipp/carryon/common/item/ItemTile.java +++ b/src/main/java/tschipp/carryon/common/item/ItemTile.java @@ -7,8 +7,7 @@ import java.util.List; import javax.annotation.Nullable; import net.minecraft.block.Block; -import net.minecraft.block.BlockDirectional; -import net.minecraft.block.BlockHorizontal; +import net.minecraft.block.BlockStairs; import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.PropertyDirection; import net.minecraft.block.state.IBlockState; @@ -31,7 +30,6 @@ import net.minecraft.util.text.TextComponentString; import net.minecraft.util.text.TextFormatting; import net.minecraft.util.text.event.ClickEvent; import net.minecraft.util.text.event.ClickEvent.Action; -import net.minecraft.util.text.translation.I18n; import net.minecraft.world.World; import net.minecraftforge.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraftforge.fml.common.registry.GameRegistry; @@ -119,7 +117,7 @@ public class ItemTile extends Item if (prop instanceof PropertyDirection && this.equal(allowedValues, EnumFacing.HORIZONTALS)) { - world.setBlockState(pos2, containedstate.withProperty(prop, facing2.getOpposite())); + world.setBlockState(pos2, containedstate.withProperty(prop, containedblock instanceof BlockStairs ? facing2 : facing2.getOpposite())); set = true; } else if (prop instanceof PropertyDirection && this.equal(allowedValues, EnumFacing.VALUES)) From 1b97e5a62a33cabc3ed1119cb89e7439f7e58b81 Mon Sep 17 00:00:00 2001 From: Tschipp Date: Mon, 22 Jan 2018 00:20:12 +0100 Subject: [PATCH 3/4] Config Options --- src/main/java/tschipp/carryon/CarryOn.java | 2 +- .../carryon/common/config/Configs.java | 6 +++++ .../carryon/common/event/ItemEvents.java | 26 ++++++++++++++++++- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/main/java/tschipp/carryon/CarryOn.java b/src/main/java/tschipp/carryon/CarryOn.java index b5bdf08..9b935c3 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.7"; + public static final String VERSION = "1.7.1"; public static final String NAME = "Carry On"; public static final String ACCEPTED_VERSIONS = "[1.11,1.12)"; public static final String UPDATE_JSON = "https://gist.githubusercontent.com/Tschipp/dccadee7c90d7a34e6e76a35d9d6fa2e/raw/"; diff --git a/src/main/java/tschipp/carryon/common/config/Configs.java b/src/main/java/tschipp/carryon/common/config/Configs.java index 434c811..41f4a24 100644 --- a/src/main/java/tschipp/carryon/common/config/Configs.java +++ b/src/main/java/tschipp/carryon/common/config/Configs.java @@ -55,6 +55,12 @@ public class Configs { @Comment("Use Whitelist instead of Blacklist for Entities") public boolean useWhitelistEntities=false; + @Comment("Whether the player can break blocks while carrying or not") + public boolean breakBlocksWhileCarrying=false; + + @Comment("Whether the player drops the carried object when hit or not") + public boolean dropCarriedWhenHit=false; + @Config.RequiresMcRestart() @Comment("Use custom Pickup Scripts. Having this set to false, will not allow you to run scripts, but will save you some performance") public boolean useScripts=false; diff --git a/src/main/java/tschipp/carryon/common/event/ItemEvents.java b/src/main/java/tschipp/carryon/common/event/ItemEvents.java index 1edbd99..9222d73 100644 --- a/src/main/java/tschipp/carryon/common/event/ItemEvents.java +++ b/src/main/java/tschipp/carryon/common/event/ItemEvents.java @@ -3,6 +3,7 @@ package tschipp.carryon.common.event; import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; @@ -20,6 +21,7 @@ import net.minecraft.util.text.event.ClickEvent.Action; import net.minecraft.world.GameRules; import net.minecraft.world.World; import net.minecraftforge.event.entity.EntityJoinWorldEvent; +import net.minecraftforge.event.entity.living.LivingAttackEvent; import net.minecraftforge.event.entity.player.PlayerEvent; import net.minecraftforge.event.entity.player.PlayerEvent.BreakSpeed; import net.minecraftforge.event.entity.player.PlayerEvent.StartTracking; @@ -31,6 +33,7 @@ import net.minecraftforge.fml.common.gameevent.PlayerEvent.PlayerLoggedInEvent; import net.minecraftforge.fml.common.network.NetworkRegistry.TargetPoint; import tschipp.carryon.CarryOn; import tschipp.carryon.client.keybinds.CarryOnKeybinds; +import tschipp.carryon.common.config.CarryOnConfig; import tschipp.carryon.common.handler.PickupHandler; import tschipp.carryon.common.handler.RegistrationHandler; import tschipp.carryon.common.item.ItemEntity; @@ -167,7 +170,7 @@ public class ItemEvents public void harvestSpeed(BreakSpeed event) { EntityPlayer player = event.getEntityPlayer(); - if (player != null) + if (player != null && !CarryOnConfig.settings.breakBlocksWhileCarrying) { ItemStack stack = player.getHeldItemMainhand(); if (!stack.isEmpty() && (stack.getItem() == RegistrationHandler.itemTile || stack.getItem() == RegistrationHandler.itemEntity)) @@ -175,6 +178,27 @@ public class ItemEvents } } + @SubscribeEvent + public void playerAttack(LivingAttackEvent event) + { + EntityLivingBase eliving = event.getEntityLiving(); + if (eliving instanceof EntityPlayer && CarryOnConfig.settings.dropCarriedWhenHit) + { + EntityPlayer player = (EntityPlayer) eliving; + ItemStack stack = player.getHeldItemMainhand(); + if (!stack.isEmpty() && (stack.getItem() == RegistrationHandler.itemTile || stack.getItem() == RegistrationHandler.itemEntity)) + { + if (!player.world.isRemote) + { + player.setHeldItem(EnumHand.MAIN_HAND, ItemStack.EMPTY); + EntityItem item = new EntityItem(player.world, player.posX, player.posY, player.posZ, stack); + player.world.spawnEntity(item); + } + } + + } + } + @SubscribeEvent public void onBlockRightClick(PlayerInteractEvent.RightClickBlock event) throws InstantiationException, IllegalAccessException { From 60565623264fb913c1957a2efa9a19bec1abafd3 Mon Sep 17 00:00:00 2001 From: Tschipp Date: Mon, 22 Jan 2018 22:29:02 +0100 Subject: [PATCH 4/4] Improvements --- .../carryon/common/config/Configs.java | 4 +-- .../carryon/common/event/ItemEvents.java | 28 ++++++++++++++++++- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/src/main/java/tschipp/carryon/common/config/Configs.java b/src/main/java/tschipp/carryon/common/config/Configs.java index 41f4a24..c028518 100644 --- a/src/main/java/tschipp/carryon/common/config/Configs.java +++ b/src/main/java/tschipp/carryon/common/config/Configs.java @@ -55,8 +55,8 @@ public class Configs { @Comment("Use Whitelist instead of Blacklist for Entities") public boolean useWhitelistEntities=false; - @Comment("Whether the player can break blocks while carrying or not") - public boolean breakBlocksWhileCarrying=false; + @Comment("Whether the player can hit blocks and entities while carrying or not") + public boolean hitWhileCarrying=false; @Comment("Whether the player drops the carried object when hit or not") public boolean dropCarriedWhenHit=false; diff --git a/src/main/java/tschipp/carryon/common/event/ItemEvents.java b/src/main/java/tschipp/carryon/common/event/ItemEvents.java index 9222d73..40d26e5 100644 --- a/src/main/java/tschipp/carryon/common/event/ItemEvents.java +++ b/src/main/java/tschipp/carryon/common/event/ItemEvents.java @@ -22,10 +22,12 @@ import net.minecraft.world.GameRules; import net.minecraft.world.World; import net.minecraftforge.event.entity.EntityJoinWorldEvent; import net.minecraftforge.event.entity.living.LivingAttackEvent; +import net.minecraftforge.event.entity.player.AttackEntityEvent; import net.minecraftforge.event.entity.player.PlayerEvent; import net.minecraftforge.event.entity.player.PlayerEvent.BreakSpeed; import net.minecraftforge.event.entity.player.PlayerEvent.StartTracking; import net.minecraftforge.event.entity.player.PlayerInteractEvent; +import net.minecraftforge.event.world.BlockEvent.BreakEvent; import net.minecraftforge.fml.common.eventhandler.Event.Result; import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; @@ -170,7 +172,7 @@ public class ItemEvents public void harvestSpeed(BreakSpeed event) { EntityPlayer player = event.getEntityPlayer(); - if (player != null && !CarryOnConfig.settings.breakBlocksWhileCarrying) + if (player != null && !CarryOnConfig.settings.hitWhileCarrying) { ItemStack stack = player.getHeldItemMainhand(); if (!stack.isEmpty() && (stack.getItem() == RegistrationHandler.itemTile || stack.getItem() == RegistrationHandler.itemEntity)) @@ -178,6 +180,30 @@ public class ItemEvents } } + @SubscribeEvent + public void attackEntity(AttackEntityEvent event) + { + EntityPlayer player = event.getEntityPlayer(); + ItemStack stack = player.getHeldItemMainhand(); + if (!stack.isEmpty() && !CarryOnConfig.settings.hitWhileCarrying && (stack.getItem() == RegistrationHandler.itemTile || stack.getItem() == RegistrationHandler.itemEntity)) + { + event.setCanceled(true); + } + } + + @SubscribeEvent + public void harvestSpeed(BreakEvent event) + { + EntityPlayer player = event.getPlayer(); + if (player != null && !CarryOnConfig.settings.hitWhileCarrying) + { + ItemStack stack = player.getHeldItemMainhand(); + if (!stack.isEmpty() && (stack.getItem() == RegistrationHandler.itemTile || stack.getItem() == RegistrationHandler.itemEntity)) + event.setCanceled(true); + } + } + + @SubscribeEvent public void playerAttack(LivingAttackEvent event) {