Added the Ritual for Water and did some rudimentary tests. Issue: MRS does not load properly on world load.

This commit is contained in:
WayofTime 2015-12-29 13:41:03 -05:00
parent 0e1173ef5d
commit 16a6333c6f
4 changed files with 73 additions and 3 deletions

View file

@ -23,11 +23,15 @@ public abstract class Ritual {
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 stopRitual(IMasterRitualStone masterRitualStone, Ritual.BreakType breakType);
public void stopRitual(IMasterRitualStone masterRitualStone, BreakType breakType) {
}
public abstract int getRefreshCost();

View file

@ -5,6 +5,7 @@ import WayofTime.bloodmagic.api.registry.RitualRegistry;
import WayofTime.bloodmagic.api.ritual.Ritual;
import WayofTime.bloodmagic.api.ritual.imperfect.ImperfectRitual;
import WayofTime.bloodmagic.ritual.RitualTest;
import WayofTime.bloodmagic.ritual.RitualWater;
import WayofTime.bloodmagic.ritual.imperfect.ImperfectRitualNight;
import WayofTime.bloodmagic.ritual.imperfect.ImperfectRitualRain;
import WayofTime.bloodmagic.ritual.imperfect.ImperfectRitualResistance;
@ -13,6 +14,7 @@ import WayofTime.bloodmagic.ritual.imperfect.ImperfectRitualZombie;
public class ModRituals {
public static Ritual testRitual;
public static Ritual waterRitual;
public static ImperfectRitual imperfectNight;
public static ImperfectRitual imperfectRain;
@ -21,7 +23,10 @@ public class ModRituals {
public static void initRituals() {
testRitual = new RitualTest();
waterRitual = new RitualWater();
RitualRegistry.registerRitual(testRitual, testRitual.getName());
RitualRegistry.registerRitual(waterRitual, waterRitual.getName());
}
public static void initImperfectRituals() {

View 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;
}
}

View file

@ -43,6 +43,15 @@ public class TileMasterRitualStone extends TileEntity implements IMasterRitualSt
@Override
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 (activeTime % REFRESH_TIME == 0)
performRitual(getWorld(), getPos());