From 27bd576c6ef15f930a75ea9a2f1a5cae882d228f Mon Sep 17 00:00:00 2001 From: Sen Date: Sat, 13 Sep 2025 13:55:18 +0200 Subject: [PATCH] alter item limiting --- .../client/gui/container/GuiContainer.java | 34 +-- .../java/client/gui/container/GuiRepair.java | 8 +- .../java/client/renderer/EffectRenderer.java | 1 - .../common/ai/EntityAIControlledByPlayer.java | 12 - .../java/common/ai/EntityAITakePlace.java | 2 +- common/src/main/java/common/block/Block.java | 1 - .../java/common/block/natural/BlockSnow.java | 1 - .../java/common/block/tech/BlockAnvil.java | 5 +- .../main/java/common/block/tech/BlockTNT.java | 6 +- .../block/tech/BlockToggleableLight.java | 4 +- .../common/block/tech/BlockUnlitTorch.java | 6 +- .../src/main/java/common/effect/Effect.java | 33 +- .../java/common/enchantment/Enchantment.java | 30 -- .../common/enchantment/EnchantmentType.java | 5 - .../java/common/entity/animal/EntityBat.java | 1 - .../java/common/entity/animal/EntityCat.java | 1 - .../java/common/entity/animal/EntityCow.java | 1 - .../java/common/entity/animal/EntityFox.java | 1 - .../common/entity/animal/EntityHorse.java | 1 - .../common/entity/animal/EntityMouse.java | 2 - .../java/common/entity/animal/EntityPig.java | 1 - .../common/entity/animal/EntityRabbit.java | 1 - .../common/entity/animal/EntitySheep.java | 1 - .../java/common/entity/animal/EntityWolf.java | 1 - .../java/common/entity/item/EntityItem.java | 8 +- .../java/common/entity/npc/EntityHaunter.java | 1 - .../java/common/entity/npc/EntityNPC.java | 69 +---- .../entity/projectile/FishConstants.java | 8 +- .../common/entity/projectile/RngFishable.java | 25 -- .../common/entity/types/EntityLiving.java | 29 -- .../java/common/init/CraftingRegistry.java | 20 +- .../main/java/common/init/ItemRegistry.java | 6 +- common/src/main/java/common/init/Items.java | 2 - .../main/java/common/init/ToolMaterial.java | 12 - .../main/java/common/inventory/Container.java | 61 ++-- .../inventory/ContainerEnchantment.java | 2 +- .../inventory/ContainerEntityInventory.java | 8 + ...epair.java => ContainerMagicCombiner.java} | 287 ++++++------------ .../common/inventory/ContainerPlayer.java | 2 +- .../src/main/java/common/inventory/Slot.java | 4 +- .../src/main/java/common/item/CheatTab.java | 2 +- common/src/main/java/common/item/Item.java | 36 +-- .../src/main/java/common/item/ItemStack.java | 134 +------- common/src/main/java/common/item/RngLoot.java | 12 +- .../item/consumable/ItemMilkBottle.java | 1 - .../common/item/consumable/ItemPotion.java | 1 - .../common/item/material/ItemAnimalArmor.java | 1 - .../java/common/item/material/ItemArmor.java | 7 +- .../java/common/item/material/ItemBook.java | 5 - .../java/common/item/material/ItemBucket.java | 7 +- .../item/projectile/ItemChargedOrb.java | 10 +- .../java/common/item/spawner/ItemBoat.java | 1 - .../common/item/spawner/ItemMinecart.java | 1 - .../java/common/item/tool/ItemCamera.java | 1 - .../java/common/item/tool/ItemEditor.java | 1 - .../main/java/common/item/tool/ItemFire.java | 3 - .../java/common/item/tool/ItemFishingRod.java | 2 - .../main/java/common/item/tool/ItemHoe.java | 2 - .../java/common/item/tool/ItemMagnet.java | 1 - .../java/common/item/tool/ItemSaddle.java | 11 - .../common/item/tool/ItemSpaceNavigator.java | 1 - .../main/java/common/item/tool/ItemTool.java | 15 - .../main/java/common/item/tool/ItemWand.java | 1 - .../common/item/tool/ItemWeatherToken.java | 1 - .../main/java/common/item/tool/ItemWhip.java | 31 +- .../main/java/common/item/weapon/ItemBow.java | 2 - .../common/item/weapon/ItemExterminator.java | 1 - .../java/common/item/weapon/ItemGunBase.java | 4 - .../java/common/network/PacketBuffer.java | 6 - .../main/java/common/tileentity/Device.java | 4 - .../java/common/tileentity/DeviceFurnace.java | 2 +- .../common/tileentity/TileEntityItemPipe.java | 33 +- common/src/main/java/common/vars/Vars.java | 4 +- .../server/command/CommandEnvironment.java | 1 - .../server/command/commands/CommandItem.java | 23 +- .../server/command/commands/CommandMore.java | 12 +- .../command/commands/CommandRepair.java | 59 ---- .../src/main/java/server/network/Player.java | 25 +- 78 files changed, 234 insertions(+), 933 deletions(-) rename common/src/main/java/common/inventory/{ContainerRepair.java => ContainerMagicCombiner.java} (54%) delete mode 100644 server/src/main/java/server/command/commands/CommandRepair.java diff --git a/client/src/main/java/client/gui/container/GuiContainer.java b/client/src/main/java/client/gui/container/GuiContainer.java index 75744ac8..53c7ecef 100755 --- a/client/src/main/java/client/gui/container/GuiContainer.java +++ b/client/src/main/java/client/gui/container/GuiContainer.java @@ -169,17 +169,6 @@ public abstract class GuiContainer extends Gui } } - if(stack.getItem().isDamageable()) { - list.add(String.format("Haltbarkeit: %d" + (stack.isItemDamaged() ? " / %d" : ""), - stack.isItemDamaged() ? (stack.getItem().getMaxDamage() - stack.getItemDamage()) : stack.getItem().getMaxDamage(), stack.getItem().getMaxDamage())); - } - - if(stack.getRepairCost() > 0) - list.add("Reparaturkosten: " + stack.getRepairCost() + " Mana"); - - if(stack.getItem().getMaxAmount() != 1) - list.add("Stapelbar"); - list.add("Gewicht: " + (stack.getSize() != 1 ? (stack.getSize() * stack.getItem().getWeight()) + " (" + stack.getSize() + "x " + stack.getItem().getWeight() + ")" : stack.getItem().getWeight())); if(stack.getItem().getCategory() != null) @@ -615,7 +604,7 @@ public abstract class GuiContainer extends Gui if(this.cheatStack != null) { Slot slot = this.getSlotAtPosition(mouseX, mouseY); if((mouseButton == 0 || mouseButton == 1) && slot != null && this.gm.player != null && slot.canCheatItem()) - this.gm.player.client.addToSendQueue(new CPacketCheat(this.cheatStack.getItem(), slot.slotNumber, mouseButton == 0 && this.cheatStack.isStacked())); + this.gm.player.client.addToSendQueue(new CPacketCheat(this.cheatStack.getItem(), slot.slotNumber, mouseButton == 0 && this.cheatStack.getSize() > 1)); if(mouseButton != 1 && !this.gm.ctrl()) this.cheatStack = null; return; @@ -689,7 +678,7 @@ public abstract class GuiContainer extends Gui { for (Slot slot2 : this.inventorySlots.inventorySlots) { - if (slot2 != null && slot2.canTakeStack(this.gm.player) && slot2.getHasStack() && slot2.inventory == slot.inventory && Container.canAddItemToSlot(slot2, this.shiftClickedSlot, true)) + if (slot2 != null && slot2.canTakeStack(this.gm.player) && slot2.getHasStack() && slot2.inventory == slot.inventory && Container.canAddItemToSlot(slot2, this.shiftClickedSlot)) { this.handleMouseClick(slot2, slot2.slotNumber, state, 1); } @@ -802,7 +791,7 @@ public abstract class GuiContainer extends Gui renderItemOverlay(stack, xPosition, yPosition, text, 0, 0); } - public static void renderItemOverlay(ItemStack stack, int xPosition, int yPosition, String text, int bar2, int bar2max) + public static void renderItemOverlay(ItemStack stack, int xPosition, int yPosition, String text, int bar, int barMax) { if (stack != null) { @@ -819,19 +808,10 @@ public abstract class GuiContainer extends Gui Font.unset(); } - if (stack.isItemDamaged()) + if (bar > 0) { - int j = (int)Math.round(28.0D - (double)stack.getItemDamage() * 28.0D / (double)stack.getMaxDamage()); - int i = (int)Math.round(255.0D - (double)stack.getItemDamage() * 255.0D / (double)stack.getMaxDamage()); - draw(xPosition + 2, yPosition + 26, 28, 4, 0, 0, 0); - draw(xPosition + 2, yPosition + 26, 26, 2, (255 - i) / 4, 64, 0); - draw(xPosition + 2, yPosition + 26, j, 2, 255 - i, i, 0); - } - - if (bar2 > 0) - { - int j = (int)Math.round(28.0D - (double)bar2 * 28.0D / (double)bar2max); - int i = (int)Math.round(255.0D - (double)bar2 * 255.0D / (double)bar2max); + int j = (int)Math.round(28.0D - (double)bar * 28.0D / (double)barMax); + int i = (int)Math.round(255.0D - (double)bar * 255.0D / (double)barMax); draw(xPosition + 2, yPosition + 4, 28, 4, 0, 0, 0); draw(xPosition + 2, yPosition + 4, 26, 2, (255 - i) / 8, (255 - i) / 16, i / 4); draw(xPosition + 2 + 28 - j, yPosition + 4, j, 2, (255 - i) / 2, (255 - i) / 4, i); @@ -933,7 +913,7 @@ public abstract class GuiContainer extends Gui this.gm.player.client.addToSendQueue(new CPacketCheat(ITEM_LIST.get(idx).getItem(), slot < 0 ? slot : -2 - slot, full)); } else { - this.cheatStack = ITEM_LIST.get(idx).copy(full ? Math.min(ITEM_LIST.get(idx).getMaxStackSize(), 100) : 1); + this.cheatStack = ITEM_LIST.get(idx).copy(full ? 100 : 1); } return true; } diff --git a/client/src/main/java/client/gui/container/GuiRepair.java b/client/src/main/java/client/gui/container/GuiRepair.java index 0c04c4c6..4fb86f3d 100755 --- a/client/src/main/java/client/gui/container/GuiRepair.java +++ b/client/src/main/java/client/gui/container/GuiRepair.java @@ -2,19 +2,19 @@ package client.gui.container; import client.gui.element.Label; import common.entity.npc.EntityNPC; -import common.inventory.ContainerRepair; +import common.inventory.ContainerMagicCombiner; import common.util.Color; import common.world.World; public class GuiRepair extends GuiContainer { - private ContainerRepair anvil; + private ContainerMagicCombiner anvil; private Label info; private EntityNPC playerInv; public GuiRepair(EntityNPC inv, World world) { - super(new ContainerRepair(inv, world)); + super(new ContainerMagicCombiner(inv, world)); this.playerInv = inv; - this.anvil = (ContainerRepair)this.inventorySlots; + this.anvil = (ContainerMagicCombiner)this.inventorySlots; } public int getControlAreaWidth() { diff --git a/client/src/main/java/client/renderer/EffectRenderer.java b/client/src/main/java/client/renderer/EffectRenderer.java index 955fbcb6..23006d59 100755 --- a/client/src/main/java/client/renderer/EffectRenderer.java +++ b/client/src/main/java/client/renderer/EffectRenderer.java @@ -23,7 +23,6 @@ import common.item.consumable.ItemPotion; import common.rng.Random; import common.util.LocalPos; import common.util.ExtMath; -import common.util.Facing; import common.util.ParticleType; import common.world.State; import common.world.World; diff --git a/common/src/main/java/common/ai/EntityAIControlledByPlayer.java b/common/src/main/java/common/ai/EntityAIControlledByPlayer.java index a86f5182..387ea7ef 100755 --- a/common/src/main/java/common/ai/EntityAIControlledByPlayer.java +++ b/common/src/main/java/common/ai/EntityAIControlledByPlayer.java @@ -6,8 +6,6 @@ import common.block.artificial.BlockStairs; import common.entity.npc.EntityNPC; import common.entity.types.EntityLiving; import common.init.Blocks; -import common.init.Items; -import common.item.ItemStack; import common.pathfinding.WalkNodeProcessor; import common.util.LocalPos; import common.util.ExtMath; @@ -170,16 +168,6 @@ public class EntityAIControlledByPlayer extends EntityAIBase } } - if (/* !entityplayer.creative && */ this.currentSpeed >= this.maxSpeed * 0.5F && this.thisEntity.getRNG().floatv() < 0.006F && !this.speedBoosted) - { - ItemStack itemstack = entityplayer.getHeldItem(); - - if (itemstack != null && itemstack.getItem() == Items.whip) - { - itemstack.damage(1, entityplayer); - } - } - this.thisEntity.moveEntityWithHeading(0.0F, f1); } diff --git a/common/src/main/java/common/ai/EntityAITakePlace.java b/common/src/main/java/common/ai/EntityAITakePlace.java index 052a5998..731f3155 100755 --- a/common/src/main/java/common/ai/EntityAITakePlace.java +++ b/common/src/main/java/common/ai/EntityAITakePlace.java @@ -93,7 +93,7 @@ public class EntityAITakePlace extends EntityAIBase Block block = state.getBlock(); if (STEALABLE.containsKey(state) && - (this.entity.getHeldItem() == null || (STEALABLE.get(state) == this.entity.getHeldItem().getItem() && !this.entity.getHeldItem().isFull()))) + (this.entity.getHeldItem() == null || (STEALABLE.get(state) == this.entity.getHeldItem().getItem()))) { this.entity.getLookHelper().setLookPosition((double)i + 0.5, (double)j + 0.5, (double)k + 0.5, 10.0F, (float)this.entity.getVerticalFaceSpeed()); diff --git a/common/src/main/java/common/block/Block.java b/common/src/main/java/common/block/Block.java index 8b2d6d47..5be3514c 100755 --- a/common/src/main/java/common/block/Block.java +++ b/common/src/main/java/common/block/Block.java @@ -35,7 +35,6 @@ import common.item.CheatTab; import common.item.Item; import common.item.ItemStack; import common.item.ItemWeight; -import common.log.Log; import common.model.Model; import common.model.Model.ModelProvider; import common.model.GuiPosition; diff --git a/common/src/main/java/common/block/natural/BlockSnow.java b/common/src/main/java/common/block/natural/BlockSnow.java index 5d6cbb24..acbe33b9 100755 --- a/common/src/main/java/common/block/natural/BlockSnow.java +++ b/common/src/main/java/common/block/natural/BlockSnow.java @@ -2,7 +2,6 @@ package common.block.natural; import common.block.Block; import common.block.Material; -import common.enchantment.EnchantmentHelper; import common.entity.npc.EntityNPC; import common.init.Blocks; import common.init.Items; diff --git a/common/src/main/java/common/block/tech/BlockAnvil.java b/common/src/main/java/common/block/tech/BlockAnvil.java index fbbf6a70..9ede0f73 100755 --- a/common/src/main/java/common/block/tech/BlockAnvil.java +++ b/common/src/main/java/common/block/tech/BlockAnvil.java @@ -8,7 +8,7 @@ import common.entity.item.EntityFalling; import common.entity.npc.EntityNPC; import common.entity.types.EntityLiving; import common.inventory.Container; -import common.inventory.ContainerRepair; +import common.inventory.ContainerMagicCombiner; import common.item.CheatTab; import common.model.Model; import common.model.Model.ModelProvider; @@ -16,7 +16,6 @@ import common.model.ModelRotation; import common.properties.Property; import common.util.LocalPos; import common.util.BoundingBox; -import common.util.Clientside; import common.util.ExtMath; import common.util.Facing; import common.world.IWorldAccess; @@ -153,7 +152,7 @@ public class BlockAnvil extends BlockFalling implements Rotatable public Container createContainer(EntityNPC playerInventory) { - return new ContainerRepair(playerInventory, this.world, this.position); + return new ContainerMagicCombiner(playerInventory, this.world, this.position); } public Block getBlock() diff --git a/common/src/main/java/common/block/tech/BlockTNT.java b/common/src/main/java/common/block/tech/BlockTNT.java index fae2d537..59fa4ed0 100755 --- a/common/src/main/java/common/block/tech/BlockTNT.java +++ b/common/src/main/java/common/block/tech/BlockTNT.java @@ -96,11 +96,7 @@ public class BlockTNT extends Block this.explode(worldIn, pos, state.withProperty(EXPLODE, Boolean.valueOf(true)), playerIn); worldIn.setBlockToAir(pos); - if (item == Items.lighter) - { - playerIn.getHeldItem().damage(1, playerIn); - } - else // if (!playerIn.creative) + if (item == Items.fireball) { playerIn.getHeldItem().decrSize(); } diff --git a/common/src/main/java/common/block/tech/BlockToggleableLight.java b/common/src/main/java/common/block/tech/BlockToggleableLight.java index a9ba983a..5f0b6723 100755 --- a/common/src/main/java/common/block/tech/BlockToggleableLight.java +++ b/common/src/main/java/common/block/tech/BlockToggleableLight.java @@ -32,9 +32,7 @@ public class BlockToggleableLight extends Block { Item item = player.getHeldItem().getItem(); if(item != Items.lighter && item != Items.fireball) return super.onUse(worldIn, pos, state, player, side, hitX, hitY, hitZ); - if(item == Items.lighter) - player.getHeldItem().damage(1, player); - else + if(item == Items.fireball) player.getHeldItem().decrSize(); } this.toggle(worldIn, pos); diff --git a/common/src/main/java/common/block/tech/BlockUnlitTorch.java b/common/src/main/java/common/block/tech/BlockUnlitTorch.java index 23b74bb1..2d9210a3 100644 --- a/common/src/main/java/common/block/tech/BlockUnlitTorch.java +++ b/common/src/main/java/common/block/tech/BlockUnlitTorch.java @@ -35,12 +35,8 @@ public class BlockUnlitTorch extends BlockTorch { worldIn.setState(pos, this.lit.getState().withProperty(FACING, state.getValue(FACING)).withProperty(BlockLitTorch.FUEL, 7), 3); worldIn.playEffect(playerIn, 1007, pos, 0); - if(item == Items.lighter) { - playerIn.getHeldItem().damage(1, playerIn); - } - else { + if(item == Items.fireball) playerIn.getHeldItem().decrSize(); - } return true; } diff --git a/common/src/main/java/common/effect/Effect.java b/common/src/main/java/common/effect/Effect.java index 1de39b76..f7bc4464 100755 --- a/common/src/main/java/common/effect/Effect.java +++ b/common/src/main/java/common/effect/Effect.java @@ -147,33 +147,16 @@ public enum Effect { int k = 40 >> amp; if(k > 0 && duration % k != 0) return; - for(ItemStack stack : npc.getInventory()) { + int n = entity.worldObj.rand.zrange(npc.getInventory().length); + for(int z = 0; z < npc.getInventory().length; z++) { + ItemStack stack = npc.getInventory()[n]; + if(++n >= npc.getInventory().length) + n = 0; if(stack != null && !stack.isEmpty()) { - if(!stack.isFull()) + if(stack.getSize() < 100) { stack.incrSize(); - if(stack.getRepairCost() > 0) - stack.setRepairCost(stack.getRepairCost() - 1); - if(stack.isItemStackDamageable() && stack.getItemDamage() > 0) - stack.setItemDamage(stack.getItemDamage() - 1); - } - } - if(!npc.isPlayer() && npc.getHeldItem() != null && !npc.getHeldItem().isEmpty()) { - ItemStack stack = npc.getHeldItem(); - if(!stack.isFull()) - stack.incrSize(); - if(stack.getRepairCost() > 0) - stack.setRepairCost(stack.getRepairCost() - 1); - if(stack.isItemStackDamageable() && stack.getItemDamage() > 0) - stack.setItemDamage(stack.getItemDamage() - 1); - } - for(ItemStack stack : npc.getArmor()) { - if(stack != null && !stack.isEmpty()) { - if(!stack.isFull()) - stack.incrSize(); - if(stack.getRepairCost() > 0) - stack.setRepairCost(stack.getRepairCost() - 1); - if(stack.isItemStackDamageable() && stack.getItemDamage() > 0) - stack.setItemDamage(stack.getItemDamage() - 1); + break; + } } } } diff --git a/common/src/main/java/common/enchantment/Enchantment.java b/common/src/main/java/common/enchantment/Enchantment.java index 44c1cea7..69714832 100755 --- a/common/src/main/java/common/enchantment/Enchantment.java +++ b/common/src/main/java/common/enchantment/Enchantment.java @@ -196,15 +196,6 @@ public enum Enchantment implements Displayable, Identifyable attacker.attackEntityFrom(DamageSource.causeThornsDamage(user), getThornsDamage(level, random)); // attacker.playSound("damage.thorns", 0.5F, 1.0F); } - - if (itemstack != null) - { - itemstack.damage(3, user); - } - } - else if (itemstack != null) - { - itemstack.damage(1, user); } } }, @@ -320,27 +311,6 @@ public enum Enchantment implements Displayable, Identifyable return super.canApplyTogether(ench) && ench != FORTUNE; } }, - UNBREAKING("unbreaking", 5, EnchantmentType.BREAKABLE, "Haltbarkeit") { - public int getMinEnchantability(int enchantmentLevel) - { - return 5 + (enchantmentLevel - 1) * 8; - } - - public int getMaxEnchantability(int enchantmentLevel) - { - return super.getMinEnchantability(enchantmentLevel) + 50; - } - - public int getMaxLevel() - { - return 3; - } - - public boolean canApply(ItemStack stack) - { - return stack.isItemStackDamageable() || super.canApply(stack); - } - }, FORTUNE("fortune", 2, EnchantmentType.DIGGER, "Glück") { public int getMinEnchantability(int enchantmentLevel) { diff --git a/common/src/main/java/common/enchantment/EnchantmentType.java b/common/src/main/java/common/enchantment/EnchantmentType.java index 9089c930..76ce3349 100755 --- a/common/src/main/java/common/enchantment/EnchantmentType.java +++ b/common/src/main/java/common/enchantment/EnchantmentType.java @@ -20,7 +20,6 @@ public enum EnchantmentType WEAPON, DIGGER, FISHING_ROD, - BREAKABLE, BOW; public boolean canEnchantItem(Item item) @@ -29,10 +28,6 @@ public enum EnchantmentType { return true; } - else if (this == BREAKABLE && item.isDamageable()) - { - return true; - } else if (item instanceof ItemArmor armor) { return (this == ARMOR && armor.getArmorType().isMainArmor()) || armor.getArmorType().getEnchantmentType() == this; diff --git a/common/src/main/java/common/entity/animal/EntityBat.java b/common/src/main/java/common/entity/animal/EntityBat.java index ab1c4f03..2811e7cb 100755 --- a/common/src/main/java/common/entity/animal/EntityBat.java +++ b/common/src/main/java/common/entity/animal/EntityBat.java @@ -7,7 +7,6 @@ import common.entity.EntityType; import common.entity.npc.Alignment; import common.entity.npc.EntityNPC; import common.entity.types.EntityLiving; -import common.init.SoundEvent; import common.tags.TagObject; import common.util.LocalPos; import common.util.ExtMath; diff --git a/common/src/main/java/common/entity/animal/EntityCat.java b/common/src/main/java/common/entity/animal/EntityCat.java index 7b8cdb1b..72280a13 100755 --- a/common/src/main/java/common/entity/animal/EntityCat.java +++ b/common/src/main/java/common/entity/animal/EntityCat.java @@ -21,7 +21,6 @@ import common.entity.types.EntityAnimal; import common.entity.types.EntityLiving; import common.entity.types.EntityTameable; import common.init.Items; -import common.init.SoundEvent; import common.item.Item; import common.item.ItemStack; import common.item.consumable.ItemFishFood; diff --git a/common/src/main/java/common/entity/animal/EntityCow.java b/common/src/main/java/common/entity/animal/EntityCow.java index f158b599..609b9378 100755 --- a/common/src/main/java/common/entity/animal/EntityCow.java +++ b/common/src/main/java/common/entity/animal/EntityCow.java @@ -12,7 +12,6 @@ import common.entity.npc.EntityNPC; import common.entity.types.EntityAnimal; import common.entity.types.EntityLiving; import common.init.Items; -import common.init.SoundEvent; import common.item.Item; import common.item.ItemStack; import common.pathfinding.PathNavigateGround; diff --git a/common/src/main/java/common/entity/animal/EntityFox.java b/common/src/main/java/common/entity/animal/EntityFox.java index e745deef..120969bc 100644 --- a/common/src/main/java/common/entity/animal/EntityFox.java +++ b/common/src/main/java/common/entity/animal/EntityFox.java @@ -15,7 +15,6 @@ import common.entity.npc.Alignment; import common.entity.types.EntityAnimal; import common.entity.types.EntityLiving; import common.init.Items; -import common.init.SoundEvent; import common.item.Item; import common.item.ItemStack; import common.pathfinding.PathNavigateGround; diff --git a/common/src/main/java/common/entity/animal/EntityHorse.java b/common/src/main/java/common/entity/animal/EntityHorse.java index 5661baa2..9ee82a2e 100755 --- a/common/src/main/java/common/entity/animal/EntityHorse.java +++ b/common/src/main/java/common/entity/animal/EntityHorse.java @@ -10,7 +10,6 @@ import common.ai.EntityAIRunAroundLikeCrazy; import common.ai.EntityAISwimming; import common.ai.EntityAIWander; import common.ai.EntityAIWatchClosest; -import common.block.Block; import common.collect.Lists; import common.effect.Effect; import common.entity.DamageSource; diff --git a/common/src/main/java/common/entity/animal/EntityMouse.java b/common/src/main/java/common/entity/animal/EntityMouse.java index c5a785ce..d7dd4058 100755 --- a/common/src/main/java/common/entity/animal/EntityMouse.java +++ b/common/src/main/java/common/entity/animal/EntityMouse.java @@ -10,13 +10,11 @@ import common.ai.EntityAISwimming; import common.ai.EntityAITempt; import common.ai.EntityAIWander; import common.ai.EntityAIWatchClosest; -import common.block.Block; import common.entity.npc.EntityNPC; import common.entity.types.EntityAnimal; import common.entity.types.EntityLiving; import common.init.Blocks; import common.init.Items; -import common.init.SoundEvent; import common.item.ItemStack; import common.util.LocalPos; import common.world.World; diff --git a/common/src/main/java/common/entity/animal/EntityPig.java b/common/src/main/java/common/entity/animal/EntityPig.java index 3c2a32f0..dc7a18a6 100755 --- a/common/src/main/java/common/entity/animal/EntityPig.java +++ b/common/src/main/java/common/entity/animal/EntityPig.java @@ -13,7 +13,6 @@ import common.entity.npc.EntityNPC; import common.entity.types.EntityAnimal; import common.entity.types.EntityLiving; import common.init.Items; -import common.init.SoundEvent; import common.item.Item; import common.item.ItemStack; import common.pathfinding.PathNavigateGround; diff --git a/common/src/main/java/common/entity/animal/EntityRabbit.java b/common/src/main/java/common/entity/animal/EntityRabbit.java index fec4a7b8..aa75c681 100755 --- a/common/src/main/java/common/entity/animal/EntityRabbit.java +++ b/common/src/main/java/common/entity/animal/EntityRabbit.java @@ -28,7 +28,6 @@ import common.entity.types.EntityLiving; import common.init.BlockRegistry; import common.init.Blocks; import common.init.Items; -import common.init.SoundEvent; import common.item.Item; import common.item.ItemStack; import common.pathfinding.PathEntity; diff --git a/common/src/main/java/common/entity/animal/EntitySheep.java b/common/src/main/java/common/entity/animal/EntitySheep.java index b339f160..4601ac0d 100755 --- a/common/src/main/java/common/entity/animal/EntitySheep.java +++ b/common/src/main/java/common/entity/animal/EntitySheep.java @@ -172,7 +172,6 @@ public class EntitySheep extends EntityAnimal } } - itemstack.damage(1, player); this.playSound(SoundEvent.POP, 0.25F); } diff --git a/common/src/main/java/common/entity/animal/EntityWolf.java b/common/src/main/java/common/entity/animal/EntityWolf.java index 033f95b0..1abe879d 100755 --- a/common/src/main/java/common/entity/animal/EntityWolf.java +++ b/common/src/main/java/common/entity/animal/EntityWolf.java @@ -23,7 +23,6 @@ import common.entity.types.EntityAnimal; import common.entity.types.EntityLiving; import common.entity.types.EntityTameable; import common.init.Items; -import common.init.SoundEvent; import common.item.Item; import common.item.ItemStack; import common.item.consumable.ItemFood; diff --git a/common/src/main/java/common/entity/item/EntityItem.java b/common/src/main/java/common/entity/item/EntityItem.java index 2c045607..efebb124 100755 --- a/common/src/main/java/common/entity/item/EntityItem.java +++ b/common/src/main/java/common/entity/item/EntityItem.java @@ -219,10 +219,6 @@ public class EntityItem extends Entity { return other.combineItems(this); } - else if (otherStack.getSize() + stack.getSize() > otherStack.getMaxStackSize()) - { - return false; - } else { otherStack.incrSize(stack.getSize()); @@ -431,7 +427,7 @@ public class EntityItem extends Entity public String getName() { ItemStack stack = this.getEntityItem(); - return this.getTypeName() + " (" + (stack.isStacked() ? stack.getSize() + " * " : "") + stack.getItem().getDisplay() + ")"; + return this.getTypeName() + " (" + (stack.getSize() > 1 ? stack.getSize() + " * " : "") + stack.getItem().getDisplay() + ")"; } /** @@ -577,7 +573,7 @@ public class EntityItem extends Entity public String getLabel() { ItemStack stack = this.getEntityItem(); - if(!stack.isStacked()) + if(stack.getSize() <= 1) return null; return Color.DARK_GREEN + "" + stack.getSize(); } diff --git a/common/src/main/java/common/entity/npc/EntityHaunter.java b/common/src/main/java/common/entity/npc/EntityHaunter.java index 5a9d83e8..5c484119 100755 --- a/common/src/main/java/common/entity/npc/EntityHaunter.java +++ b/common/src/main/java/common/entity/npc/EntityHaunter.java @@ -236,7 +236,6 @@ public class EntityHaunter extends EntityNPC { if (!this.worldObj.client) { this.ignite(); - itemstack.damage(1, player); return true; } } diff --git a/common/src/main/java/common/entity/npc/EntityNPC.java b/common/src/main/java/common/entity/npc/EntityNPC.java index 654ccc99..c2230b8b 100755 --- a/common/src/main/java/common/entity/npc/EntityNPC.java +++ b/common/src/main/java/common/entity/npc/EntityNPC.java @@ -1313,7 +1313,7 @@ public abstract class EntityNPC extends EntityLiving implements IInventory accept = itemsword.getAttackDamageBonus(stack) > itemsword1.getAttackDamageBonus(old); } else { - accept = stack.getItemDamage() > old.getItemDamage() || stack.isItemEnchanted() && !old.isItemEnchanted(); + accept = stack.isItemEnchanted() && !old.isItemEnchanted(); } } else if(stack.getItem() instanceof ItemBow && old.getItem() instanceof ItemBow) { @@ -1340,7 +1340,7 @@ public abstract class EntityNPC extends EntityLiving implements IInventory accept = itemarmor.getArmorValue() > itemarmor1.getArmorValue(); } else { - accept = stack.getItemDamage() > old.getItemDamage() || stack.isItemEnchanted() && !old.isItemEnchanted(); + accept = stack.isItemEnchanted() && !old.isItemEnchanted(); } } else { @@ -2566,7 +2566,7 @@ public abstract class EntityNPC extends EntityLiving implements IInventory { for (int i = 0; i < Equipment.INVENTORY_SLOTS; ++i) { - if (this.getInventory()[i] != null && this.getInventory()[i].getItem() == itemStackIn.getItem() && this.getInventory()[i].isStackable() && !this.getInventory()[i].isFull() && ItemStack.dataEquals(this.getInventory()[i], itemStackIn)) + if (this.getInventory()[i] != null && this.getInventory()[i].getItem() == itemStackIn.getItem() && ItemStack.dataEquals(this.getInventory()[i], itemStackIn)) { return i; } @@ -2614,11 +2614,6 @@ public abstract class EntityNPC extends EntityLiving implements IInventory int k = i; - if (i > this.getInventory()[j].getMaxStackSize() - this.getInventory()[j].getSize()) - { - k = this.getInventory()[j].getMaxStackSize() - this.getInventory()[j].getSize(); - } - if (k == 0) { return i; @@ -2661,38 +2656,20 @@ public abstract class EntityNPC extends EntityLiving implements IInventory { if (itemStackIn != null && !itemStackIn.isEmpty() && itemStackIn.getItem() != null) { - if (itemStackIn.isItemDamaged()) - { - int j = this.getFirstEmptyStack(); + int i; - if (j >= 0) + while (true) + { + i = itemStackIn.getSize(); + itemStackIn.setSize(this.storePartialItemStack(itemStackIn)); + + if (itemStackIn.isEmpty() || itemStackIn.getSize() >= i) { - this.getInventory()[j] = ItemStack.copy(itemStackIn); - itemStackIn.setSize(0); - return true; - } - else - { - return false; + break; } } - else - { - int i; - while (true) - { - i = itemStackIn.getSize(); - itemStackIn.setSize(this.storePartialItemStack(itemStackIn)); - - if (itemStackIn.isEmpty() || itemStackIn.getSize() >= i) - { - break; - } - } - - return itemStackIn.getSize() < i; - } + return itemStackIn.getSize() < i; } else { @@ -2715,8 +2692,7 @@ public abstract class EntityNPC extends EntityLiving implements IInventory if (ItemStack.itemEquals(itemstack1, itemstack)) { - int j = itemstack1.getMaxStackSize(); - int k = Math.min(itemstack.getSize(), j - itemstack1.getSize()); + int k = itemstack.getSize(); if (k > 0) { @@ -3445,25 +3421,6 @@ public abstract class EntityNPC extends EntityLiving implements IInventory } } - protected void damageArmor(int damage) - { - if(this.isPlayer() || this.dummy) { - damage = damage / 4; - if (damage < 1) - damage = 1; - for (Equipment slot : Equipment.ARMOR) - { - ItemStack stack = this.getArmor(slot); - if (stack != null && stack.getItem() instanceof ItemArmor && stack.isItemStackDamageable()) - { - stack.damage(damage, this); - if (stack.isEmpty()) - this.setArmor(slot, null); - } - } - } - } - public int getTotalArmorValue() { int value = 0; diff --git a/common/src/main/java/common/entity/projectile/FishConstants.java b/common/src/main/java/common/entity/projectile/FishConstants.java index 02d8b683..e6822438 100644 --- a/common/src/main/java/common/entity/projectile/FishConstants.java +++ b/common/src/main/java/common/entity/projectile/FishConstants.java @@ -6,16 +6,16 @@ import common.rng.WeightedList; public abstract class FishConstants { public static final WeightedList FISHING_JUNK = new WeightedList( - (new RngFishable(new ItemStack(Items.leather_boots), 10)).setMaxDamagePercent(0.9F), new RngFishable(new ItemStack(Items.leather), 10), + (new RngFishable(new ItemStack(Items.leather_boots), 10)), new RngFishable(new ItemStack(Items.leather), 10), new RngFishable(new ItemStack(Items.bone), 10), new RngFishable(new ItemStack(Items.water_bottle), 10), - new RngFishable(new ItemStack(Items.string), 5), (new RngFishable(new ItemStack(Items.fishing_rod), 2)).setMaxDamagePercent(0.9F), + new RngFishable(new ItemStack(Items.string), 5), (new RngFishable(new ItemStack(Items.fishing_rod), 2)), new RngFishable(new ItemStack(Items.stick), 5), new RngFishable(new ItemStack(Items.ink_sack, 10), 1), new RngFishable(new ItemStack(Items.hook), 10), new RngFishable(new ItemStack(Items.rotten_flesh), 10)); public static final WeightedList FISHING_TREASURE = new WeightedList( new RngFishable(new ItemStack(Items.waterlily), 1), new RngFishable(new ItemStack(Items.name_tag), 1), new RngFishable(new ItemStack(Items.saddle), 1), - (new RngFishable(new ItemStack(Items.bow), 1)).setMaxDamagePercent(0.25F).setEnchantable(), - (new RngFishable(new ItemStack(Items.fishing_rod), 1)).setMaxDamagePercent(0.25F).setEnchantable(), + (new RngFishable(new ItemStack(Items.bow), 1)).setEnchantable(), + (new RngFishable(new ItemStack(Items.fishing_rod), 1)).setEnchantable(), (new RngFishable(new ItemStack(Items.book), 1)).setEnchantable()); public static final WeightedList FISH_TYPES = new WeightedList( new RngFishable(new ItemStack(Items.cod), 60), diff --git a/common/src/main/java/common/entity/projectile/RngFishable.java b/common/src/main/java/common/entity/projectile/RngFishable.java index 700ec680..be09b99d 100755 --- a/common/src/main/java/common/entity/projectile/RngFishable.java +++ b/common/src/main/java/common/entity/projectile/RngFishable.java @@ -8,7 +8,6 @@ import common.rng.RngItem; public class RngFishable extends RngItem { private final ItemStack returnStack; - private float maxDamagePercent; private boolean enchantable; public RngFishable(ItemStack returnStackIn, int itemWeightIn) @@ -21,24 +20,6 @@ public class RngFishable extends RngItem { ItemStack itemstack = this.returnStack.copy(); - if (this.maxDamagePercent > 0.0F) - { - int i = (int)(this.maxDamagePercent * (float)this.returnStack.getMaxDamage()); - int j = itemstack.getMaxDamage() - random.zrange(random.zrange(i) + 1); - - if (j > i) - { - j = i; - } - - if (j < 1) - { - j = 1; - } - - itemstack.setItemDamage(j); - } - if (this.enchantable) { EnchantmentHelper.addRandomEnchantment(random, itemstack, 30); @@ -47,12 +28,6 @@ public class RngFishable extends RngItem return itemstack; } - public RngFishable setMaxDamagePercent(float maxDamagePercentIn) - { - this.maxDamagePercent = maxDamagePercentIn; - return this; - } - public RngFishable setEnchantable() { this.enchantable = true; diff --git a/common/src/main/java/common/entity/types/EntityLiving.java b/common/src/main/java/common/entity/types/EntityLiving.java index 107cff5a..578abd7b 100755 --- a/common/src/main/java/common/entity/types/EntityLiving.java +++ b/common/src/main/java/common/entity/types/EntityLiving.java @@ -33,7 +33,6 @@ import common.entity.projectile.EntityArrow; import common.init.BlockRegistry; import common.init.Blocks; import common.init.EntityRegistry; -import common.init.ItemRegistry; import common.init.Items; import common.init.SoundEvent; import common.item.Item; @@ -51,7 +50,6 @@ import common.util.LocalPos; import common.util.BoundingBox; import common.util.Clientside; import common.util.ExtMath; -import common.util.Equipment; import common.util.ParticleType; import common.util.Serverside; import common.util.Color; @@ -871,12 +869,6 @@ public abstract class EntityLiving extends Entity } else { - if (this instanceof EntityNPC npc && (source == DamageSource.anvil || source == DamageSource.fallingBlock) && npc.getArmor(Equipment.HELMET) != null) - { - npc.getArmor(Equipment.HELMET).damage((int)(amount * 4.0F + this.rand.floatv() * (float)amount * 2.0F), this); - amount = (int)((float)amount * 0.75F); - } - this.lswingAmount = 1.5F; boolean flag = true; @@ -980,27 +972,6 @@ public abstract class EntityLiving extends Entity } } - /** - * Renders broken item particles using the given ItemStack - */ - public void renderBrokenItemStack(ItemStack stack) - { - this.playSound(SoundEvent.BREAK, 0.8F); - - for (int i = 0; i < 5; ++i) - { - Vec3 vec3 = new Vec3(((double)this.rand.floatv() - 0.5D) * 0.1D, Math.random() * 0.1D + 0.1D, 0.0D); - vec3 = vec3.pitch(-this.rotPitch * (float)Math.PI / 180.0F); - vec3 = vec3.yaw(-this.rotYaw * (float)Math.PI / 180.0F); - double d0 = (double)(-this.rand.floatv()) * 0.6D - 0.3D; - Vec3 vec31 = new Vec3(((double)this.rand.floatv() - 0.5D) * 0.3D, d0, 0.6D); - vec31 = vec31.pitch(-this.rotPitch * (float)Math.PI / 180.0F); - vec31 = vec31.yaw(-this.rotYaw * (float)Math.PI / 180.0F); - vec31 = vec31.add(this.posX, this.posY + (double)this.getEyeHeight(), this.posZ); - this.worldObj.clientParticle(ParticleType.ITEM_CRACK, vec31.x, vec31.y, vec31.z, ItemRegistry.getId(stack.getItem())); - } - } - /** * Called when the mob's health reaches 0. */ diff --git a/common/src/main/java/common/init/CraftingRegistry.java b/common/src/main/java/common/init/CraftingRegistry.java index b6732ba8..9d451d28 100755 --- a/common/src/main/java/common/init/CraftingRegistry.java +++ b/common/src/main/java/common/init/CraftingRegistry.java @@ -329,12 +329,8 @@ public abstract class CraftingRegistry break; } else if(current != null && stack.itemEquals(current) && stack.dataEquals(current)) { - int incr = Math.min(amount, current.getMaxStackSize() - current.getSize()); - if(incr > 0) { - amount -= incr; - if(amount <= 0) - break; - } + amount = 0; + break; } } if(amount > 0) @@ -392,14 +388,10 @@ public abstract class CraftingRegistry break; } else if(current != null && stack.itemEquals(current) && stack.dataEquals(current)) { - int incr = Math.min(amount, current.getMaxStackSize() - current.getSize()); - if(incr > 0) { - current.incrSize(incr); - output.setInventorySlotContents(z, current); - amount -= incr; - if(amount <= 0) - break; - } + current.incrSize(amount); + output.setInventorySlotContents(z, current); + amount = 0; + break; } } if(amount > 0 && output instanceof EntityNPC entity) diff --git a/common/src/main/java/common/init/ItemRegistry.java b/common/src/main/java/common/init/ItemRegistry.java index 2a1ac10f..cdf1f520 100755 --- a/common/src/main/java/common/init/ItemRegistry.java +++ b/common/src/main/java/common/init/ItemRegistry.java @@ -139,8 +139,6 @@ public abstract class ItemRegistry { if(item != null) { if(item.getTab() == null || !item.getTab().isBlockTab()) throw new IllegalArgumentException("Gegenstand für " + BlockRegistry.getName(block) + " muss einen Block-Tab besitzen"); - if(item.getMaxAmount() == 1) - throw new IllegalArgumentException("Gegenstand für " + BlockRegistry.getName(block) + " muss stapelbar sein"); ITEMS.add(item); ITEM_MAP.put(BlockRegistry.getName(block), item); ITEM_IDS.put(item, ITEMS.size()); @@ -286,11 +284,11 @@ public abstract class ItemRegistry { register("whip", (new ItemWhip()).setDisplay("Peitsche")); register("charge_crystal", (new Item()).setDisplay("Energiekristall").setTab(CheatTab.MATERIALS).setColor(Color.DARK_MAGENTA).setFuelAmount(120000)); for(Enchantment ench : Enchantment.values()) { - register("enchanted_book_" + ench.getName(), (new ItemEnchantedBook(ench, 1)).setUnstackable().setDisplay("Verzaubertes Buch mit " + ench.getFormattedName(1)).setTab(CheatTab.ENCHANTMENTS)); + register("enchanted_book_" + ench.getName(), (new ItemEnchantedBook(ench, 1)).setDisplay("Verzaubertes Buch mit " + ench.getFormattedName(1)).setTab(CheatTab.ENCHANTMENTS)); int max = ench.getMaxLevel(); for(int level = 2; level <= max; level++) { if((level % 2 == 1 || level == max) && (level != max - 1)) - register("enchanted_book_" + ench.getName() + "_" + level, (new ItemEnchantedBook(ench, level)).setUnstackable().setDisplay("Verzaubertes Buch mit " + ench.getFormattedName(level)).setTab(CheatTab.ENCHANTMENTS)); + register("enchanted_book_" + ench.getName() + "_" + level, (new ItemEnchantedBook(ench, level)).setDisplay("Verzaubertes Buch mit " + ench.getFormattedName(level)).setTab(CheatTab.ENCHANTMENTS)); } } register("bloodbrick", (new Item()).setDisplay("Blutroter Ziegel").setTab(CheatTab.MATERIALS)); diff --git a/common/src/main/java/common/init/Items.java b/common/src/main/java/common/init/Items.java index 27405fd2..b6f6f9f9 100755 --- a/common/src/main/java/common/init/Items.java +++ b/common/src/main/java/common/init/Items.java @@ -858,8 +858,6 @@ public abstract class Items { public static final ItemEnchantedBook enchanted_book_silk_touch = get("enchanted_book_silk_touch"); public static final ItemEnchantedBook enchanted_book_thorns = get("enchanted_book_thorns"); public static final ItemEnchantedBook enchanted_book_thorns_3 = get("enchanted_book_thorns_3"); - public static final ItemEnchantedBook enchanted_book_unbreaking = get("enchanted_book_unbreaking"); - public static final ItemEnchantedBook enchanted_book_unbreaking_3 = get("enchanted_book_unbreaking_3"); public static final ItemEnchantedBook enchanted_book_vanity = get("enchanted_book_vanity"); public static final ItemRocketLauncher rocket_launcher = get("rocket_launcher"); public static final ItemAmmo rocket = get("rocket"); diff --git a/common/src/main/java/common/init/ToolMaterial.java b/common/src/main/java/common/init/ToolMaterial.java index e4945ac2..44483be7 100755 --- a/common/src/main/java/common/init/ToolMaterial.java +++ b/common/src/main/java/common/init/ToolMaterial.java @@ -8,12 +8,10 @@ import common.util.Equipment; public class ToolMaterial { private final int harvestLevel; - private final int durability; private final int damage; private final float radiationResistance; private final float magicResistance; private final int enchantability; - private final int maxDamageFactor; private final int[] damageReduction; private final int armorEnchantability; private final Set repair = Sets.newHashSet(); @@ -23,10 +21,8 @@ public class ToolMaterial { protected ToolMaterial(int level, float rad, float mag, int uses, int d, int damage, int ench, int auses, int aench, int r1, int r2, int r3, int r4) { this.harvestLevel = level; - this.durability = uses; this.damage = damage; this.enchantability = ench; - this.maxDamageFactor = auses; this.damageReduction = new int[] {r1, r2, r3, r4}; this.armorEnchantability = aench; this.radiationResistance = rad; @@ -47,10 +43,6 @@ public class ToolMaterial { this.repair.add(item); } - public int getDurability() { - return this.durability; - } - public int getDamage() { return this.damage; } @@ -67,10 +59,6 @@ public class ToolMaterial { return this.repair.contains(item); } - public int getDurability(Equipment armorType) { - return armorType.getDamage() * this.maxDamageFactor; - } - public float getRadiationReduction(Equipment armorType) { return armorType.getPhysicalResistance() * this.radiationResistance; } diff --git a/common/src/main/java/common/inventory/Container.java b/common/src/main/java/common/inventory/Container.java index 5bc9a2bf..9bb8d4a5 100755 --- a/common/src/main/java/common/inventory/Container.java +++ b/common/src/main/java/common/inventory/Container.java @@ -284,11 +284,6 @@ public abstract class Container i2 = slot7.getItemStackLimit(itemstack10) - itemstack9.getSize(); } - if (i2 > itemstack10.getMaxStackSize() - itemstack9.getSize()) - { - i2 = itemstack10.getMaxStackSize() - itemstack9.getSize(); - } - itemstack10.split(i2); if (itemstack10.isEmpty()) @@ -304,11 +299,11 @@ public abstract class Container playerIn.setMouseItem(itemstack9); } } - else if (itemstack9.getItem() == itemstack10.getItem() && itemstack10.getMaxStackSize() > 1 && ItemStack.dataEquals(itemstack9, itemstack10)) + else if (itemstack9.getItem() == itemstack10.getItem() && ItemStack.dataEquals(itemstack9, itemstack10)) { int l1 = itemstack9.getSize(); - if (l1 > 0 && l1 + itemstack10.getSize() <= itemstack10.getMaxStackSize()) + if (l1 > 0) { itemstack10.incrSize(l1); itemstack9 = slot7.decrStackSize(l1); @@ -404,15 +399,15 @@ public abstract class Container int i1 = clickedButton == 0 ? 0 : this.inventorySlots.size() - 1; int j1 = clickedButton == 0 ? 1 : -1; - for (int l2 = 0; l2 < 2; ++l2) + for (int l2 = 0; l2 < 2; ++l2) //TODO: check if still necessary { - for (int i3 = i1; i3 >= 0 && i3 < this.inventorySlots.size() && !itemstack4.isFull(); i3 += j1) + for (int i3 = i1; i3 >= 0 && i3 < this.inventorySlots.size(); i3 += j1) { Slot slot8 = (Slot)this.inventorySlots.get(i3); - if (slot8.getHasStack() && canAddItemToSlot(slot8, itemstack4, true) && slot8.canTakeStack(playerIn) && this.canMergeSlot(itemstack4, slot8) && (l2 != 0 || !slot8.getStack().isFull())) + if (slot8.getHasStack() && canAddItemToSlot(slot8, itemstack4) && slot8.canTakeStack(playerIn) && this.canMergeSlot(itemstack4, slot8)) { - int l = Math.min(itemstack4.getMaxStackSize() - itemstack4.getSize(), slot8.getStack().getSize()); + int l = slot8.getStack().getSize(); ItemStack itemstack2 = slot8.decrStackSize(l); itemstack4.incrSize(l); @@ -603,35 +598,22 @@ public abstract class Container boolean flag = false; int i = startIndex; - if (stack.isStackable()) + while (!stack.isEmpty() && i < endIndex) { - while (!stack.isEmpty() && i < endIndex) + Slot slot = (Slot)this.inventorySlots.get(i); + ItemStack itemstack = slot.getStack(); + + if (itemstack != null && itemstack.getItem() == stack.getItem() && ItemStack.dataEquals(stack, itemstack)) { - Slot slot = (Slot)this.inventorySlots.get(i); - ItemStack itemstack = slot.getStack(); + int j = itemstack.getSize() + stack.getSize(); - if (itemstack != null && itemstack.getItem() == stack.getItem() && ItemStack.dataEquals(stack, itemstack)) - { - int j = itemstack.getSize() + stack.getSize(); - - if (j <= stack.getMaxStackSize()) - { - stack.setSize(0); - itemstack.setSize(j); - slot.onSlotChanged(); - flag = true; - } - else if (itemstack.getSize() < stack.getMaxStackSize()) - { - stack.decrSize(stack.getMaxStackSize() - itemstack.getSize()); - itemstack.setSize(stack.getMaxStackSize()); - slot.onSlotChanged(); - flag = true; - } - } - - ++i; + stack.setSize(0); + itemstack.setSize(j); + slot.onSlotChanged(); + flag = true; } + + ++i; } if (!stack.isEmpty()) @@ -663,16 +645,13 @@ public abstract class Container return true; } - /** - * Checks if it's possible to add the given itemstack to the given slot. - */ - public static boolean canAddItemToSlot(Slot slotIn, ItemStack stack, boolean stackSizeMatters) + public static boolean canAddItemToSlot(Slot slotIn, ItemStack stack) { boolean flag = slotIn == null || !slotIn.getHasStack(); if (slotIn != null && slotIn.getHasStack() && stack != null && stack.itemEquals(slotIn.getStack()) && ItemStack.dataEquals(slotIn.getStack(), stack)) { - flag |= slotIn.getStack().getSize() + (stackSizeMatters ? 0 : stack.getSize()) <= stack.getMaxStackSize(); + flag = true; } return flag; diff --git a/common/src/main/java/common/inventory/ContainerEnchantment.java b/common/src/main/java/common/inventory/ContainerEnchantment.java index 1ff75173..d2bf4947 100755 --- a/common/src/main/java/common/inventory/ContainerEnchantment.java +++ b/common/src/main/java/common/inventory/ContainerEnchantment.java @@ -129,7 +129,7 @@ public class ContainerEnchantment extends Container { ItemStack itemstack = inventoryIn.getStackInSlot(0); - if (itemstack != null && itemstack.isItemEnchantable()) + if (itemstack != null && itemstack.getSize() == 1 && !itemstack.isItemEnchanted()) { if (!this.world.client) { diff --git a/common/src/main/java/common/inventory/ContainerEntityInventory.java b/common/src/main/java/common/inventory/ContainerEntityInventory.java index ab795f44..d7ac692a 100755 --- a/common/src/main/java/common/inventory/ContainerEntityInventory.java +++ b/common/src/main/java/common/inventory/ContainerEntityInventory.java @@ -22,6 +22,10 @@ public class ContainerEntityInventory extends Container final EntityHorse horse = (EntityHorse)this.entity; this.addSlotToContainer(new Slot(entityInv, 0, false) { + public boolean canStackItems() { + return false; + } + public boolean isItemValid(ItemStack stack) { return super.isItemValid(stack) && stack.getItem() == Items.saddle && !this.getHasStack(); @@ -29,6 +33,10 @@ public class ContainerEntityInventory extends Container }); this.addSlotToContainer(new Slot(entityInv, 1, false) { + public boolean canStackItems() { + return false; + } + public boolean isItemValid(ItemStack stack) { return super.isItemValid(stack) && horse.canWearArmor() && EntityHorse.isArmorItem(stack.getItem()); diff --git a/common/src/main/java/common/inventory/ContainerRepair.java b/common/src/main/java/common/inventory/ContainerMagicCombiner.java similarity index 54% rename from common/src/main/java/common/inventory/ContainerRepair.java rename to common/src/main/java/common/inventory/ContainerMagicCombiner.java index ee5d18f9..1ae1fdd8 100755 --- a/common/src/main/java/common/inventory/ContainerRepair.java +++ b/common/src/main/java/common/inventory/ContainerMagicCombiner.java @@ -15,7 +15,7 @@ import common.vars.Vars; import common.world.State; import common.world.World; -public class ContainerRepair extends Container +public class ContainerMagicCombiner extends Container { private class InventoryCraftResult implements IInventory { @@ -96,12 +96,12 @@ public class ContainerRepair extends Container public int maximumCost; private int materialCost; - public ContainerRepair(EntityNPC playerInventory, World worldIn) + public ContainerMagicCombiner(EntityNPC playerInventory, World worldIn) { this(playerInventory, worldIn, LocalPos.ORIGIN); } - public ContainerRepair(EntityNPC playerInventory, final World worldIn, final LocalPos blockPosIn) + public ContainerMagicCombiner(EntityNPC playerInventory, final World worldIn, final LocalPos blockPosIn) { this.outputSlot = new InventoryCraftResult(); this.inputSlots = new InventoryBasic(2) @@ -109,17 +109,25 @@ public class ContainerRepair extends Container public void markDirty() { super.markDirty(); - ContainerRepair.this.onChanged(this); + ContainerMagicCombiner.this.onChanged(); } }; this.selfPosition = blockPosIn; this.theWorld = worldIn; this.addSlotToContainer(new Slot(this.inputSlots, 0, false) { + public boolean canStackItems() { + return false; + } + public boolean canEditItem() { return false; } }); this.addSlotToContainer(new Slot(this.inputSlots, 1, false) { + public boolean canStackItems() { + return false; + } + public boolean canEditItem() { return false; } @@ -132,38 +140,38 @@ public class ContainerRepair extends Container } public boolean canTakeStack(EntityNPC playerIn) { - return /* (playerIn.creative || */ playerIn.getManaPoints() >= ContainerRepair.this.maximumCost /* ) */ && ContainerRepair.this.maximumCost > 0 && this.getHasStack(); + return /* (playerIn.creative || */ (playerIn.getManaPoints() >= ContainerMagicCombiner.this.maximumCost || !Vars.magicComboMana) /* ) */ && ContainerMagicCombiner.this.maximumCost > 0 && this.getHasStack(); } public void onPickupFromSlot(EntityNPC playerIn, ItemStack stack) { // if (!playerIn.creative) // { - if(!playerIn.worldObj.client) - playerIn.useMana(ContainerRepair.this.maximumCost); + if(!playerIn.worldObj.client && Vars.magicComboMana) + playerIn.useMana(ContainerMagicCombiner.this.maximumCost); // } - ContainerRepair.this.inputSlots.setInventorySlotContents(0, (ItemStack)null); + ContainerMagicCombiner.this.inputSlots.setInventorySlotContents(0, (ItemStack)null); - if (ContainerRepair.this.materialCost > 0) + if (ContainerMagicCombiner.this.materialCost > 0) { - ItemStack itemstack = ContainerRepair.this.inputSlots.getStackInSlot(1); + ItemStack itemstack = ContainerMagicCombiner.this.inputSlots.getStackInSlot(1); - if (itemstack != null && itemstack.getSize() > ContainerRepair.this.materialCost) + if (itemstack != null && itemstack.getSize() > ContainerMagicCombiner.this.materialCost) { - itemstack.decrSize(ContainerRepair.this.materialCost); - ContainerRepair.this.inputSlots.setInventorySlotContents(1, itemstack); + itemstack.decrSize(ContainerMagicCombiner.this.materialCost); + ContainerMagicCombiner.this.inputSlots.setInventorySlotContents(1, itemstack); } else { - ContainerRepair.this.inputSlots.setInventorySlotContents(1, (ItemStack)null); + ContainerMagicCombiner.this.inputSlots.setInventorySlotContents(1, (ItemStack)null); } } else { - ContainerRepair.this.inputSlots.setInventorySlotContents(1, (ItemStack)null); + ContainerMagicCombiner.this.inputSlots.setInventorySlotContents(1, (ItemStack)null); } - ContainerRepair.this.maximumCost = 0; + ContainerMagicCombiner.this.maximumCost = 0; State iblockstate = worldIn.getState(blockPosIn); if (/* !playerIn.creative && */ !worldIn.client && Vars.anvilRepairDecay && iblockstate.getBlock() instanceof BlockAnvil anvil && playerIn.getRNG().floatv() < 0.12F) @@ -196,17 +204,9 @@ public class ContainerRepair extends Container this.addPlayerSlots(playerInventory); } - private void onChanged(IInventory inventoryIn) + private void onChanged() { this.detectAndSendChanges(); - this.updateRepairOutput(); - } - - /** - * called when the Anvil Input Slot changes, calculates the new result and puts it in the output slot - */ - public void updateRepairOutput() - { // int i = 0; // int j = 1; // int k = 1; @@ -217,8 +217,6 @@ public class ContainerRepair extends Container ItemStack stack = this.inputSlots.getStackInSlot(0); this.maximumCost = 1; int totalCost = 0; - int repairCost = 0; - int renameCost = 0; if (stack == null) { @@ -231,152 +229,105 @@ public class ContainerRepair extends Container ItemStack repStack = this.inputSlots.getStackInSlot(1); Map newEnch = EnchantmentHelper.getEnchantments(newStack); boolean isBook = false; - repairCost = repairCost + stack.getRepairCost() + (repStack == null ? 0 : repStack.getRepairCost()); this.materialCost = 0; if (repStack != null) { isBook = repStack.getItem() instanceof ItemEnchantedBook; - if (newStack.isItemStackDamageable() && newStack.getItem().getIsRepairable(stack, repStack)) + if (!isBook && (newStack.getItem() != repStack.getItem())) { - int damage = Math.min(newStack.getItemDamage(), newStack.getMaxDamage() / 4); - - if (damage <= 0) - { - this.outputSlot.setInventorySlotContents(0, (ItemStack)null); - this.maximumCost = 0; - return; - } - - int cost; - - for (cost = 0; damage > 0 && cost < repStack.getSize(); ++cost) - { - int j5 = newStack.getItemDamage() - damage; - newStack.setItemDamage(j5); - ++totalCost; - damage = Math.min(newStack.getItemDamage(), newStack.getMaxDamage() / 4); - } - - this.materialCost = cost; + this.outputSlot.setInventorySlotContents(0, (ItemStack)null); + this.maximumCost = 0; + return; } - else + + Map ench = EnchantmentHelper.getEnchantments(repStack); + Iterator enchs = ench.keySet().iterator(); + + while (enchs.hasNext()) { - if (!isBook && (newStack.getItem() != repStack.getItem() || !newStack.isItemStackDamageable())) - { - this.outputSlot.setInventorySlotContents(0, (ItemStack)null); - this.maximumCost = 0; - return; - } + Enchantment enchantment = enchs.next(); - if (newStack.isItemStackDamageable() && !isBook) + if (enchantment != null) { - int mainDmg = stack.getMaxDamage() - stack.getItemDamage(); - int repDmg = repStack.getMaxDamage() - repStack.getItemDamage(); - int repair = repDmg + newStack.getMaxDamage() * 12 / 100; - int newDmg = mainDmg + repair; - int damage = newStack.getMaxDamage() - newDmg; + int newLevel = newEnch.containsKey(enchantment) ? newEnch.get(enchantment) : 0; + int level = ench.get(enchantment); + int diff; - if (damage < 0) + if (newLevel == level) { - damage = 0; + ++level; + diff = level; + } + else + { + diff = Math.max(level, newLevel); } - if (damage < newStack.getItemDamage()) + level = diff; + boolean applies = enchantment.canApply(stack); + + if (/* this.thePlayer.creative || */ stack.getItem() instanceof ItemEnchantedBook) { - newStack.setItemDamage(damage); - totalCost += 2; + applies = true; } - } - Map ench = EnchantmentHelper.getEnchantments(repStack); - Iterator enchs = ench.keySet().iterator(); + Iterator newEnchs = newEnch.keySet().iterator(); - while (enchs.hasNext()) - { - Enchantment enchantment = enchs.next(); - - if (enchantment != null) + while (newEnchs.hasNext()) { - int newLevel = newEnch.containsKey(enchantment) ? newEnch.get(enchantment) : 0; - int level = ench.get(enchantment); - int diff; + Enchantment nEid = newEnchs.next(); - if (newLevel == level) + if (nEid != enchantment && !enchantment.canApplyTogether(nEid)) { - ++level; - diff = level; + applies = false; + ++totalCost; } - else + } + + if (applies) + { + if (level > enchantment.getMaxLevel()) { - diff = Math.max(level, newLevel); + level = enchantment.getMaxLevel(); } - level = diff; - boolean applies = enchantment.canApply(stack); + newEnch.put(enchantment, level); + int cost = 0; - if (/* this.thePlayer.creative || */ stack.getItem() instanceof ItemEnchantedBook) + switch (enchantment.getWeight()) { - applies = true; + case 1: + cost = 8; + break; + + case 2: + cost = 4; + + case 3: + case 4: + case 6: + case 7: + case 8: + case 9: + default: + break; + + case 5: + cost = 2; + break; + + case 10: + cost = 1; } - Iterator newEnchs = newEnch.keySet().iterator(); - - while (newEnchs.hasNext()) + if (isBook) { - Enchantment nEid = newEnchs.next(); - - if (nEid != enchantment && !enchantment.canApplyTogether(nEid)) - { - applies = false; - ++totalCost; - } + cost = Math.max(1, cost / 2); } - if (applies) - { - if (level > enchantment.getMaxLevel()) - { - level = enchantment.getMaxLevel(); - } - - newEnch.put(enchantment, level); - int cost = 0; - - switch (enchantment.getWeight()) - { - case 1: - cost = 8; - break; - - case 2: - cost = 4; - - case 3: - case 4: - case 6: - case 7: - case 8: - case 9: - default: - break; - - case 5: - cost = 2; - break; - - case 10: - cost = 1; - } - - if (isBook) - { - cost = Math.max(1, cost / 2); - } - - totalCost += cost * level; - } + totalCost += cost * level; } } } @@ -398,18 +349,13 @@ public class ContainerRepair extends Container // newStack.setStackDisplayName(this.repairedItemName); // } - this.maximumCost = repairCost + totalCost; + this.maximumCost = totalCost; if (totalCost <= 0) { newStack = null; } - if (renameCost == totalCost && renameCost > 0 && this.maximumCost >= 40) - { - this.maximumCost = 39; - } - if (/* Config.repairExperience && */ this.maximumCost >= 40) // && !this.thePlayer.creative) { newStack = null; @@ -417,17 +363,6 @@ public class ContainerRepair extends Container if (newStack != null) { - if(!this.theWorld.client && Vars.repairXP) { - int cost = newStack.getRepairCost(); - - if (repStack != null && cost < repStack.getRepairCost()) - { - cost = repStack.getRepairCost(); - } - - cost = cost * 2 + 1; - newStack.setRepairCost(cost); - } EnchantmentHelper.setEnchantments(newEnch, newStack); } @@ -529,42 +464,4 @@ public class ContainerRepair extends Container return itemstack; } - - /** - * used by the Anvil GUI to update the Item Name being typed by the player - */ -// public void updateItemName(String newName) -// { -// this.repairedItemName = newName; -// -// if (this.getSlot(2).getHasStack()) -// { -// ItemStack itemstack = this.getSlot(2).getStack(); -// -// if (isBlank(newName)) -// { -// itemstack.clearCustomName(); -// } -// else -// { -// itemstack.setStackDisplayName(this.repairedItemName); -// } -// } -// -// this.updateRepairOutput(); -// } - -// private static boolean isBlank(String s) { -// if(s != null && !s.isEmpty()) { -// for(int i = 0; i < s.length(); ++i) { -// if(!Character.isWhitespace(s.charAt(i))) { -// return false; -// } -// } -// return true; -// } -// else { -// return true; -// } -// } } diff --git a/common/src/main/java/common/inventory/ContainerPlayer.java b/common/src/main/java/common/inventory/ContainerPlayer.java index be2b6a66..3a184137 100755 --- a/common/src/main/java/common/inventory/ContainerPlayer.java +++ b/common/src/main/java/common/inventory/ContainerPlayer.java @@ -52,7 +52,7 @@ public class ContainerPlayer extends Container { return null; } } - else if(itemstack.getItem() instanceof ItemArmor armor && (idx = this.getFreeSlotFor(playerIn, armor.getArmorType())) >= 0) { + else if(itemstack.getItem() instanceof ItemArmor armor && itemstack.getSize() == 1 && (idx = this.getFreeSlotFor(playerIn, armor.getArmorType())) >= 0) { if(!this.mergeItemStack(itemstack1, idx, idx + 1)) { return null; } diff --git a/common/src/main/java/common/inventory/Slot.java b/common/src/main/java/common/inventory/Slot.java index e8e8238c..fe26a91e 100755 --- a/common/src/main/java/common/inventory/Slot.java +++ b/common/src/main/java/common/inventory/Slot.java @@ -78,9 +78,9 @@ public class Slot return true; } - public int getItemStackLimit(ItemStack stack) + public final int getItemStackLimit(ItemStack stack) { - return this.canStackItems() ? 1000000000 : 1; + return this.canStackItems() ? Integer.MAX_VALUE : 1; } public ItemStack decrStackSize(int amount) diff --git a/common/src/main/java/common/item/CheatTab.java b/common/src/main/java/common/item/CheatTab.java index 74fecaa5..8e97f8bb 100755 --- a/common/src/main/java/common/item/CheatTab.java +++ b/common/src/main/java/common/item/CheatTab.java @@ -99,7 +99,7 @@ public enum CheatTab { }, ENCHANTMENTS("Verzauberungen", false) { protected Item getIconItem() { - return Items.enchanted_book_unbreaking; + return Items.enchanted_book_protection; } }, MAGIC("Magie", false) { diff --git a/common/src/main/java/common/item/Item.java b/common/src/main/java/common/item/Item.java index 4623c69c..c67a742a 100755 --- a/common/src/main/java/common/item/Item.java +++ b/common/src/main/java/common/item/Item.java @@ -25,9 +25,7 @@ import common.world.World; public class Item { private final Block block; - private boolean stackable = true; private int weight = ItemWeight.M.getWeight(); - private int maxDamage = 0; private Item containerItem; private String display; private String[] description; @@ -59,12 +57,6 @@ public class Item { this.setFuelAmount(this.block.getFuelAmount()); } - public final Item setUnstackable() { - this.stackable = false; - this.maxDamage = 0; - return this; - } - public final Item setWeight(int weight) { this.weight = weight; return this; @@ -74,12 +66,6 @@ public class Item { return this.setWeight(size.getWeight()); } - public final Item setMaxDamage(int max) { - this.stackable = false; - this.maxDamage = max; - return this; - } - public final Item setDisplay(String name) { this.display = name; return this; @@ -135,18 +121,6 @@ public class Item { return this.weight; } - public final int getMaxAmount() { - return this.stackable ? 67108864 : 1; - } - - public final int getMaxDamage() { - return this.maxDamage; - } - - public final boolean isDamageable() { - return this.maxDamage > 0; - } - public final int getFuelAmount() { return this.fuelAmount; } @@ -241,12 +215,10 @@ public class Item { return stack; } - public boolean hitEntity(ItemStack stack, EntityLiving target, EntityLiving attacker) { - return false; + public void hitEntity(ItemStack stack, EntityLiving target, EntityLiving attacker) { } - public boolean onBlockDestroyed(ItemStack stack, World worldIn, Block blockIn, LocalPos pos, EntityLiving playerIn) { - return false; + public void onBlockDestroyed(ItemStack stack, World worldIn, Block blockIn, LocalPos pos, EntityLiving playerIn) { } public boolean itemInteractionForEntity(ItemStack stack, EntityNPC playerIn, EntityLiving target) { @@ -264,10 +236,6 @@ public class Item { public void onPlayerStoppedUsing(ItemStack stack, World worldIn, EntityNPC playerIn, int timeLeft) { } - public boolean canEnchant(ItemStack stack) { - return this.getMaxAmount() == 1 && this.isDamageable(); - } - public int getItemEnchantability() { return 0; } diff --git a/common/src/main/java/common/item/ItemStack.java b/common/src/main/java/common/item/ItemStack.java index 5229d438..378112d6 100755 --- a/common/src/main/java/common/item/ItemStack.java +++ b/common/src/main/java/common/item/ItemStack.java @@ -8,52 +8,27 @@ import java.util.Set; import common.collect.Lists; import common.collect.Maps; import common.enchantment.Enchantment; -import common.enchantment.EnchantmentHelper; import common.entity.npc.Attribute; import common.entity.npc.EntityNPC; -import common.entity.types.EntityLiving; import common.init.ItemRegistry; import common.item.material.ItemArmor; -import common.item.weapon.ItemBow; -import common.rng.Random; import common.tags.TagObject; import common.util.Color; import common.util.Equipment; public final class ItemStack { - public class ItemKey { - public ItemStack getStack() { - return ItemStack.this; - } - - public int hashCode() { - return ItemStack.this.item.hashCode(); - } - - public boolean equals(Object other) { - if(other == this) - return true; - if(other instanceof ItemKey key) - return ItemStack.this == key.getStack() || (ItemStack.this.isStackable() && key.getStack().isStackable() && ItemStack.this.itemEquals(key.getStack()) && ItemStack.this.dataEquals(key.getStack())); - return false; - } - } - private Item item; private int size; private String name; private int color = 0xffffffff; - private int damage; - private int repairCost; private Map enchantments; - private ItemKey key; public static ItemStack readFromTag(TagObject tag) { Item item = tag.hasString("id") ? ItemRegistry.byName(tag.getString("id")) : null; int size = tag.hasInt("size") ? tag.getInt("size") : 1; if(item == null || size < 1) return null; - ItemStack stack = new ItemStack(item, Math.min(item.getMaxAmount(), size)); + ItemStack stack = new ItemStack(item, size); stack.readTags(tag); return stack; } @@ -90,10 +65,6 @@ public final class ItemStack { tag.setInt("size", this.size); if(this.color != 0xffffffff) tag.setInt("color", this.color); - if(this.damage != 0) - tag.setInt("dmg", this.damage); - if(this.repairCost != 0) - tag.setInt("cost", this.repairCost); if(this.name != null) tag.setString("name", this.name); if(this.enchantments != null) { @@ -113,8 +84,6 @@ public final class ItemStack { public void readTags(TagObject tag) { this.color = tag.hasInt("color") ? tag.getInt("color") : 0xffffffff; this.color = (this.color & 0xff000000) != 0 ? 0xffffffff : this.color; - this.damage = tag.hasInt("dmg") ? Math.max(0, tag.getInt("dmg")) : 0; - this.repairCost = tag.hasInt("cost") ? Math.max(0, tag.getInt("cost")) : 0; this.name = tag.hasString("name") ? tag.getString("name") : null; this.name = this.name != null && this.name.length() > 32 ? this.name.substring(0, 32) : this.name; this.enchantments = tag.hasList("ench") ? Maps.newEnumMap(Enchantment.class) : null; @@ -138,7 +107,7 @@ public final class ItemStack { } public boolean dataEquals(ItemStack other) { - if(this.color != other.color || this.damage != other.damage || this.repairCost != other.repairCost + if(this.color != other.color || (this.name != null) != (other.name != null) || (this.name != null && !this.name.equals(other.name)) || (this.enchantments != null) != (other.enchantments != null) || (this.enchantments != null && this.enchantments.size() != other.enchantments.size())) @@ -158,8 +127,6 @@ public final class ItemStack { public void copyData(ItemStack stack) { this.color = stack.color; - this.damage = stack.damage; - this.repairCost = stack.repairCost; this.name = stack.name; this.enchantments = stack.enchantments == null ? null : Maps.newEnumMap(Enchantment.class); if(this.enchantments != null) @@ -198,38 +165,6 @@ public final class ItemStack { return this.size <= 0; } - public boolean isStacked() { - return this.size > 1; - } - - public boolean isFull() { - return this.size >= this.getMaxStackSize(); - } - - public boolean isOverLimit() { - return this.size > this.getMaxStackSize(); - } - - public int getMaxStackSize() { - return this.item.getMaxAmount(); - } - - public boolean isStackable() { - return this.getMaxStackSize() > 1 && (!this.isItemStackDamageable() || !this.isItemDamaged()); - } - - public boolean isItemStackDamageable() { - return this.item != null && this.item.getMaxDamage() > 0; - } - - public boolean isItemDamaged() { - return this.isItemStackDamageable() && this.getItemDamage() > 0; - } - - public int getMaxDamage() { - return this.item.getMaxDamage(); - } - public int getMaxItemUseDuration() { return this.item.getMaxItemUseDuration(this); } @@ -238,10 +173,6 @@ public final class ItemStack { return this.item.getItemUseAction(); } - public int getItemDamage() { - return this.isItemStackDamageable() ? this.damage : 0; - } - public String getDisplayName() { return this.name != null ? this.name : this.item.getDisplay(); } @@ -262,10 +193,6 @@ public final class ItemStack { return this.item.getColor(this); } - public boolean isItemEnchantable() { - return !this.item.canEnchant(this) ? false : !this.isItemEnchanted(); - } - public Set> getEnchantments() { return this.enchantments == null ? null : this.enchantments.entrySet(); } @@ -278,10 +205,6 @@ public final class ItemStack { return this.enchantments != null; } - public int getRepairCost() { - return this.repairCost; - } - public Map getAttributeModifiers() { Map map = Maps.newEnumMap(Attribute.class); this.item.getModifiers(map); @@ -312,12 +235,6 @@ public final class ItemStack { } - public void setItemDamage(int damage) { - if(!this.isItemStackDamageable()) - return; - this.damage = Math.max(0, damage); - } - public void setStackDisplayName(String displayName) { this.name = displayName != null && !displayName.isEmpty() ? displayName : null; this.name = this.name != null && this.name.length() > 32 ? this.name.substring(0, 32) : this.name; @@ -361,10 +278,6 @@ public final class ItemStack { this.enchantments.putAll(enchMap); } - public void setRepairCost(int cost) { - this.repairCost = Math.max(0, cost); - } - public void setItem(Item newItem) { this.item = newItem; } @@ -393,46 +306,11 @@ public final class ItemStack { return (this.size = Math.max(this.size - amount, 0)) <= 0; } - public boolean incrSize() { - return (this.size += 1) >= this.getMaxStackSize(); + public void incrSize() { + this.size += 1; } - public boolean incrSize(int amount) { - return (this.size += amount) >= this.getMaxStackSize(); - } - - public void damage(int amount, EntityLiving entity, Random rand) { - if(!this.isItemStackDamageable()) - return; - if(amount > 0) { - int unbreaking = EnchantmentHelper.getEnchantmentLevel(Enchantment.UNBREAKING, this); - int negated = 0; - for(int z = 0; unbreaking > 0 && z < amount; z++) { - if(Enchantment.negateDamage(this, unbreaking, rand)) - ++negated; - } - if((amount -= negated) <= 0) - return; - } - int damage = this.getItemDamage() + amount; - this.setItemDamage(damage); - if(damage > this.getMaxDamage()) { - if(entity != null) - entity.renderBrokenItemStack(this); - this.decrSize(); - if(entity != null && entity.isPlayer() && this.isEmpty() && this.item instanceof ItemBow) - ((EntityNPC)entity).clearHeldItem(); - this.setItemDamage(0); - } - } - - public void damage(int amount, EntityLiving entity) { - this.damage(amount, entity, entity.getRNG()); - } - - public ItemKey getKey() { - if(this.key == null) - this.key = new ItemKey(); - return this.key; + public void incrSize(int amount) { + this.size += amount; } } diff --git a/common/src/main/java/common/item/RngLoot.java b/common/src/main/java/common/item/RngLoot.java index b762a76a..d44c0c3f 100755 --- a/common/src/main/java/common/item/RngLoot.java +++ b/common/src/main/java/common/item/RngLoot.java @@ -42,17 +42,7 @@ public class RngLoot extends RngItem RngLoot loot = (RngLoot)list.pick(random); int j = loot.minStackSize + random.zrange(loot.maxStackSize - loot.minStackSize + 1); - if (loot.item.getMaxStackSize() >= j) - { - inv.setInventorySlotContents(random.zrange(inv.getSizeInventory()), loot.item.copy(j)); - } - else - { - for (int k = 0; k < j; ++k) - { - inv.setInventorySlotContents(random.zrange(inv.getSizeInventory()), loot.item.copy(1)); - } - } + inv.setInventorySlotContents(random.zrange(inv.getSizeInventory()), loot.item.copy(j)); } } diff --git a/common/src/main/java/common/item/consumable/ItemMilkBottle.java b/common/src/main/java/common/item/consumable/ItemMilkBottle.java index cd670048..ac2bc9db 100755 --- a/common/src/main/java/common/item/consumable/ItemMilkBottle.java +++ b/common/src/main/java/common/item/consumable/ItemMilkBottle.java @@ -14,7 +14,6 @@ import common.world.World; public class ItemMilkBottle extends Item { public ItemMilkBottle() { - this.setUnstackable(); this.setTab(CheatTab.FOOD); this.setMagnetic(); } diff --git a/common/src/main/java/common/item/consumable/ItemPotion.java b/common/src/main/java/common/item/consumable/ItemPotion.java index 61368d58..ed59cd24 100755 --- a/common/src/main/java/common/item/consumable/ItemPotion.java +++ b/common/src/main/java/common/item/consumable/ItemPotion.java @@ -12,7 +12,6 @@ import common.init.Items; import common.init.SoundEvent; import common.item.CheatTab; import common.item.Item; -import common.item.ItemAction; import common.item.ItemControl; import common.item.ItemStack; import common.item.ItemCategory; diff --git a/common/src/main/java/common/item/material/ItemAnimalArmor.java b/common/src/main/java/common/item/material/ItemAnimalArmor.java index 0c8e1c40..1339abb9 100755 --- a/common/src/main/java/common/item/material/ItemAnimalArmor.java +++ b/common/src/main/java/common/item/material/ItemAnimalArmor.java @@ -21,7 +21,6 @@ public class ItemAnimalArmor extends Item { this.material = material; this.texture = texture; this.type = type; - this.setUnstackable(); this.setTab(CheatTab.ARMOR); if(this.material.isMagnetic()) this.setMagnetic(); diff --git a/common/src/main/java/common/item/material/ItemArmor.java b/common/src/main/java/common/item/material/ItemArmor.java index a78feaa2..917b0544 100755 --- a/common/src/main/java/common/item/material/ItemArmor.java +++ b/common/src/main/java/common/item/material/ItemArmor.java @@ -31,11 +31,6 @@ public class ItemArmor extends Item { this.material = material; this.texture = texture; this.type = armorType; - int dmg = material.getDurability(armorType); - if(dmg <= 0) - this.setUnstackable(); - else - this.setMaxDamage(dmg); this.setTab(CheatTab.ARMOR); if(this.material.canBeDyed()) this.setDefaultColor(this.material.getDefaultColor()); @@ -67,7 +62,7 @@ public class ItemArmor extends Item { } public boolean getIsRepairable(ItemStack toRepair, ItemStack repair) { - return this.material.isRepairItem(repair.getItem()) ? true : super.getIsRepairable(toRepair, repair); + return this.material.isRepairItem(repair.getItem()); } /* diff --git a/common/src/main/java/common/item/material/ItemBook.java b/common/src/main/java/common/item/material/ItemBook.java index eaeb932f..09379eae 100755 --- a/common/src/main/java/common/item/material/ItemBook.java +++ b/common/src/main/java/common/item/material/ItemBook.java @@ -1,13 +1,8 @@ package common.item.material; import common.item.Item; -import common.item.ItemStack; public class ItemBook extends Item { - public boolean canEnchant(ItemStack stack) { - return stack.getSize() == 1; - } - public int getItemEnchantability() { return 1; } diff --git a/common/src/main/java/common/item/material/ItemBucket.java b/common/src/main/java/common/item/material/ItemBucket.java index 0d55d713..f47a7aa5 100755 --- a/common/src/main/java/common/item/material/ItemBucket.java +++ b/common/src/main/java/common/item/material/ItemBucket.java @@ -115,13 +115,10 @@ public class ItemBucket extends Item public ItemBucket(BlockDynamicLiquid liquid, boolean recursive) { - if(liquid != null) { - this.setUnstackable(); + if(liquid != null) this.setDisplay((recursive ? "Flutender " : "") + "Eimer mit " + liquid.getDisplay(), liquid.getDescription()); - } - else { + else this.setDisplay((recursive ? "Unendlicher " : "") + "Eimer"); - } this.liquid = liquid; this.recursive = recursive; this.setTab(liquid == null ? CheatTab.TOOLS : CheatTab.LIQUIDS); diff --git a/common/src/main/java/common/item/projectile/ItemChargedOrb.java b/common/src/main/java/common/item/projectile/ItemChargedOrb.java index f3632cd5..cbdc6901 100755 --- a/common/src/main/java/common/item/projectile/ItemChargedOrb.java +++ b/common/src/main/java/common/item/projectile/ItemChargedOrb.java @@ -4,7 +4,6 @@ import common.block.artificial.BlockPortalFrame; import common.entity.item.EntityOrb; import common.entity.npc.EntityNPC; import common.init.Blocks; -import common.init.Items; import common.init.SoundEvent; import common.item.CheatTab; import common.item.Item; @@ -22,7 +21,6 @@ public class ItemChargedOrb extends Item public ItemChargedOrb() { this.setTab(CheatTab.MAGIC); - this.setMaxDamage(16); this.setColor(Color.DARK_MAGENTA); this.setFragile(); } @@ -37,9 +35,7 @@ public class ItemChargedOrb extends Item // { // --itemStackIn.stackSize; // } - if(itemStackIn.getItemDamage() >= this.getMaxDamage()) - return itemStackIn; - itemStackIn.damage(1, playerIn); + itemStackIn.decrSize(); worldIn.playSoundAtEntity(playerIn, SoundEvent.THROW, 0.5F); if (!worldIn.client) @@ -48,14 +44,14 @@ public class ItemChargedOrb extends Item } // playerIn.triggerAchievement(StatRegistry.objectUseStats[ItemRegistry.getIdFromItem(this)]); - return itemStackIn.getItemDamage() >= this.getMaxDamage() ? new ItemStack(Items.orb) : itemStackIn; + return itemStackIn; } public boolean onItemUse(ItemStack stack, EntityNPC playerIn, World worldIn, LocalPos pos, Facing side, float hitX, float hitY, float hitZ) { State iblockstate = worldIn.getState(pos); - if (!stack.isItemDamaged() && playerIn.canPlayerEdit(pos.offset(side), side, stack) /* && worldIn.dimension.getDimensionId() == 0 || worldIn.dimension.getDimensionId() == 1) */ && iblockstate.getBlock() == Blocks.portal_frame && !((Boolean)iblockstate.getValue(BlockPortalFrame.ORB)).booleanValue()) + if (playerIn.canPlayerEdit(pos.offset(side), side, stack) /* && worldIn.dimension.getDimensionId() == 0 || worldIn.dimension.getDimensionId() == 1) */ && iblockstate.getBlock() == Blocks.portal_frame && !((Boolean)iblockstate.getValue(BlockPortalFrame.ORB)).booleanValue()) { if (worldIn.client) { diff --git a/common/src/main/java/common/item/spawner/ItemBoat.java b/common/src/main/java/common/item/spawner/ItemBoat.java index 934db004..1cce5980 100755 --- a/common/src/main/java/common/item/spawner/ItemBoat.java +++ b/common/src/main/java/common/item/spawner/ItemBoat.java @@ -26,7 +26,6 @@ public class ItemBoat extends Item { public ItemBoat() { - this.setUnstackable(); this.setTab(CheatTab.VEHICLES); } diff --git a/common/src/main/java/common/item/spawner/ItemMinecart.java b/common/src/main/java/common/item/spawner/ItemMinecart.java index 7b7488ac..f5264db3 100755 --- a/common/src/main/java/common/item/spawner/ItemMinecart.java +++ b/common/src/main/java/common/item/spawner/ItemMinecart.java @@ -22,7 +22,6 @@ public class ItemMinecart extends Item { public ItemMinecart() { - this.setUnstackable(); this.setTab(CheatTab.VEHICLES); this.setMagnetic(); } diff --git a/common/src/main/java/common/item/tool/ItemCamera.java b/common/src/main/java/common/item/tool/ItemCamera.java index 54185cd2..5d4256e2 100755 --- a/common/src/main/java/common/item/tool/ItemCamera.java +++ b/common/src/main/java/common/item/tool/ItemCamera.java @@ -11,7 +11,6 @@ import common.world.World; public class ItemCamera extends Item { public ItemCamera() { - this.setUnstackable(); this.setMagnetic(); } diff --git a/common/src/main/java/common/item/tool/ItemEditor.java b/common/src/main/java/common/item/tool/ItemEditor.java index 4eb8b66e..34173b7e 100755 --- a/common/src/main/java/common/item/tool/ItemEditor.java +++ b/common/src/main/java/common/item/tool/ItemEditor.java @@ -11,7 +11,6 @@ import common.world.World; public class ItemEditor extends Item { public ItemEditor() { - this.setUnstackable(); this.setTab(CheatTab.TOOLS); } diff --git a/common/src/main/java/common/item/tool/ItemFire.java b/common/src/main/java/common/item/tool/ItemFire.java index 47492e83..f26d1a5c 100755 --- a/common/src/main/java/common/item/tool/ItemFire.java +++ b/common/src/main/java/common/item/tool/ItemFire.java @@ -26,7 +26,6 @@ public class ItemFire extends Item public ItemFire(BlockFire fireBlock) { this.fireBlock = fireBlock; - this.setMaxDamage(64); this.setTab(CheatTab.TOOLS); this.setMagnetic(); } @@ -58,7 +57,6 @@ public class ItemFire extends Item worldIn.setState(pos, this.fireBlock.getState()); } - stack.damage(1, playerIn); return true; } } @@ -71,7 +69,6 @@ public class ItemFire extends Item { world.setState(pos, this.fireBlock.getState()); - stack.damage(1, null, world.rand); world.playEffect(1000, blockpos, 0); } else if (world.getState(pos).getBlock() instanceof BlockTNT tnt) diff --git a/common/src/main/java/common/item/tool/ItemFishingRod.java b/common/src/main/java/common/item/tool/ItemFishingRod.java index c247629d..21f93ed2 100755 --- a/common/src/main/java/common/item/tool/ItemFishingRod.java +++ b/common/src/main/java/common/item/tool/ItemFishingRod.java @@ -15,7 +15,6 @@ public class ItemFishingRod extends Item { public ItemFishingRod() { - this.setMaxDamage(64); this.setTab(CheatTab.TOOLS); } @@ -48,7 +47,6 @@ public class ItemFishingRod extends Item if (playerIn.fishEntity != null) { int i = playerIn.fishEntity.handleHookRetraction(); - itemStackIn.damage(i, playerIn); playerIn.swingItem(); } else diff --git a/common/src/main/java/common/item/tool/ItemHoe.java b/common/src/main/java/common/item/tool/ItemHoe.java index 8cff62b8..1d0dbaa8 100755 --- a/common/src/main/java/common/item/tool/ItemHoe.java +++ b/common/src/main/java/common/item/tool/ItemHoe.java @@ -18,7 +18,6 @@ public class ItemHoe extends Item { public ItemHoe() { - this.setMaxDamage(131); this.setTab(CheatTab.TOOLS); } @@ -70,7 +69,6 @@ public class ItemHoe extends Item else { worldIn.setState(target, newState); - stack.damage(1, player); return true; } } diff --git a/common/src/main/java/common/item/tool/ItemMagnet.java b/common/src/main/java/common/item/tool/ItemMagnet.java index d9e7999e..b060e71f 100755 --- a/common/src/main/java/common/item/tool/ItemMagnet.java +++ b/common/src/main/java/common/item/tool/ItemMagnet.java @@ -20,7 +20,6 @@ public class ItemMagnet extends Item { public ItemMagnet(boolean chicken) { this.setTab(CheatTab.TOOLS); - this.setUnstackable(); this.setMagnetic(); this.chicken = chicken; } diff --git a/common/src/main/java/common/item/tool/ItemSaddle.java b/common/src/main/java/common/item/tool/ItemSaddle.java index 708355ff..a818d82f 100755 --- a/common/src/main/java/common/item/tool/ItemSaddle.java +++ b/common/src/main/java/common/item/tool/ItemSaddle.java @@ -12,7 +12,6 @@ public class ItemSaddle extends Item { public ItemSaddle() { - this.setUnstackable(); this.setTab(CheatTab.TOOLS); } @@ -43,14 +42,4 @@ public class ItemSaddle extends Item return false; } } - - /** - * Current implementations of this method in child classes do not use the entry argument beside ev. They just raise - * the damage on the stack. - */ - public boolean hitEntity(ItemStack stack, EntityLiving target, EntityLiving attacker) - { - this.itemInteractionForEntity(stack, (EntityNPC)null, target); - return true; - } } diff --git a/common/src/main/java/common/item/tool/ItemSpaceNavigator.java b/common/src/main/java/common/item/tool/ItemSpaceNavigator.java index b22c41e1..a6fdfb1c 100755 --- a/common/src/main/java/common/item/tool/ItemSpaceNavigator.java +++ b/common/src/main/java/common/item/tool/ItemSpaceNavigator.java @@ -19,7 +19,6 @@ public class ItemSpaceNavigator extends Item { private boolean local = true; public ItemSpaceNavigator() { - this.setUnstackable(); this.setColor(Color.DARK_GREEN); this.setMagnetic(); } diff --git a/common/src/main/java/common/item/tool/ItemTool.java b/common/src/main/java/common/item/tool/ItemTool.java index 3c9dc212..cd27ffef 100755 --- a/common/src/main/java/common/item/tool/ItemTool.java +++ b/common/src/main/java/common/item/tool/ItemTool.java @@ -2,10 +2,8 @@ package common.item.tool; import java.util.List; -import common.block.Block; import common.enchantment.EnchantmentHelper; import common.entity.npc.EntityNPC; -import common.entity.types.EntityLiving; import common.init.ToolMaterial; import common.init.ToolType; import common.item.CheatTab; @@ -14,7 +12,6 @@ import common.item.ItemAction; import common.item.ItemStack; import common.item.ItemCategory; import common.item.WieldType; -import common.util.LocalPos; import common.util.Clientside; import common.util.Color; import common.util.Equipment; @@ -27,7 +24,6 @@ public class ItemTool extends Item { public ItemTool(ToolMaterial material, Equipment type) { this.material = material; this.type = type; - this.setMaxDamage(material.getDurability()); this.setTab(this.type.isWeapon() ? CheatTab.WEAPONS : CheatTab.TOOLS); if(this.material.isMagnetic()) this.setMagnetic(); @@ -53,17 +49,6 @@ public class ItemTool extends Item { return this.type.getDamage() >= 0 ? (this.material.getDamage() + this.type.getDamage() + EnchantmentHelper.getDamageModifier(stack)) : 0; } - public boolean hitEntity(ItemStack stack, EntityLiving target, EntityLiving attacker) { - stack.damage(this.type.isWeapon() ? 1 : 2, attacker); - return true; - } - - public boolean onBlockDestroyed(ItemStack stack, World world, Block block, LocalPos pos, EntityLiving player) { - if(block.getHardness() != 0) - stack.damage(1, player); - return true; - } - public Equipment getToolType() { return this.type; } diff --git a/common/src/main/java/common/item/tool/ItemWand.java b/common/src/main/java/common/item/tool/ItemWand.java index 02f1f9d2..86a123c6 100755 --- a/common/src/main/java/common/item/tool/ItemWand.java +++ b/common/src/main/java/common/item/tool/ItemWand.java @@ -20,7 +20,6 @@ import common.world.AWorldServer; public abstract class ItemWand extends Item { public ItemWand() { - this.setUnstackable(); this.setTab(CheatTab.TOOLS); } diff --git a/common/src/main/java/common/item/tool/ItemWeatherToken.java b/common/src/main/java/common/item/tool/ItemWeatherToken.java index 9b03e14c..978fe780 100755 --- a/common/src/main/java/common/item/tool/ItemWeatherToken.java +++ b/common/src/main/java/common/item/tool/ItemWeatherToken.java @@ -15,7 +15,6 @@ public class ItemWeatherToken extends Item { public ItemWeatherToken(Weather weather) { this.weather = weather; - this.setUnstackable(); this.setColor(Color.VIOLET); this.setDisplay("Wetterkristall (" + this.weather.getDisplay() + ")"); this.setMagnetic(); diff --git a/common/src/main/java/common/item/tool/ItemWhip.java b/common/src/main/java/common/item/tool/ItemWhip.java index 5b07db0d..95fed84b 100755 --- a/common/src/main/java/common/item/tool/ItemWhip.java +++ b/common/src/main/java/common/item/tool/ItemWhip.java @@ -9,33 +9,20 @@ import common.item.ItemCategory; import common.item.WieldType; import common.world.World; -public class ItemWhip extends Item -{ - public ItemWhip() - { - this.setTab(CheatTab.TOOLS); - this.setMaxDamage(35); - } +public class ItemWhip extends Item { + public ItemWhip() { + this.setTab(CheatTab.TOOLS); + } public ItemCategory getCategory() { return ItemCategory.USEABLE; } - public ItemStack onItemRightClick(ItemStack itemStackIn, World worldIn, EntityNPC playerIn) - { - if (playerIn.isRiding() && playerIn.vehicle instanceof EntityPig) - { - EntityPig entitypig = (EntityPig)playerIn.vehicle; - - if (entitypig.getAIControlledByPlayer().isControlledByPlayer() && itemStackIn.getMaxDamage() - itemStackIn.getItemDamage() >= 7) - { - entitypig.getAIControlledByPlayer().boostSpeed(); - itemStackIn.damage(7, playerIn); - } - } - - return itemStackIn; - } + public ItemStack onItemRightClick(ItemStack stack, World world, EntityNPC player) { + if(player.isRiding() && player.vehicle instanceof EntityPig pig && pig.getAIControlledByPlayer().isControlledByPlayer()) + pig.getAIControlledByPlayer().boostSpeed(); + return stack; + } public WieldType getWieldType() { return WieldType.TOOL_FLIP; diff --git a/common/src/main/java/common/item/weapon/ItemBow.java b/common/src/main/java/common/item/weapon/ItemBow.java index ea07404a..28de41e1 100755 --- a/common/src/main/java/common/item/weapon/ItemBow.java +++ b/common/src/main/java/common/item/weapon/ItemBow.java @@ -19,7 +19,6 @@ public class ItemBow extends Item { public ItemBow() { - this.setMaxDamage(384); this.setTab(CheatTab.WEAPONS); } @@ -76,7 +75,6 @@ public class ItemBow extends Item entityarrow.setFire(100); } - stack.damage(1, playerIn); worldIn.playSoundAtEntity(playerIn, SoundEvent.THROW, 1.0F); if (flag) diff --git a/common/src/main/java/common/item/weapon/ItemExterminator.java b/common/src/main/java/common/item/weapon/ItemExterminator.java index 83aec16e..3b39c2ad 100755 --- a/common/src/main/java/common/item/weapon/ItemExterminator.java +++ b/common/src/main/java/common/item/weapon/ItemExterminator.java @@ -13,7 +13,6 @@ import common.world.AWorldServer; public class ItemExterminator extends Item { public ItemExterminator() { - this.setUnstackable(); this.setColor(Color.DARK_RED); this.setTab(CheatTab.WEAPONS); this.setMagnetic(); diff --git a/common/src/main/java/common/item/weapon/ItemGunBase.java b/common/src/main/java/common/item/weapon/ItemGunBase.java index 10d98092..7b00385f 100755 --- a/common/src/main/java/common/item/weapon/ItemGunBase.java +++ b/common/src/main/java/common/item/weapon/ItemGunBase.java @@ -23,7 +23,6 @@ public abstract class ItemGunBase extends Item public ItemGunBase(int durability) { - this.setMaxDamage(durability); this.setTab(CheatTab.WEAPONS); } @@ -39,8 +38,6 @@ public abstract class ItemGunBase extends Item public ItemStack onItemRightClick(ItemStack stack, World world, EntityNPC player) { - if(stack.getItemDamage() >= this.getMaxDamage()) - return stack; boolean flag = EnchantmentHelper.getEnchantmentLevel(Enchantment.INFINITY, stack) > 0; if (flag || player.hasItem(this.getAmmo())) { @@ -54,7 +51,6 @@ public abstract class ItemGunBase extends Item bullet.setDamage(bullet.getDamage() + j); } - stack.damage(1, player); world.playSoundAtEntity(player, this.getLaunchSound(), 1.0F); if(!flag) diff --git a/common/src/main/java/common/network/PacketBuffer.java b/common/src/main/java/common/network/PacketBuffer.java index c3fed646..19b1f686 100755 --- a/common/src/main/java/common/network/PacketBuffer.java +++ b/common/src/main/java/common/network/PacketBuffer.java @@ -124,9 +124,6 @@ public class PacketBuffer { this.writeVarInt(stack.getSize()); if(stack.getItem().canBeDyed()) this.writeVarInt(stack.getRawColor()); - if(stack.getItem().isDamageable()) - this.writeVarInt(stack.getItemDamage()); - this.writeVarInt(stack.getRepairCost()); this.writeString(stack.hasDisplayName() ? stack.getDisplayName() : ""); Set> ench = stack.getEnchantments(); this.writeVarInt(ench == null ? 0 : ench.size()); @@ -145,9 +142,6 @@ public class PacketBuffer { ItemStack stack = new ItemStack(ItemRegistry.byId(id), this.readVarInt()); if(stack.getItem().canBeDyed()) stack.setColor(this.readVarInt()); - if(stack.getItem().isDamageable()) - stack.setItemDamage(this.readVarInt()); - stack.setRepairCost(this.readVarInt()); stack.setStackDisplayName(this.readString(32)); int num = this.readVarInt(); for(int z = 0; z < num; z++) { diff --git a/common/src/main/java/common/tileentity/Device.java b/common/src/main/java/common/tileentity/Device.java index d2cc26fb..7b2cceee 100755 --- a/common/src/main/java/common/tileentity/Device.java +++ b/common/src/main/java/common/tileentity/Device.java @@ -323,10 +323,6 @@ public abstract class Device extends TileEntity implements IInventory, ITickable return this.inventory[slot] != null && this.inventory[slot].getSize() >= amount; } - public boolean isOutputFull(int slot) { - return this.inventory[slot - this.inputs] != null && this.inventory[slot - this.inputs].isFull(); - } - public void clear() { for(int i = 0; i < this.inventory.length; ++i) { this.inventory[i] = null; diff --git a/common/src/main/java/common/tileentity/DeviceFurnace.java b/common/src/main/java/common/tileentity/DeviceFurnace.java index 3d22cf3e..09157a40 100755 --- a/common/src/main/java/common/tileentity/DeviceFurnace.java +++ b/common/src/main/java/common/tileentity/DeviceFurnace.java @@ -142,7 +142,7 @@ public class DeviceFurnace extends Device { ItemStack itemstack = SmeltingRegistry.getResult(this.getStackInSlot(0)); ItemStack out = this.getStackInSlot(2); - return itemstack == null ? false : (out == null ? true : (!out.itemEquals(itemstack) ? false : (!out.isFull() ? true : out.getSize() < itemstack.getMaxStackSize()))); + return itemstack != null && (out == null || out.itemEquals(itemstack)); } } diff --git a/common/src/main/java/common/tileentity/TileEntityItemPipe.java b/common/src/main/java/common/tileentity/TileEntityItemPipe.java index e6c17859..61799865 100755 --- a/common/src/main/java/common/tileentity/TileEntityItemPipe.java +++ b/common/src/main/java/common/tileentity/TileEntityItemPipe.java @@ -157,7 +157,7 @@ public class TileEntityItemPipe extends TileEntity implements IInventory, ITicka } if(--this.inCooldown <= 0) { this.inCooldown = 0; - if((this.stack == null || !this.stack.isFull()) && this.transferIn()) { + if(this.transferIn()) { this.inCooldown = Vars.pipeInDelay; changed = true; } @@ -192,29 +192,13 @@ public class TileEntityItemPipe extends TileEntity implements IInventory, ITicka // out - private static boolean isInventoryFull(IInventory inv, Facing side) { + private static boolean canTransfer(IInventory inv, Facing side) { if(inv instanceof ISidedInventory sided) { - int slot = sided.getSlotForFace(side); - - if(slot >= 0) { - ItemStack stack = sided.getStackInSlot(slot); - if(stack == null || !stack.isFull()) - return false; - } + return sided.getSlotForFace(side) >= 0; } else { - int i = inv.getSizeInventory(); - - for(int j = 0; j < i; ++j) { - ItemStack stack = inv.getStackInSlot(j); - - if(stack == null || !stack.isFull()) { - return false; - } - } + return inv.getSizeInventory() > 0; } - - return true; } protected boolean transferOut() { @@ -223,7 +207,7 @@ public class TileEntityItemPipe extends TileEntity implements IInventory, ITicka if(iinventory == null) return false; Facing dir = state.getValue(BlockPipe.FACING).getOpposite(); - if(isInventoryFull(iinventory, dir)) + if(!canTransfer(iinventory, dir)) return false; for(int i = 0; i < this.getSizeInventory(); ++i) { if(this.getStackInSlot(i) != null) { @@ -362,10 +346,9 @@ public class TileEntityItemPipe extends TileEntity implements IInventory, ITicka add = null; flag = true; } - else if(current.getItem() == add.getItem() && !current.isOverLimit() && ItemStack.dataEquals(current, add)) { - int i = add.getMaxStackSize() - current.getSize(); - int j = Math.min(add.getSize(), i); - add.decrSize(j); + else if(current.getItem() == add.getItem() && ItemStack.dataEquals(current, add)) { + int j = add.getSize(); + add.setSize(0); current.incrSize(j); flag = j > 0; } diff --git a/common/src/main/java/common/vars/Vars.java b/common/src/main/java/common/vars/Vars.java index 42a11fae..6d78d296 100755 --- a/common/src/main/java/common/vars/Vars.java +++ b/common/src/main/java/common/vars/Vars.java @@ -39,8 +39,8 @@ public abstract class Vars { public static boolean seasonLeaves = true; @Var(name = "leavesDecay") public static boolean leavesDecay = true; - @Var(name = "repairExperience") - public static boolean repairXP = true; + @Var(name = "magicCombinationUsesMana") + public static boolean magicComboMana = true; @Var(name = "mobTick") public static boolean mobTick = true; @Var(name = "mobAttacks") diff --git a/server/src/main/java/server/command/CommandEnvironment.java b/server/src/main/java/server/command/CommandEnvironment.java index ed38d860..71e53ddb 100644 --- a/server/src/main/java/server/command/CommandEnvironment.java +++ b/server/src/main/java/server/command/CommandEnvironment.java @@ -265,7 +265,6 @@ public class CommandEnvironment { this.registerExecutable(new CommandGod()); this.registerExecutable(new CommandNoclip()); this.registerExecutable(new CommandRename()); - this.registerExecutable(new CommandRepair()); this.registerExecutable(new CommandMore()); this.registerExecutable(new CommandReturn()); this.registerExecutable(new CommandDeathspot()); diff --git a/server/src/main/java/server/command/commands/CommandItem.java b/server/src/main/java/server/command/commands/CommandItem.java index d9369070..5afc66cd 100644 --- a/server/src/main/java/server/command/commands/CommandItem.java +++ b/server/src/main/java/server/command/commands/CommandItem.java @@ -25,7 +25,7 @@ public class CommandItem extends Command { } }); this.setParamsOptional(); - this.addInt("amount", 1, 100000000, 1); + this.addInt("amount", 1, 10000, 1); this.addTag("tag", 't'); this.setParamsRequired(); this.addPlayerEntityList("players", 'p', true, UserPolicy.NON_ADMINS_OR_SELF); @@ -41,22 +41,15 @@ public class CommandItem extends Command { int done = 0; int given = 0; for(EntityNPC player : players) { - int total = amount; - while(total > 0) { - int added = Math.min(total, stack.getMaxStackSize()); - ItemStack st = stack.copy(added); - player.addItemStackToInventory(st); - added -= st.getSize(); - if(added <= 0) - break; - total -= added; - } - total = amount - total; - if(total <= 0) + int added = amount; + ItemStack st = stack.copy(added); + player.addItemStackToInventory(st); + added -= st.getSize(); + if(added <= 0) continue; - exec.log("%d * %s zum Inventar von %s hinzugefügt", total, stack.getDisplayName(), player.getRawName()); + exec.log("%d * %s zum Inventar von %s hinzugefügt", added, stack.getDisplayName(), player.getRawName()); done++; - given += total; + given += added; } if(done > 1) exec.log("%d * %s an %d Spieler verteilt", given, stack.getDisplayName(), done); diff --git a/server/src/main/java/server/command/commands/CommandMore.java b/server/src/main/java/server/command/commands/CommandMore.java index 2cccf45a..64f8917f 100644 --- a/server/src/main/java/server/command/commands/CommandMore.java +++ b/server/src/main/java/server/command/commands/CommandMore.java @@ -4,6 +4,7 @@ import java.util.List; import common.entity.npc.EntityNPC; import common.item.ItemStack; +import common.util.Equipment; import server.command.Command; import server.command.CommandEnvironment; import server.command.Executor; @@ -15,17 +16,16 @@ public class CommandMore extends Command { this.setParamsOptional(); this.addFlag("all", 'a'); - this.addInt("amount", 'n', 2, 100000000, 100); + this.addInt("amount", 'n', 2, 10000, 100); this.setParamsRequired(); this.addPlayerEntityList("players", 'p', true, UserPolicy.NON_ADMINS_OR_SELF); } private int addItems(ItemStack stack, int amount) { - int max = Math.min(stack.getMaxStackSize(), amount); - if(stack.getSize() >= max) + if(stack.getSize() >= amount) return 0; - int diff = max - stack.getSize(); - stack.setSize(max); + int diff = amount - stack.getSize(); + stack.setSize(amount); return diff; } @@ -35,7 +35,7 @@ public class CommandMore extends Command { for(EntityNPC player : players) { int add = 0; if(all) { - for(int z = 0; z < player.getSizeInventory(); z++) { + for(int z = 0; z < Equipment.INVENTORY_SLOTS; z++) { ItemStack item = player.getStackInSlot(z); if(item != null) add += this.addItems(item, amount); diff --git a/server/src/main/java/server/command/commands/CommandRepair.java b/server/src/main/java/server/command/commands/CommandRepair.java deleted file mode 100644 index 6d4d53ed..00000000 --- a/server/src/main/java/server/command/commands/CommandRepair.java +++ /dev/null @@ -1,59 +0,0 @@ -package server.command.commands; - -import java.util.List; - -import common.entity.npc.EntityNPC; -import common.item.ItemStack; -import server.command.Command; -import server.command.CommandEnvironment; -import server.command.Executor; -import server.command.UserPolicy; - -public class CommandRepair extends Command { - public CommandRepair() { - super("repair"); - - this.setParamsOptional(); - this.addFlag("all", 'a'); - this.setParamsRequired(); - this.addPlayerEntityList("players", 'p', true, UserPolicy.NON_ADMINS_OR_SELF); - } - - private boolean fixItem(ItemStack stack) { - boolean flag = false; - if(stack.getRepairCost() != 0) { - stack.setRepairCost(0); - flag = true; - } - if(stack.getItem().getMaxDamage() > 0 && stack.getItemDamage() != 0) { - stack.setItemDamage(0); - flag = true; - } - return flag; - } - - public void exec(CommandEnvironment env, Executor exec, boolean all, List players) { - int done = 0; - int repaired = 0; - for(EntityNPC player : players) { - int rep = 0; - if(all) { - for(int z = 0; z < player.getSizeInventory(); z++) { - ItemStack item = player.getStackInSlot(z); - if(item != null && this.fixItem(item)) - rep++; - } - } - else if(player.getHeldItem() != null && this.fixItem(player.getHeldItem())) { - rep++; - } - if(rep > 0) { - exec.log("%d " + (rep == 1 ? "Gegenstand" : "Gegenstände") + " im Inventar von %s wurde" + (rep == 1 ? "" : "n") + " repariert", rep, player.getRawName()); - done++; - } - repaired += rep; - } - if(done > 1) - exec.log("%d Gegenstände im Inventar von %d Spielern wurden repariert", repaired, done); - } -} diff --git a/server/src/main/java/server/network/Player.java b/server/src/main/java/server/network/Player.java index f77c1945..c8b7bc56 100755 --- a/server/src/main/java/server/network/Player.java +++ b/server/src/main/java/server/network/Player.java @@ -1119,11 +1119,10 @@ public class Player extends User implements Executor, IPlayer if(this.itemUseCooldown > 0) return; int i = stack.getSize(); - int j = stack.getItemDamage(); this.itemUseCooldown = stack.getItem().getUseCooldown(stack, this.entity.worldObj, this.entity); ItemStack itemstack = stack.getItem().onItemRightClick(stack, this.entity.worldObj, this.entity); - if (itemstack != stack || itemstack != null && (itemstack.getSize() != i || itemstack.getMaxItemUseDuration() > 0 || itemstack.getItemDamage() != j)) + if (itemstack != stack || itemstack != null && (itemstack.getSize() != i || itemstack.getMaxItemUseDuration() > 0)) { this.entity.setHeldItem(itemstack); @@ -2566,26 +2565,18 @@ public class Player extends User implements Executor, IPlayer case REPAIR: if(this.isAdmin()) { if(packetIn.getAuxData() != 0) { - for(int z = 0; z < this.entity.getSizeInventory(); z++) { + for(int z = 0; z < Equipment.INVENTORY_SLOTS; z++) { ItemStack stack = this.entity.getStackInSlot(z); if(stack != null) { - int max = Math.min(stack.getMaxStackSize(), 100); - if(stack.getSize() < max) - stack.setSize(max); - stack.setRepairCost(0); - if(stack.getItem().getMaxDamage() > 0) - stack.setItemDamage(0); + if(stack.getSize() < 100) + stack.setSize(100); } } } else if(this.entity.getHeldItem() != null) { ItemStack stack = this.entity.getHeldItem(); - int max = Math.min(stack.getMaxStackSize(), 100); - if(stack.getSize() < max) - stack.setSize(max); - stack.setRepairCost(0); - if(stack.getItem().getMaxDamage() > 0) - stack.setItemDamage(0); + if(stack.getSize() < 100) + stack.setSize(100); } } break; @@ -2765,7 +2756,7 @@ public class Player extends User implements Executor, IPlayer Item item = packet.getItem(); if(item == null) return; - ItemStack stack = new ItemStack(item, packet.isStacked() ? Math.min(item.getMaxAmount(), 100) : 1); + ItemStack stack = new ItemStack(item, packet.isStacked() ? 100 : 1); int amount = stack.getSize(); if(amount <= 0) return; @@ -2789,7 +2780,7 @@ public class Player extends User implements Executor, IPlayer if(slot.getHasStack()) { ItemStack old = slot.getStack(); if(ItemStack.itemEquals(stack, old) && ItemStack.dataEquals(stack, old)) { - stack.setSize(Math.min(slot.getItemStackLimit(stack), Math.min(stack.getMaxStackSize(), old.getSize() + stack.getSize()))); + stack.setSize(Math.min(slot.getItemStackLimit(stack), old.getSize() + stack.getSize())); amount = stack.getSize() - old.getSize(); if(amount <= 0 || !slot.isItemValid(stack)) return;