forked from tilera/infinity-craft
Added api
This commit is contained in:
parent
76e740bc26
commit
10a7c3a52b
9 changed files with 84 additions and 0 deletions
41
src/main/java/anvil/infinity/api/AbilityAdderHandler.java
Normal file
41
src/main/java/anvil/infinity/api/AbilityAdderHandler.java
Normal file
|
@ -0,0 +1,41 @@
|
|||
package anvil.infinity.api;
|
||||
|
||||
import lucraft.mods.lucraftcore.infinity.EnumInfinityStone;
|
||||
import lucraft.mods.lucraftcore.superpowers.abilities.Ability;
|
||||
import lucraft.mods.lucraftcore.util.abilitybar.EnumAbilityBarColor;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class AbilityAdderHandler {
|
||||
|
||||
static List<IAbilityAdder> abilityAdders = new ArrayList<>();
|
||||
|
||||
public static void register(IAbilityAdder abilityAdder) {
|
||||
abilityAdders.add(abilityAdder);
|
||||
}
|
||||
|
||||
public static void addAbilities(EnumInfinityStone stone, EntityLivingBase entity, Ability.AbilityMap abilities) {
|
||||
|
||||
for (IAbilityAdder abilityAdder : abilityAdders) {
|
||||
for (StoneAbility ability : abilityAdder.addStoneAbilities(entity, stone)) {
|
||||
abilities.put(ability.abilityName, ability.ability.setDataValue(Ability.BAR_COLOR, getStoneColor(stone)));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static EnumAbilityBarColor getStoneColor(EnumInfinityStone stone) {
|
||||
switch (stone) {
|
||||
case MIND: return EnumAbilityBarColor.YELLOW;
|
||||
case SOUL: return EnumAbilityBarColor.ORANGE;
|
||||
case TIME: return EnumAbilityBarColor.GREEN;
|
||||
case POWER: return EnumAbilityBarColor.PURPLE;
|
||||
case SPACE: return EnumAbilityBarColor.LIGHT_BLUE;
|
||||
case REALITY: return EnumAbilityBarColor.RED;
|
||||
default: return EnumAbilityBarColor.WHITE;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
12
src/main/java/anvil/infinity/api/IAbilityAdder.java
Normal file
12
src/main/java/anvil/infinity/api/IAbilityAdder.java
Normal file
|
@ -0,0 +1,12 @@
|
|||
package anvil.infinity.api;
|
||||
|
||||
import lucraft.mods.lucraftcore.infinity.EnumInfinityStone;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface IAbilityAdder {
|
||||
|
||||
List<StoneAbility> addStoneAbilities(EntityLivingBase entity, EnumInfinityStone stone);
|
||||
|
||||
}
|
15
src/main/java/anvil/infinity/api/StoneAbility.java
Normal file
15
src/main/java/anvil/infinity/api/StoneAbility.java
Normal file
|
@ -0,0 +1,15 @@
|
|||
package anvil.infinity.api;
|
||||
|
||||
import lucraft.mods.lucraftcore.infinity.EnumInfinityStone;
|
||||
import lucraft.mods.lucraftcore.superpowers.abilities.Ability;
|
||||
|
||||
public class StoneAbility {
|
||||
|
||||
public String abilityName;
|
||||
public Ability ability;
|
||||
|
||||
public StoneAbility(String abilityName, Ability ability) {
|
||||
this.abilityName = abilityName;
|
||||
this.ability = ability;
|
||||
}
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
package anvil.infinity.items;
|
||||
|
||||
import anvil.infinity.abilities.AbilityChangeSnap;
|
||||
import anvil.infinity.api.AbilityAdderHandler;
|
||||
import anvil.infinity.compat.CompatHandler;
|
||||
import anvil.infinity.config.ConfigHandler;
|
||||
import lucraft.mods.lucraftcore.infinity.EnumInfinityStone;
|
||||
|
@ -41,6 +42,7 @@ public class ItemMindStone extends ItemInfinityStone {
|
|||
abilities.put("telekinesis", CompatHandler.HeroesExpension.getAbilityGrabEntity(entity).setDataValue(Ability.BAR_COLOR, EnumAbilityBarColor.YELLOW));
|
||||
}
|
||||
|
||||
AbilityAdderHandler.addAbilities(EnumInfinityStone.MIND, entity, abilities);
|
||||
|
||||
return super.addStoneAbilities(entity, abilities, context);
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package anvil.infinity.items;
|
||||
|
||||
import anvil.infinity.abilities.AbilitySaturation;
|
||||
import anvil.infinity.api.AbilityAdderHandler;
|
||||
import anvil.infinity.compat.CompatHandler;
|
||||
import anvil.infinity.config.ConfigHandler;
|
||||
import lucraft.mods.lucraftcore.infinity.EnumInfinityStone;
|
||||
|
@ -49,6 +50,8 @@ public class ItemPowerStone extends ItemInfinityStone implements IAbilityProvide
|
|||
abilities.put("power_tendrils", CompatHandler.StarTech.getAbilityTendrils(entity).setDataValue(Ability.BAR_COLOR, EnumAbilityBarColor.PURPLE));
|
||||
}
|
||||
|
||||
AbilityAdderHandler.addAbilities(EnumInfinityStone.POWER, entity, abilities);
|
||||
|
||||
|
||||
return super.addStoneAbilities(entity, abilities, context);
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package anvil.infinity.items;
|
||||
|
||||
import anvil.infinity.api.AbilityAdderHandler;
|
||||
import anvil.infinity.compat.CompatHandler;
|
||||
import anvil.infinity.config.ConfigHandler;
|
||||
import lucraft.mods.lucraftcore.infinity.EnumInfinityStone;
|
||||
|
@ -44,6 +45,8 @@ public class ItemRealityStone extends ItemInfinityStone {
|
|||
abilities.put("turn_into_bubbles", CompatHandler.SpeedsterHeroes.getAbilityTurnIntoBubbles(entity).setDataValue(Ability.BAR_COLOR, EnumAbilityBarColor.RED));
|
||||
}
|
||||
|
||||
AbilityAdderHandler.addAbilities(EnumInfinityStone.REALITY, entity, abilities);
|
||||
|
||||
return super.addStoneAbilities(entity, abilities, context);
|
||||
}
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ package anvil.infinity.items;
|
|||
|
||||
import anvil.infinity.abilities.AbilityKill;
|
||||
import anvil.infinity.abilities.AbilitySnap;
|
||||
import anvil.infinity.api.AbilityAdderHandler;
|
||||
import anvil.infinity.conditions.ICondition;
|
||||
import anvil.infinity.config.ConfigHandler;
|
||||
import anvil.infinity.helpers.GauntelHelper;
|
||||
|
@ -52,6 +53,7 @@ public class ItemSoulStone extends ItemInfinityStone {
|
|||
abilities.put("kill", new AbilityKill(entity, killCond).setDataValue(Ability.BAR_COLOR, EnumAbilityBarColor.ORANGE));
|
||||
abilities.put("snap", new AbilitySnap(entity).setDataValue(Ability.BAR_COLOR, EnumAbilityBarColor.ORANGE));
|
||||
|
||||
AbilityAdderHandler.addAbilities(EnumInfinityStone.SOUL, entity, abilities);
|
||||
|
||||
return super.addStoneAbilities(entity, abilities, context);
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package anvil.infinity.items;
|
||||
|
||||
import anvil.infinity.api.AbilityAdderHandler;
|
||||
import anvil.infinity.compat.CompatHandler;
|
||||
import anvil.infinity.helpers.GauntelHelper;
|
||||
import lucraft.mods.lucraftcore.infinity.EnumInfinityStone;
|
||||
|
@ -41,6 +42,8 @@ public class ItemSpaceStone extends ItemInfinityStone {
|
|||
}
|
||||
}
|
||||
|
||||
AbilityAdderHandler.addAbilities(EnumInfinityStone.SPACE, entity, abilities);
|
||||
|
||||
|
||||
return super.addStoneAbilities(entity, abilities, context);
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package anvil.infinity.items;
|
|||
|
||||
import anvil.infinity.abilities.AbilityFastForward;
|
||||
import anvil.infinity.abilities.AbilityStopTime;
|
||||
import anvil.infinity.api.AbilityAdderHandler;
|
||||
import lucraft.mods.lucraftcore.infinity.EnumInfinityStone;
|
||||
import lucraft.mods.lucraftcore.infinity.ModuleInfinity;
|
||||
import lucraft.mods.lucraftcore.infinity.items.ItemInfinityStone;
|
||||
|
@ -35,6 +36,8 @@ public class ItemTimeStone extends ItemInfinityStone {
|
|||
abilities.put("fast_forward", new AbilityFastForward(entity).setDataValue(Ability.BAR_COLOR, EnumAbilityBarColor.GREEN));
|
||||
abilities.put("stop_time", new AbilityStopTime(entity).setDataValue(Ability.BAR_COLOR, EnumAbilityBarColor.GREEN));
|
||||
|
||||
AbilityAdderHandler.addAbilities(EnumInfinityStone.TIME, entity, abilities);
|
||||
|
||||
|
||||
return super.addStoneAbilities(entity, abilities, context);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue