fix Counter

This commit is contained in:
CreepyCre 2021-02-17 21:27:05 +01:00
parent 8e8bc4589b
commit 875bef25b6
2 changed files with 11 additions and 21 deletions

View file

@ -1,41 +1,31 @@
package org.dimdev.dimdoors.world.level; package org.dimdev.dimdoors.world.level;
import dev.onyxstudios.cca.api.v3.component.ComponentV3; import dev.onyxstudios.cca.api.v3.item.ItemComponent;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompoundTag;
public class Counter implements ComponentV3 { public class Counter extends ItemComponent {
private final ItemStack stack;
private int counter;
public Counter(ItemStack stack) { public Counter(ItemStack stack) {
this.stack = stack; super(stack);
if (!this.hasTag("counter"))
this.putInt("counter", 0);
} }
public int increment() { public int increment() {
return this.counter++; int counter = count();
putInt("counter", counter + 1);
return counter;
} }
public int count() { public int count() {
return this.counter; return getInt("counter");
} }
public void reset() { public void reset() {
this.counter = 0; putInt("counter", 0);
} }
public static <T> Counter get(T provider) { public static <T> Counter get(T provider) {
return DimensionalDoorsComponents.COUNTER_COMPONENT_KEY.get(provider); return DimensionalDoorsComponents.COUNTER_COMPONENT_KEY.get(provider);
} }
@Override
public void readFromNbt(CompoundTag tag) {
this.counter = tag.getInt("counter");
}
@Override
public void writeToNbt(CompoundTag tag) {
tag.putInt("counter", this.counter);
}
} }

View file

@ -22,6 +22,6 @@ public class DimensionalDoorsComponents implements LevelComponentInitializer, It
@Override @Override
public void registerItemComponentFactories(ItemComponentFactoryRegistry registry) { public void registerItemComponentFactories(ItemComponentFactoryRegistry registry) {
registry.registerFor(ModItems.RIFT_CONFIGURATION_TOOL, COUNTER_COMPONENT_KEY, Counter::new); registry.register(ModItems.RIFT_CONFIGURATION_TOOL, COUNTER_COMPONENT_KEY, Counter::new);
} }
} }