Jump to content

kifor4ik

Members
  • Posts

    2
  • Joined

  • Last visited

Everything posted by kifor4ik

  1. Maybe you know any cool guide to syns capa?)
  2. Hello everyone. I create my capability for stats and should save it after player death, but if i try to get my values i took 0! For example @SubscribeEvent public void playerStatsEvent(TickEvent.PlayerTickEvent event) { // HERE I WILL GET WRONG STATS System.out.println(player.getCapability(StatCapability.CAPABILITY_STAT, null)); if(!player.world.isRemote()){ // HERE I WILL GET GOOD STATS System.out.println(player.getCapability(StatCapability.CAPABILITY_STAT, null)); } } Cappa and Death event iclude Interface public interface IStat extends Callable{ int getStr(); void setStr(int stat); void setStatsByAnotherStats(IStat stats); void increaseStr(int statAdd); void clearAll(); } Class stats public class Stat implements IStat{ private int str = 0; @Override public int getStr() { return str; } @Override public void setStr(int stat) { this.str = stat; } @Override public void setStatsByAnotherStats(IStat stats) { Stat stat = (Stat) stats; this.str = stat.str; } @Override public void increaseStr(int statAdd) { this.str += statAdd; } @Override public void clearAll() { this.str = 0; } @Override public String toString(){ return "STR ->" + str; } @Override public Object call() throws Exception { return this; } } Capa public class StatCapability implements ICapabilitySerializable<NBTTagCompound> { @CapabilityInject(IStat.class) public static Capability<IStat> CAPABILITY_STAT; private IStat instance = CAPABILITY_STAT.getDefaultInstance(); @Override public boolean hasCapability(@Nonnull Capability<?> capability, @Nullable EnumFacing facing) { return capability == CAPABILITY_STAT; } @Nullable @Override @SuppressWarnings("unchecked") public <T> T getCapability(@Nonnull Capability<T> capability, @Nullable EnumFacing facing) { if (capability == CAPABILITY_STAT) return (T) this.instance; return null; } @Override public NBTTagCompound serializeNBT() { return (NBTTagCompound) CAPABILITY_STAT.getStorage().writeNBT(CAPABILITY_STAT, this.instance, null); } @Override public void deserializeNBT(NBTTagCompound nbt) { CAPABILITY_STAT.getStorage().readNBT(CAPABILITY_STAT, this.instance, null, nbt); } Storage public class StatStorage implements Capability.IStorage<IStat> { @Nullable @Override public NBTBase writeNBT(Capability<IStat> capability, IStat instance, EnumFacing side) { NBTTagCompound nbt = new NBTTagCompound(); nbt.setInteger("strength", instance.getStr()); return nbt; } @Override public void readNBT(Capability<IStat> capability, IStat instance, EnumFacing side, NBTBase nbt) { NBTTagCompound tag = (NBTTagCompound) nbt; instance.setStr(tag.getInteger("strength")); } } PlayerDeath event @SubscribeEvent public void playerClone(PlayerEvent.Clone e) { IStat newStat = e.getEntityPlayer().getCapability(StatCapability.CAPABILITY_STAT,null); IStat oldStat = e.getOriginal().getCapability(StatCapability.CAPABILITY_STAT,null); newStat.setStatsByAnotherStats(oldStat); } Attach private static final ResourceLocation STATS = new ResourceLocation(Reference.MODID, "stats"); @SubscribeEvent public void attachCapability(AttachCapabilitiesEvent<Entity> event) { if (event.getObject() instanceof EntityPlayer) event.addCapability(STATS, new StatCapability()); }
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.