Search in sources :

Example 16 with Skill

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;
}
Also used : ListNBT(net.minecraft.nbt.ListNBT) SkillData(jackiecrazy.wardance.skill.SkillData) Skill(jackiecrazy.wardance.skill.Skill) CompoundNBT(net.minecraft.nbt.CompoundNBT)

Example 17 with Skill

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);
            }
        }
    }
}
Also used : Skill(jackiecrazy.wardance.skill.Skill) ListNBT(net.minecraft.nbt.ListNBT) SkillData(jackiecrazy.wardance.skill.SkillData) CompoundNBT(net.minecraft.nbt.CompoundNBT) StringNBT(net.minecraft.nbt.StringNBT)

Example 18 with Skill

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;
}
Also used : Skill(jackiecrazy.wardance.skill.Skill)

Example 19 with Skill

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());
    }
}
Also used : ICombatCapability(jackiecrazy.wardance.capability.resources.ICombatCapability) Skill(jackiecrazy.wardance.skill.Skill) ISkillCapability(jackiecrazy.wardance.capability.skill.ISkillCapability) SubscribeEvent(net.minecraftforge.eventbus.api.SubscribeEvent)

Example 20 with Skill

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);
}
Also used : Skill(jackiecrazy.wardance.skill.Skill) UpdateSkillSelectionPacket(jackiecrazy.wardance.networking.UpdateSkillSelectionPacket) ArrayList(java.util.ArrayList)

Aggregations

Skill (jackiecrazy.wardance.skill.Skill)32 ISkillCapability (jackiecrazy.wardance.capability.skill.ISkillCapability)23 SubscribeEvent (net.minecraftforge.eventbus.api.SubscribeEvent)23 LivingEntity (net.minecraft.entity.LivingEntity)21 MatrixStack (com.mojang.blaze3d.matrix.MatrixStack)3 ICombatCapability (jackiecrazy.wardance.capability.resources.ICombatCapability)3 SkillData (jackiecrazy.wardance.skill.SkillData)3 ArrayList (java.util.ArrayList)3 List (java.util.List)3 Minecraft (net.minecraft.client.Minecraft)3 PlayerEntity (net.minecraft.entity.player.PlayerEntity)3 ResourceLocation (net.minecraft.util.ResourceLocation)3 TranslationTextComponent (net.minecraft.util.text.TranslationTextComponent)3 RenderSystem (com.mojang.blaze3d.systems.RenderSystem)2 WarDance (jackiecrazy.wardance.WarDance)2 CasterData (jackiecrazy.wardance.capability.skill.CasterData)2 CombatChannel (jackiecrazy.wardance.networking.CombatChannel)2 UpdateSkillSelectionPacket (jackiecrazy.wardance.networking.UpdateSkillSelectionPacket)2 Screen (net.minecraft.client.gui.screen.Screen)2 Tessellator (net.minecraft.client.renderer.Tessellator)2