Improved stone detection system

This commit is contained in:
Timo Ley 2019-06-21 23:24:20 +02:00
parent 1d43d7a041
commit 0f586391e8
22 changed files with 10 additions and 130 deletions

View File

@ -18,6 +18,7 @@ plugins {
}
apply plugin: "net.minecraftforge.gradle.forge"
apply plugin: 'idea'
def getVersionName = { ->

View File

@ -1,6 +1,6 @@
modGroup=anvil
modBaseName=infinity
forgeVersion=1.12.2-14.23.5.2814
forgeVersion=1.12.2-14.23.5.2816
mcpVersion=stable_39
core_version=d406868225
projectID=285509

View File

@ -1,10 +0,0 @@
package anvil.infinity.abilities;
import net.minecraft.entity.EntityLivingBase;
public class AbilityHasMindStone extends AbilityHasStone {
public AbilityHasMindStone(EntityLivingBase entity) {
super(entity);
}
}

View File

@ -1,11 +0,0 @@
package anvil.infinity.abilities;
import net.minecraft.entity.EntityLivingBase;
public class AbilityHasPowerStone extends AbilityHasStone {
public AbilityHasPowerStone(EntityLivingBase entity) {
super(entity);
}
}

View File

@ -1,10 +0,0 @@
package anvil.infinity.abilities;
import net.minecraft.entity.EntityLivingBase;
public class AbilityHasRealityStone extends AbilityHasStone {
public AbilityHasRealityStone(EntityLivingBase entity) {
super(entity);
}
}

View File

@ -1,10 +0,0 @@
package anvil.infinity.abilities;
import net.minecraft.entity.EntityLivingBase;
public class AbilityHasSoulStone extends AbilityHasStone {
public AbilityHasSoulStone(EntityLivingBase entity) {
super(entity);
}
}

View File

@ -1,16 +0,0 @@
package anvil.infinity.abilities;
import lucraft.mods.lucraftcore.superpowers.abilities.AbilityConstant;
import net.minecraft.entity.EntityLivingBase;
public class AbilityHasStone extends AbilityConstant {
public AbilityHasStone(EntityLivingBase entity) {
super(entity);
}
@Override
public void updateTick() {
}
}

View File

@ -1,10 +0,0 @@
package anvil.infinity.abilities;
import net.minecraft.entity.EntityLivingBase;
public class AbilityHasTimeStone extends AbilityHasStone {
public AbilityHasTimeStone(EntityLivingBase entity) {
super(entity);
}
}

View File

@ -1,10 +0,0 @@
package anvil.infinity.abilities;
import net.minecraft.entity.EntityLivingBase;
public class AbilityhasSpaceStone extends AbilityHasStone {
public AbilityhasSpaceStone(EntityLivingBase entity) {
super(entity);
}
}

View File

@ -13,8 +13,4 @@ public class HELoadedProxy implements HEProxy {
return new AbilityGrabEntity(entity);
}
@Override
public boolean hasSpaceStone(EntityLivingBase entity) {
return Ability.hasAbility(entity, AbilityPortal.class);
}
}

View File

@ -11,8 +11,4 @@ public class HENotLoadedProxy implements HEProxy {
return null;
}
@Override
public boolean hasSpaceStone(EntityLivingBase entity) {
return true;
}
}

View File

@ -7,6 +7,4 @@ public interface HEProxy {
Ability getAbilityGrabEntity(EntityLivingBase entity);
boolean hasSpaceStone(EntityLivingBase entity);
}

View File

@ -1,6 +1,5 @@
package anvil.infinity.compat;
import anvil.infinity.abilities.AbilityHasRealityStone;
import lucraft.mods.lucraftcore.superpowers.abilities.Ability;
import lucraft.mods.speedsterheroes.abilities.AbilityChangeBlocks;
import lucraft.mods.speedsterheroes.abilities.AbilitySaveBlock;
@ -24,9 +23,4 @@ public class SHLoadedProxy implements SHProxy {
return new AbilityTurnIntoBubbles(entity);
}
@Override
public boolean hasRealityStone(EntityLivingBase entity) {
return Ability.hasAbility(entity, AbilityHasRealityStone.class) || Ability.hasAbility(entity, AbilitySaveBlock.class);
}
}

View File

@ -1,6 +1,5 @@
package anvil.infinity.compat;
import anvil.infinity.abilities.AbilityHasRealityStone;
import lucraft.mods.lucraftcore.superpowers.abilities.Ability;
import net.minecraft.entity.EntityLivingBase;
@ -21,9 +20,4 @@ public class SHNotLoadedProxy implements SHProxy {
return null;
}
@Override
public boolean hasRealityStone(EntityLivingBase entity) {
return Ability.hasAbility(entity, AbilityHasRealityStone.class);
}
}

View File

@ -11,6 +11,4 @@ public interface SHProxy {
Ability getAbilityTurnIntoBubbles(EntityLivingBase entity);
boolean hasRealityStone(EntityLivingBase entity);
}

View File

