use of jackiecrazy.wardance.skill.Skill in project WarDance by Jackiecrazy.
the class SkillCapability method write.
@Override
public CompoundNBT write() {
CompoundNBT to = new CompoundNBT();
to.putInt("holster", index);
to.putBoolean("gamerule", gatedSkills);
if (!this.data.isEmpty()) {
ListNBT listnbt = new ListNBT();
for (SkillData effectinstance : this.data.values()) {
listnbt.add(effectinstance.write(new CompoundNBT()));
}
to.put("skillData", listnbt);
}
for (int a = 0; a < equippedSkill.size(); a++) if (equippedSkill.get(a) != null)
to.putString("equippedSkill" + a, equippedSkill.get(a).getRegistryName().toString());
ListNBT str = new ListNBT();
for (Skill add : skillList) {
str.add(StringNBT.valueOf(add.getRegistryName().toString()));
}
to.put("randomList", str);
return to;
}
use of jackiecrazy.wardance.skill.Skill in project WarDance by Jackiecrazy.
the class SkillCapability method read.
@Override
public void read(CompoundNBT from) {
if (!from.getBoolean("fast")) {
data.clear();
index = from.getInt("holster");
// it's the easy way out...
gatedSkills = from.getBoolean("gamerule");
Skill[] als = new Skill[10];
for (int a = 0; a < als.length; a++) if (from.contains("equippedSkill" + a))
als[a] = (Skill.getSkill(from.getString("equippedSkill" + a)));
// if (from.getBoolean("skillListDirty")) {
skillList.clear();
if (from.contains("randomList", Constants.NBT.TAG_LIST)) {
ListNBT list = from.getList("randomList", Constants.NBT.TAG_STRING);
for (Object s : list.toArray()) {
if (s instanceof StringNBT && Skill.getSkill(((StringNBT) s).getAsString()) != null)
skillList.add(Skill.getSkill(((StringNBT) s).getAsString()));
}
}
// }
equippedSkill.clear();
equippedSkill.addAll(Arrays.asList(als));
}
if (from.contains("skillData", 9)) {
ListNBT listnbt = from.getList("skillData", 10);
for (int i = 0; i < listnbt.size(); ++i) {
CompoundNBT compoundnbt = listnbt.getCompound(i);
SkillData data = SkillData.read(compoundnbt);
if (data != null) {
this.data.put(data.getSkill(), data);
}
}
}
}
use of jackiecrazy.wardance.skill.Skill in project WarDance by Jackiecrazy.
the class SkillCapability method holsterSkill.
@Override
public void holsterSkill(int index) {
Skill to = equippedSkill.get(index % equippedSkill.size());
if (to != null && to.castingCheck(dude.get()) != Skill.CastStatus.ALLOWED)
return;
for (Skill s : equippedSkill) if (s != null && getSkillState(s) == Skill.STATE.HOLSTERED)
changeSkillState(s, Skill.STATE.INACTIVE);
this.index = index;
if (to != null) {
changeSkillState(to, Skill.STATE.HOLSTERED);
nonNullGet(to).markDirty();
fastSync = true;
}
sync = true;
}
use of jackiecrazy.wardance.skill.Skill in project WarDance by Jackiecrazy.
the class EntityHandler method respawn.
@SubscribeEvent
public static void respawn(PlayerEvent.Clone e) {
CasterData.getCap(e.getPlayer()).read(CasterData.getCap(e.getOriginal()).write());
if (!e.isWasDeath()) {
final ICombatCapability icc = CombatData.getCap(e.getPlayer());
icc.read(CombatData.getCap(e.getOriginal()).write());
icc.setFatigue(0);
icc.setBurnout(0);
icc.setWounding(0);
}
// CasterData.getCap(e.getPlayer()).read(CasterData.getCap(e.getOriginal()).write());
ISkillCapability cap = CasterData.getCap(e.getPlayer());
cap.setEquippedSkills(CasterData.getCap(e.getOriginal()).getEquippedSkills());
for (Skill s : cap.getEquippedSkills()) if (s != null) {
s.onEquip(e.getPlayer());
}
}
use of jackiecrazy.wardance.skill.Skill in project WarDance by Jackiecrazy.
the class SkillSelectionScreen method onClose.
@Override
public void onClose() {
List<Skill> newSkills = new ArrayList<>();
for (SkillSliceButton ssb : skillPie) newSkills.add(ssb.getSkill());
for (PassiveButton pb : passives) newSkills.add(pb.getSkill());
CasterData.getCap(Minecraft.getInstance().player).setEquippedSkills(newSkills);
CombatChannel.INSTANCE.sendToServer(new UpdateSkillSelectionPacket(newSkills));
this.minecraft.setScreen(null);
}
Aggregations