Skip to content

Commit

Permalink
Clean up armor ticking stuff
Browse files Browse the repository at this point in the history
Vanilla now ticks everything, a separate armor tick method is no longer needed
  • Loading branch information
williewillus committed Nov 22, 2023
1 parent a7976b2 commit 1244bd1
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@
import vazkii.botania.common.PlayerAccess;
import vazkii.botania.common.handler.EquipmentHandler;
import vazkii.botania.common.handler.PixieHandler;
import vazkii.botania.common.item.equipment.armor.manasteel.ManasteelArmorItem;
import vazkii.botania.common.item.equipment.armor.terrasteel.TerrasteelHelmItem;
import vazkii.botania.common.item.equipment.bauble.*;
import vazkii.botania.common.item.relic.RingOfOdinItem;
Expand Down Expand Up @@ -114,16 +113,6 @@ private float cushionFall(float originalDist) {
return SojournersSashItem.onPlayerFall((Player) (Object) this, originalDist);
}

@Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Inventory;tick()V"), method = "aiStep")
private void tickArmor(CallbackInfo ci) {
Player self = (Player) (Object) this;
for (ItemStack stack : inventory.armor) {
if (stack.getItem() instanceof ManasteelArmorItem) {
((ManasteelArmorItem) stack.getItem()).onArmorTick(stack, self.level(), self);
}
}
}

@Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/player/Player;setLastHurtMob(Lnet/minecraft/world/entity/Entity;)V"), method = "attack")
private void onAttack(Entity target, CallbackInfo ci) {
CharmOfTheDivaItem.onEntityDamaged((Player) (Object) this, target);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,14 +61,9 @@ public ManasteelArmorItem(Type type, ArmorMaterial mat, Properties props) {
@Override
public void inventoryTick(ItemStack stack, Level world, Entity entity, int slot, boolean selected) {
if (entity instanceof Player player) {
onArmorTick(stack, world, player);
}
}

@SoftImplement("IForgeItem")
public void onArmorTick(ItemStack stack, Level world, Player player) {
if (!world.isClientSide && stack.getDamageValue() > 0 && ManaItemHandler.instance().requestManaExact(stack, player, MANA_PER_DAMAGE * 2, true)) {
stack.setDamageValue(stack.getDamageValue() - 1);
if (!world.isClientSide && stack.getDamageValue() > 0 && ManaItemHandler.instance().requestManaExact(stack, player, MANA_PER_DAMAGE * 2, true)) {
stack.setDamageValue(stack.getDamageValue() - 1);
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
*/
package vazkii.botania.common.item.equipment.armor.manaweave;

import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EquipmentSlot;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.player.Player;
Expand Down Expand Up @@ -42,9 +43,11 @@ public boolean shouldGiveProficiency(ItemStack stack, EquipmentSlot slot, Player
}

@Override
public void onArmorTick(ItemStack stack, Level world, Player player) {
if (!world.isClientSide && stack.getDamageValue() > 0 && ManaItemHandler.instance().requestManaExact(stack, player, MANA_PER_DAMAGE * 2, true)) {
stack.setDamageValue(stack.getDamageValue() - 1);
public void inventoryTick(ItemStack stack, Level world, Entity entity, int slot, boolean selected) {
if (entity instanceof Player player) {
if (!world.isClientSide && stack.getDamageValue() > 0 && ManaItemHandler.instance().requestManaExact(stack, player, MANA_PER_DAMAGE * 2, true)) {
stack.setDamageValue(stack.getDamageValue() - 1);
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.effect.MobEffectInstance;
import net.minecraft.world.effect.MobEffects;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EquipmentSlot;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.player.Player;
Expand Down Expand Up @@ -40,9 +41,11 @@ public TerrasteelHelmItem(Properties props) {
}

@Override
public void onArmorTick(ItemStack stack, Level world, Player player) {
super.onArmorTick(stack, world, player);
if (!world.isClientSide && hasArmorSet(player)) {
public void inventoryTick(ItemStack stack, Level world, Entity entity, int slot, boolean selected) {
super.inventoryTick(stack, world, entity, slot, selected);
if (!world.isClientSide && entity instanceof Player player
&& player.getInventory().armor.contains(stack)
&& hasArmorSet(player)) {
int food = player.getFoodData().getFoodLevel();
if (food > 0 && food < 18 && player.isHurt() && player.tickCount % 80 == 0) {
player.heal(1F);
Expand Down

0 comments on commit 1244bd1

Please sign in to comment.