@ -1,37 +1,34 @@
package anvil.infinity.helpers;
import anvil.infinity.abilities.*;
import anvil.infinity.compat.CompatHandler;
import lucraft.mods.lucraftcore.infinity.EnumInfinityStone;
import lucraft.mods.lucraftcore.infinity.items.ItemInfinityStone;
import lucraft.mods.lucraftcore.superpowers.abilities.Ability;
import net.minecraft.entity.EntityLivingBase;
public class GauntelHelper {
public static boolean hasPowerStone(EntityLivingBase entity) {
return Ability.hasAbility(entity, AbilityHasPowerStone.class);
return ItemInfinityStone.hasStone(entity, Ability.EnumAbilityContext.MAIN_HAND, EnumInfinityStone.POWER) || ItemInfinityStone.hasStone(entity, Ability.EnumAbilityContext.OFF_HAND, EnumInfinityStone.POWER);
}
public static boolean hasSpaceStone(EntityLivingBase entity) {
return CompatHandler.HeroesExpension.hasSpaceStone(entity);
return ItemInfinityStone.hasStone(entity, Ability.EnumAbilityContext.MAIN_HAND, EnumInfinityStone.SPACE) || ItemInfinityStone.hasStone(entity, Ability.EnumAbilityContext.OFF_HAND, EnumInfinityStone.SPACE);
}
public static boolean hasRealityStone(EntityLivingBase entity) {
if (CompatHandler.isSpeedsterHeroes) {
return CompatHandler.SpeedsterHeroes.hasRealityStone(entity);
}
return Ability.hasAbility(entity, AbilityHasRealityStone.class);
return ItemInfinityStone.hasStone(entity, Ability.EnumAbilityContext.MAIN_HAND, EnumInfinityStone.REALITY) || ItemInfinityStone.hasStone(entity, Ability.EnumAbilityContext.OFF_HAND, EnumInfinityStone.REALITY);
}
public static boolean hasSoulStone(EntityLivingBase entity) {
return Ability.hasAbility(entity, AbilityHasSoulStone.class);
return ItemInfinityStone.hasStone(entity, Ability.EnumAbilityContext.MAIN_HAND, EnumInfinityStone.SOUL) || ItemInfinityStone.hasStone(entity, Ability.EnumAbilityContext.OFF_HAND, EnumInfinityStone.SOUL);
}
public static boolean hasTimeStone(EntityLivingBase entity) {
return Ability.hasAbility(entity, AbilityHasTimeStone.class);
return ItemInfinityStone.hasStone(entity, Ability.EnumAbilityContext.MAIN_HAND, EnumInfinityStone.TIME) || ItemInfinityStone.hasStone(entity, Ability.EnumAbilityContext.OFF_HAND, EnumInfinityStone.TIME);
}
public static boolean hasMindStone(EntityLivingBase entity) {
return Ability.hasAbility(entity, AbilityHasMindStone.class);
return ItemInfinityStone.hasStone(entity, Ability.EnumAbilityContext.MAIN_HAND, EnumInfinityStone.MIND) || ItemInfinityStone.hasStone(entity, Ability.EnumAbilityContext.OFF_HAND, EnumInfinityStone.MIND);
}
public static boolean hasFullGauntlet(EntityLivingBase entity) {

View File

@ -1,7 +1,6 @@
package anvil.infinity.items;
import anvil.infinity.abilities.AbilityChangeSnap;
import anvil.infinity.abilities.AbilityHasMindStone;
import anvil.infinity.compat.CompatHandler;
import anvil.infinity.config.ConfigHandler;
import lucraft.mods.lucraftcore.infinity.EnumInfinityStone;
@ -36,7 +35,6 @@ public class ItemMindStone extends ItemInfinityStone {
@Override
public Ability.AbilityMap addStoneAbilities(EntityLivingBase entity, Ability.AbilityMap abilities, Ability.EnumAbilityContext context) {
abilities.put("flight", new AbilityFlight(entity).setDataValue(AbilityFlight.SPEED, 1f));
abilities.put("mind", new AbilityHasMindStone(entity));
abilities.put("changesnap", new AbilityChangeSnap(entity));
if (CompatHandler.isHeroesExpansion && ConfigHandler.heAbilities) {
abilities.put("telekinesis", CompatHandler.HeroesExpension.getAbilityGrabEntity(entity));

View File

@ -1,6 +1,5 @@
package anvil.infinity.items;
import anvil.infinity.abilities.AbilityHasPowerStone;
import anvil.infinity.abilities.AbilitySaturation;
import anvil.infinity.compat.CompatHandler;
import anvil.infinity.config.ConfigHandler;
@ -37,7 +36,6 @@ public class ItemPowerStone extends ItemInfinityStone implements IAbilityProvide
@Override
public Ability.AbilityMap addStoneAbilities(EntityLivingBase entity, Ability.AbilityMap abilities, Ability.EnumAbilityContext context) {
abilities.put("power", new AbilityHasPowerStone(entity));
abilities.put("blast", new AbilityEnergyBlast(entity).setDataValue(AbilityEnergyBlast.DAMAGE, Float.MAX_VALUE).setDataValue(AbilityEnergyBlast.COLOR, Color.MAGENTA));
abilities.put("strength", new AbilityStrength(entity).setDataValue(AbilityAttributeModifier.AMOUNT, Float.MAX_VALUE));
abilities.put("damage", new AbilityPunch(entity).setDataValue(AbilityPunch.AMOUNT, Float.MAX_VALUE));

View File

@ -1,6 +1,5 @@
package anvil.infinity.items;
import anvil.infinity.abilities.AbilityHasRealityStone;
import anvil.infinity.compat.CompatHandler;
import anvil.infinity.config.ConfigHandler;
import lucraft.mods.lucraftcore.infinity.EnumInfinityStone;
@ -38,7 +37,6 @@ public class ItemRealityStone extends ItemInfinityStone {
abilities.put("size", new AbilitySizeChange(entity).setDataValue(AbilitySizeChange.SIZE, ConfigHandler.size));
}
abilities.put("invisibility", new AbilityInvisibility(entity));
abilities.put("reality", new AbilityHasRealityStone(entity));
if (CompatHandler.isSpeedsterHeroes && ConfigHandler.useSHRealityAbilities) {
abilities.put("save_block", CompatHandler.SpeedsterHeroes.getAbilitySaveBlock(entity));
abilities.put("change_block", CompatHandler.SpeedsterHeroes.getAbilityChangeBlock(entity));

View File

@ -1,6 +1,5 @@
package anvil.infinity.items;
import anvil.infinity.abilities.AbilityHasSoulStone;
import anvil.infinity.abilities.AbilityKill;
import anvil.infinity.abilities.AbilitySnap;
import anvil.infinity.conditions.ICondition;
@ -49,7 +48,6 @@ public class ItemSoulStone extends ItemInfinityStone {
abilities.put("immortality", new AbilityHealth(entity).setDataValue(AbilityAttributeModifier.AMOUNT, Float.MAX_VALUE));
}
abilities.put("healing", new AbilityHealing(entity).setDataValue(AbilityHealing.FREQUENCY, 1));
abilities.put("soul", new AbilityHasSoulStone(entity));
abilities.put("kill", new AbilityKill(entity, killCond));
abilities.put("snap", new AbilitySnap(entity));
return super.addStoneAbilities(entity, abilities, context);

View File

@ -1,7 +1,6 @@
package anvil.infinity.items;
import anvil.infinity.abilities.AbilityFastForward;
import anvil.infinity.abilities.AbilityHasTimeStone;
import anvil.infinity.abilities.AbilityStopTime;
import lucraft.mods.lucraftcore.infinity.EnumInfinityStone;
import lucraft.mods.lucraftcore.infinity.ModuleInfinity;
@ -32,7 +31,6 @@ public class ItemTimeStone extends ItemInfinityStone {
@Override
public Ability.AbilityMap addStoneAbilities(EntityLivingBase entity, Ability.AbilityMap abilities, Ability.EnumAbilityContext context) {
abilities.put("time", new AbilityHasTimeStone(entity));
abilities.put("fast_forward", new AbilityFastForward(entity));
abilities.put("stop_time", new AbilityStopTime(entity));
return super.addStoneAbilities(entity, abilities, context);

View File

@ -14,13 +14,6 @@ public class Abilities {
@SubscribeEvent
public static void onRegisterAbilities(RegistryEvent.Register<AbilityEntry> e) {
e.getRegistry().register(new AbilityEntry(AbilitySnap.class, new ResourceLocation(Infinity.MOD_ID, "snap")));
e.getRegistry().register(new AbilityEntry(AbilityHasStone.class, new ResourceLocation(Infinity.MOD_ID, "stone")));
e.getRegistry().register(new AbilityEntry(AbilityHasPowerStone.class, new ResourceLocation(Infinity.MOD_ID, "power")));
e.getRegistry().register(new AbilityEntry(AbilityhasSpaceStone.class, new ResourceLocation(Infinity.MOD_ID, "space")));
e.getRegistry().register(new AbilityEntry(AbilityHasRealityStone.class, new ResourceLocation(Infinity.MOD_ID, "reality")));
e.getRegistry().register(new AbilityEntry(AbilityHasSoulStone.class, new ResourceLocation(Infinity.MOD_ID, "soul")));
e.getRegistry().register(new AbilityEntry(AbilityHasTimeStone.class, new ResourceLocation(Infinity.MOD_ID, "time")));
e.getRegistry().register(new AbilityEntry(AbilityHasMindStone.class, new ResourceLocation(Infinity.MOD_ID, "mind")));
e.getRegistry().register(new AbilityEntry(AbilityKill.class, new ResourceLocation(Infinity.MOD_ID, "kill")));
e.getRegistry().register(new AbilityEntry(AbilityChangeSnap.class, new ResourceLocation(Infinity.MOD_ID, "changesnap")));
e.getRegistry().register(new AbilityEntry(AbilitySaturation.class, new ResourceLocation(Infinity.MOD_ID, "saturation")));