A lot more implementation work for custom areas for rituals.
This commit is contained in:
parent
51c79f15a9
commit
91ddb8b761
13 changed files with 127 additions and 26 deletions
|
@ -29,6 +29,9 @@ public class RitualFeatheredKnife extends Ritual
|
|||
super("ritualFeatheredKnife", 0, 25000, "ritual." + Constants.Mod.MODID + ".featheredKnifeRitual");
|
||||
addBlockRange(ALTAR_RANGE, new AreaDescriptor.Rectangle(new BlockPos(-5, -10, -5), 11, 21, 11));
|
||||
addBlockRange(DAMAGE_RANGE, new AreaDescriptor.Rectangle(new BlockPos(-15, -20, -15), 31, 41, 31));
|
||||
|
||||
setMaximumVolumeAndDistanceOfRange(ALTAR_RANGE, 0, 10, 15);
|
||||
setMaximumVolumeAndDistanceOfRange(DAMAGE_RANGE, 0, 15, 15);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -23,6 +23,7 @@ public class RitualGreenGrove extends Ritual
|
|||
{
|
||||
super("ritualGreenGrove", 0, 5000, "ritual." + Constants.Mod.MODID + ".greenGroveRitual");
|
||||
addBlockRange(GROW_RANGE, new AreaDescriptor.Rectangle(new BlockPos(-1, 2, -1), 3, 1, 3));
|
||||
setMaximumVolumeAndDistanceOfRange(GROW_RANGE, 81, 4, 4);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -30,6 +30,8 @@ public class RitualHarvest extends Ritual
|
|||
public RitualHarvest()
|
||||
{
|
||||
super("ritualHarvest", 0, 20000, "ritual." + Constants.Mod.MODID + ".harvestRitual");
|
||||
addBlockRange(HARVEST_RANGE, new AreaDescriptor.Rectangle(new BlockPos(-4, 1, -4), 9, 5, 9));
|
||||
setMaximumVolumeAndDistanceOfRange(HARVEST_RANGE, 81, 15, 15);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -37,6 +39,7 @@ public class RitualHarvest extends Ritual
|
|||
{
|
||||
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner());
|
||||
World world = masterRitualStone.getWorldObj();
|
||||
BlockPos pos = masterRitualStone.getBlockPos();
|
||||
|
||||
if (network.getCurrentEssence() < getRefreshCost())
|
||||
{
|
||||
|
@ -44,22 +47,21 @@ public class RitualHarvest extends Ritual
|
|||
return;
|
||||
}
|
||||
|
||||
BlockStack amplifierStack = BlockStack.getStackFromPos(world, masterRitualStone.getBlockPos().up());
|
||||
|
||||
int range = 4;
|
||||
if (amplifierStack != null)
|
||||
if (HarvestRegistry.getAmplifierMap().containsKey(amplifierStack))
|
||||
range = HarvestRegistry.getAmplifierMap().get(amplifierStack);
|
||||
|
||||
addBlockRange(HARVEST_RANGE, new AreaDescriptor.Rectangle(new BlockPos(-range, 0, -range), new BlockPos(range + 1, 4, range + 1)));
|
||||
|
||||
int harvested = 0;
|
||||
|
||||
for (BlockPos pos : getBlockRange(HARVEST_RANGE).getContainedPositions(masterRitualStone.getBlockPos().up()))
|
||||
if (harvestBlock(world, pos))
|
||||
harvested++;
|
||||
AreaDescriptor harvestArea = getBlockRange(HARVEST_RANGE);
|
||||
|
||||
network.syphon(getRefreshCost() * Math.min(100, harvested));
|
||||
harvestArea.resetIterator();
|
||||
while (harvestArea.hasNext())
|
||||
{
|
||||
BlockPos nextPos = harvestArea.next().add(pos);
|
||||
if (harvestBlock(world, nextPos))
|
||||
{
|
||||
harvested++;
|
||||
}
|
||||
}
|
||||
|
||||
network.syphon(getRefreshCost() * harvested);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -21,6 +21,7 @@ public class RitualJumping extends Ritual
|
|||
{
|
||||
super("ritualJump", 0, 5000, "ritual." + Constants.Mod.MODID + ".jumpRitual");
|
||||
addBlockRange(JUMP_RANGE, new AreaDescriptor.Rectangle(new BlockPos(-1, 1, -1), 3, 1, 3));
|
||||
setMaximumVolumeAndDistanceOfRange(JUMP_RANGE, 0, 5, 5);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -18,6 +18,7 @@ public class RitualLava extends Ritual
|
|||
{
|
||||
super("ritualLava", 0, 10000, "ritual." + Constants.Mod.MODID + ".lavaRitual");
|
||||
addBlockRange(LAVA_RANGE, new AreaDescriptor.Rectangle(new BlockPos(0, 1, 0), 1));
|
||||
setMaximumVolumeAndDistanceOfRange(LAVA_RANGE, 9, 3, 3);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -34,6 +34,7 @@ public class RitualMagnetic extends Ritual
|
|||
{
|
||||
super("ritualMagnetic", 0, 5000, "ritual." + Constants.Mod.MODID + ".magneticRitual");
|
||||
addBlockRange(PLACEMENT_RANGE, new AreaDescriptor.Rectangle(new BlockPos(-1, 1, -1), 3));
|
||||
setMaximumVolumeAndDistanceOfRange(PLACEMENT_RANGE, 50, 4, 4);
|
||||
}
|
||||
|
||||
public static boolean isBlockOre(Block block, int meta)
|
||||
|
|
|
@ -1,20 +1,23 @@
|
|||
package WayofTime.bloodmagic.ritual;
|
||||
|
||||
import WayofTime.bloodmagic.api.Constants;
|
||||
import WayofTime.bloodmagic.api.network.SoulNetwork;
|
||||
import WayofTime.bloodmagic.api.ritual.*;
|
||||
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.MobEffects;
|
||||
import net.minecraft.potion.Potion;
|
||||
import net.minecraft.potion.PotionEffect;
|
||||
import net.minecraft.util.math.AxisAlignedBB;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import WayofTime.bloodmagic.api.Constants;
|
||||
import WayofTime.bloodmagic.api.network.SoulNetwork;
|
||||
import WayofTime.bloodmagic.api.ritual.AreaDescriptor;
|
||||
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 RitualRegeneration extends Ritual
|
||||
{
|
||||
|
@ -26,6 +29,7 @@ public class RitualRegeneration extends Ritual
|
|||
{
|
||||
super("ritualRegeneration", 0, 25000, "ritual." + Constants.Mod.MODID + ".regenerationRitual");
|
||||
addBlockRange(HEAL_RANGE, new AreaDescriptor.Rectangle(new BlockPos(-15, -15, -15), 31));
|
||||
setMaximumVolumeAndDistanceOfRange(HEAL_RANGE, 0, 20, 20);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -31,6 +31,9 @@ public class RitualWellOfSuffering extends Ritual
|
|||
super("ritualWellOfSuffering", 0, 40000, "ritual." + Constants.Mod.MODID + ".wellOfSufferingRitual");
|
||||
addBlockRange(ALTAR_RANGE, new AreaDescriptor.Rectangle(new BlockPos(-5, -10, -5), 11, 21, 11));
|
||||
addBlockRange(DAMAGE_RANGE, new AreaDescriptor.Rectangle(new BlockPos(-10, -10, -10), 21));
|
||||
|
||||
setMaximumVolumeAndDistanceOfRange(ALTAR_RANGE, 0, 10, 15);
|
||||
setMaximumVolumeAndDistanceOfRange(DAMAGE_RANGE, 0, 15, 15);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue