mirror of
https://github.com/FabricMC/fabric.git
synced 2025-02-16 19:59:56 -05:00
Remove FabricItem.getAttributeModifiers.
This commit is contained in:
parent
c585e0a241
commit
afdfc921b8
4 changed files with 9 additions and 51 deletions
|
@ -16,7 +16,6 @@
|
||||||
|
|
||||||
package net.fabricmc.fabric.api.item.v1;
|
package net.fabricmc.fabric.api.item.v1;
|
||||||
|
|
||||||
import net.minecraft.component.type.AttributeModifiersComponent;
|
|
||||||
import net.minecraft.enchantment.Enchantment;
|
import net.minecraft.enchantment.Enchantment;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
|
@ -64,19 +63,6 @@ public interface FabricItem {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Return the attribute modifiers to apply when this stack is worn in a living entity equipment slot.
|
|
||||||
* Stack-aware version of {@link Item#getAttributeModifiers()}.
|
|
||||||
*
|
|
||||||
* <p>Note that attribute modifiers are only updated when the stack changes, i.e. when {@code ItemStack.areEqual(old, new)} is false.
|
|
||||||
*
|
|
||||||
* @param stack the current stack
|
|
||||||
* @return the attribute modifiers
|
|
||||||
*/
|
|
||||||
default AttributeModifiersComponent getAttributeModifiers(ItemStack stack) {
|
|
||||||
return ((Item) this).getAttributeModifiers();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a leftover item stack after {@code stack} is consumed in a recipe.
|
* Returns a leftover item stack after {@code stack} is consumed in a recipe.
|
||||||
* (This is also known as "recipe remainder".)
|
* (This is also known as "recipe remainder".)
|
||||||
|
|
|
@ -25,10 +25,7 @@ import org.apache.commons.lang3.mutable.MutableBoolean;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.Shadow;
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
|
||||||
|
|
||||||
import net.minecraft.component.ComponentType;
|
|
||||||
import net.minecraft.component.type.AttributeModifiersComponent;
|
|
||||||
import net.minecraft.entity.EquipmentSlot;
|
import net.minecraft.entity.EquipmentSlot;
|
||||||
import net.minecraft.entity.LivingEntity;
|
import net.minecraft.entity.LivingEntity;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
|
@ -75,27 +72,4 @@ public abstract class ItemStackMixin implements FabricItemStack {
|
||||||
|
|
||||||
original.call(instance, amount, serverWorld, serverPlayerEntity, consumer);
|
original.call(instance, amount, serverWorld, serverPlayerEntity, consumer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Redirect(
|
|
||||||
method = "appendAttributeModifiersTooltip",
|
|
||||||
at = @At(
|
|
||||||
value = "INVOKE",
|
|
||||||
target = "Lnet/minecraft/item/ItemStack;getOrDefault(Lnet/minecraft/component/ComponentType;Ljava/lang/Object;)Ljava/lang/Object;"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
public Object appendAttributeModifiersTooltip(ItemStack stack, ComponentType<AttributeModifiersComponent> type, Object fallback) {
|
|
||||||
return getItem().getAttributeModifiers(stack);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Redirect(
|
|
||||||
method = {"applyAttributeModifier", "applyAttributeModifiers"},
|
|
||||||
at = @At(
|
|
||||||
value = "INVOKE",
|
|
||||||
target = "Lnet/minecraft/item/Item;getAttributeModifiers()Lnet/minecraft/component/type/AttributeModifiersComponent;"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
public AttributeModifiersComponent applyAttributeModifiers(Item item) {
|
|
||||||
ItemStack stack = (ItemStack) (Object) this;
|
|
||||||
return item.getAttributeModifiers(stack);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
package net.fabricmc.fabric.test.item;
|
package net.fabricmc.fabric.test.item;
|
||||||
|
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
|
import net.minecraft.component.DataComponentTypes;
|
||||||
import net.minecraft.component.type.AttributeModifierSlot;
|
import net.minecraft.component.type.AttributeModifierSlot;
|
||||||
import net.minecraft.component.type.AttributeModifiersComponent;
|
import net.minecraft.component.type.AttributeModifiersComponent;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
|
@ -37,7 +38,12 @@ public class UpdatingItem extends Item {
|
||||||
private final boolean allowUpdateAnimation;
|
private final boolean allowUpdateAnimation;
|
||||||
|
|
||||||
public UpdatingItem(boolean allowUpdateAnimation) {
|
public UpdatingItem(boolean allowUpdateAnimation) {
|
||||||
super(new Settings());
|
super(new Settings()
|
||||||
|
.component(DataComponentTypes.ATTRIBUTE_MODIFIERS, AttributeModifiersComponent.builder()
|
||||||
|
.add(EntityAttributes.GENERIC_ATTACK_DAMAGE, PLUS_FIVE, AttributeModifierSlot.MAINHAND)
|
||||||
|
.build()
|
||||||
|
)
|
||||||
|
);
|
||||||
this.allowUpdateAnimation = allowUpdateAnimation;
|
this.allowUpdateAnimation = allowUpdateAnimation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -63,14 +69,6 @@ public class UpdatingItem extends Item {
|
||||||
return !stack.contains(ItemUpdateAnimationTest.TICKS) || stack.getOrDefault(ItemUpdateAnimationTest.TICKS, 0) % 600 < 300;
|
return !stack.contains(ItemUpdateAnimationTest.TICKS) || stack.getOrDefault(ItemUpdateAnimationTest.TICKS, 0) % 600 < 300;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public AttributeModifiersComponent getAttributeModifiers(ItemStack stack) {
|
|
||||||
// Give + 5 attack damage for 15 seconds every 30 seconds.
|
|
||||||
return AttributeModifiersComponent.builder()
|
|
||||||
.add(EntityAttributes.GENERIC_ATTACK_DAMAGE, PLUS_FIVE, AttributeModifierSlot.MAINHAND)
|
|
||||||
.build();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float getMiningSpeed(ItemStack stack, BlockState state) {
|
public float getMiningSpeed(ItemStack stack, BlockState state) {
|
||||||
return isEnabled(stack) ? 20 : super.getMiningSpeed(stack, state);
|
return isEnabled(stack) ? 20 : super.getMiningSpeed(stack, state);
|
||||||
|
|
|
@ -2,7 +2,7 @@ org.gradle.jvmargs=-Xmx2560M
|
||||||
org.gradle.parallel=true
|
org.gradle.parallel=true
|
||||||
fabric.loom.multiProjectOptimisation=true
|
fabric.loom.multiProjectOptimisation=true
|
||||||
|
|
||||||
version=0.99.3
|
version=0.99.4
|
||||||
minecraft_version=1.21-pre1
|
minecraft_version=1.21-pre1
|
||||||
yarn_version=+build.2
|
yarn_version=+build.2
|
||||||
loader_version=0.15.11
|
loader_version=0.15.11
|
||||||
|
@ -30,7 +30,7 @@ fabric-entity-events-v1-version=1.6.12
|
||||||
fabric-events-interaction-v0-version=0.7.10
|
fabric-events-interaction-v0-version=0.7.10
|
||||||
fabric-game-rule-api-v1-version=1.0.52
|
fabric-game-rule-api-v1-version=1.0.52
|
||||||
fabric-gametest-api-v1-version=2.0.0
|
fabric-gametest-api-v1-version=2.0.0
|
||||||
fabric-item-api-v1-version=10.0.1
|
fabric-item-api-v1-version=11.0.0
|
||||||
fabric-item-group-api-v1-version=4.0.43
|
fabric-item-group-api-v1-version=4.0.43
|
||||||
fabric-key-binding-api-v1-version=1.0.47
|
fabric-key-binding-api-v1-version=1.0.47
|
||||||
fabric-keybindings-v0-version=0.2.45
|
fabric-keybindings-v0-version=0.2.45
|
||||||
|
|
Loading…
Reference in a new issue