Added the Ritual for Water and did some rudimentary tests. Issue: MRS does not load properly on world load.
This commit is contained in:
parent
0e1173ef5d
commit
16a6333c6f
|
@ -23,11 +23,15 @@ public abstract class Ritual {
|
||||||
this(name, crystalLevel, activationCost, null);
|
this(name, crystalLevel, activationCost, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract boolean activateRitual(IMasterRitualStone masterRitualStone, EntityPlayer player);
|
public boolean activateRitual(IMasterRitualStone masterRitualStone, EntityPlayer player) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public abstract void performRitual(IMasterRitualStone masterRitualStone);
|
public abstract void performRitual(IMasterRitualStone masterRitualStone);
|
||||||
|
|
||||||
public abstract void stopRitual(IMasterRitualStone masterRitualStone, Ritual.BreakType breakType);
|
public void stopRitual(IMasterRitualStone masterRitualStone, BreakType breakType) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public abstract int getRefreshCost();
|
public abstract int getRefreshCost();
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@ import WayofTime.bloodmagic.api.registry.RitualRegistry;
|
||||||
import WayofTime.bloodmagic.api.ritual.Ritual;
|
import WayofTime.bloodmagic.api.ritual.Ritual;
|
||||||
import WayofTime.bloodmagic.api.ritual.imperfect.ImperfectRitual;
|
import WayofTime.bloodmagic.api.ritual.imperfect.ImperfectRitual;
|
||||||
import WayofTime.bloodmagic.ritual.RitualTest;
|
import WayofTime.bloodmagic.ritual.RitualTest;
|
||||||
|
import WayofTime.bloodmagic.ritual.RitualWater;
|
||||||
import WayofTime.bloodmagic.ritual.imperfect.ImperfectRitualNight;
|
import WayofTime.bloodmagic.ritual.imperfect.ImperfectRitualNight;
|
||||||
import WayofTime.bloodmagic.ritual.imperfect.ImperfectRitualRain;
|
import WayofTime.bloodmagic.ritual.imperfect.ImperfectRitualRain;
|
||||||
import WayofTime.bloodmagic.ritual.imperfect.ImperfectRitualResistance;
|
import WayofTime.bloodmagic.ritual.imperfect.ImperfectRitualResistance;
|
||||||
|
@ -13,6 +14,7 @@ import WayofTime.bloodmagic.ritual.imperfect.ImperfectRitualZombie;
|
||||||
public class ModRituals {
|
public class ModRituals {
|
||||||
|
|
||||||
public static Ritual testRitual;
|
public static Ritual testRitual;
|
||||||
|
public static Ritual waterRitual;
|
||||||
|
|
||||||
public static ImperfectRitual imperfectNight;
|
public static ImperfectRitual imperfectNight;
|
||||||
public static ImperfectRitual imperfectRain;
|
public static ImperfectRitual imperfectRain;
|
||||||
|
@ -21,7 +23,10 @@ public class ModRituals {
|
||||||
|
|
||||||
public static void initRituals() {
|
public static void initRituals() {
|
||||||
testRitual = new RitualTest();
|
testRitual = new RitualTest();
|
||||||
|
waterRitual = new RitualWater();
|
||||||
|
|
||||||
RitualRegistry.registerRitual(testRitual, testRitual.getName());
|
RitualRegistry.registerRitual(testRitual, testRitual.getName());
|
||||||
|
RitualRegistry.registerRitual(waterRitual, waterRitual.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void initImperfectRituals() {
|
public static void initImperfectRituals() {
|
||||||
|
|
52
src/main/java/WayofTime/bloodmagic/ritual/RitualWater.java
Normal file
52
src/main/java/WayofTime/bloodmagic/ritual/RitualWater.java
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
package WayofTime.bloodmagic.ritual;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import net.minecraft.init.Blocks;
|
||||||
|
import net.minecraft.util.BlockPos;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import WayofTime.bloodmagic.api.network.SoulNetwork;
|
||||||
|
import WayofTime.bloodmagic.api.ritual.EnumRuneType;
|
||||||
|
import WayofTime.bloodmagic.api.ritual.IMasterRitualStone;
|
||||||
|
import WayofTime.bloodmagic.api.ritual.Ritual;
|
||||||
|
import WayofTime.bloodmagic.api.ritual.RitualComponent;
|
||||||
|
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
|
||||||
|
|
||||||
|
public class RitualWater extends Ritual{
|
||||||
|
|
||||||
|
public RitualWater() {
|
||||||
|
super("ritualWater", 0, 1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void performRitual(IMasterRitualStone masterRitualStone) {
|
||||||
|
System.out.println("Performing Effect");
|
||||||
|
World world = masterRitualStone.getWorld();
|
||||||
|
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner(), world);
|
||||||
|
int currentEssence = network.getCurrentEssence();
|
||||||
|
|
||||||
|
if(currentEssence < getRefreshCost()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
BlockPos pos = masterRitualStone.getPos().up();
|
||||||
|
if(world.isAirBlock(pos)) {
|
||||||
|
world.setBlockState(pos, Blocks.water.getDefaultState());
|
||||||
|
network.syphon(getRefreshCost());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getRefreshCost() {
|
||||||
|
return 50;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ArrayList<RitualComponent> getComponents() {
|
||||||
|
ArrayList<RitualComponent> components = new ArrayList<RitualComponent>();
|
||||||
|
|
||||||
|
this.addCornerRunes(components, 1, 0, EnumRuneType.WATER);
|
||||||
|
|
||||||
|
return components;
|
||||||
|
}
|
||||||
|
}
|
|
@ -43,6 +43,15 @@ public class TileMasterRitualStone extends TileEntity implements IMasterRitualSt
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void update() {
|
public void update() {
|
||||||
|
if(!worldObj.isRemote && worldObj.getWorldTime() % REFRESH_TIME == 0) {
|
||||||
|
System.out.println("Owner: " + owner);
|
||||||
|
if(isActive()) {
|
||||||
|
System.out.println("Is active");
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("Active time: " + activeTime);
|
||||||
|
}
|
||||||
|
|
||||||
if (getCurrentRitual() != null && isActive()) {
|
if (getCurrentRitual() != null && isActive()) {
|
||||||
if (activeTime % REFRESH_TIME == 0)
|
if (activeTime % REFRESH_TIME == 0)
|
||||||
performRitual(getWorld(), getPos());
|
performRitual(getWorld(), getPos());
|
||||||
|
@ -57,7 +66,7 @@ public class TileMasterRitualStone extends TileEntity implements IMasterRitualSt
|
||||||
currentRitual = RitualRegistry.getRitualForId(tag.getString(Constants.NBT.CURRENT_RITUAL));
|
currentRitual = RitualRegistry.getRitualForId(tag.getString(Constants.NBT.CURRENT_RITUAL));
|
||||||
active = tag.getBoolean(Constants.NBT.IS_RUNNING);
|
active = tag.getBoolean(Constants.NBT.IS_RUNNING);
|
||||||
activeTime = tag.getInteger(Constants.NBT.RUNTIME);
|
activeTime = tag.getInteger(Constants.NBT.RUNTIME);
|
||||||
direction = EnumFacing.VALUES[tag.getInteger(Constants.NBT.DIRECTION)];
|
direction = EnumFacing.VALUES[tag.getInteger(Constants.NBT.DIRECTION)];
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in a new issue