Merge pull request #527 from Arcaratus/1.8-Rewrite

Jumping Ritual
This commit is contained in:
WayofTime 2015-12-31 09:32:53 -05:00
commit f56261e766
7 changed files with 124 additions and 10 deletions

View file

@ -85,7 +85,6 @@ public class ItemSacrificialDagger extends Item
@Override
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
{
if (PlayerHelper.isFakePlayer(player))
return stack;

View file

@ -11,6 +11,7 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.BlockPos;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
import net.minecraftforge.common.DimensionManager;
@ -22,7 +23,6 @@ import java.util.List;
public class ItemTelepositionFocus extends ItemBindable
{
public static String[] names = { "weak", "enhanced", "reinforced", "demonic" };
public ItemTelepositionFocus()
@ -53,8 +53,17 @@ public class ItemTelepositionFocus extends ItemBindable
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
{
if (BindableHelper.checkAndSetItemOwner(stack, player))
{
if (player.isSneaking())
return stack;
{
MovingObjectPosition mop = getMovingObjectPositionFromPlayer(world, player, false);
if (mop != null && mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK)
{
setBlockPos(stack, world, mop.getBlockPos());
}
}
}
return stack;
}
@ -67,11 +76,15 @@ public class ItemTelepositionFocus extends ItemBindable
super.addInformation(stack, player, tooltip, advanced);
stack = NBTHelper.checkNBT(stack);
NBTTagCompound tag = stack.getTagCompound();
BlockPos coords = getBlockPos(stack);
tooltip.add(String.format(StatCollector.translateToLocal("tooltip.alchemy.coords"), coords.getX(), coords.getY(), coords.getZ()));
tooltip.add(String.format(StatCollector.translateToLocal("tooltip.alchemy.dimension"), tag.getInteger(Constants.NBT.DIMENSION_ID)));
if (coords != null && tag != null)
{
tooltip.add(String.format(StatCollector.translateToLocal("tooltip.BloodMagic.telepositionFocus.coords"), coords.getX(), coords.getY(), coords.getZ()));
tooltip.add(String.format(StatCollector.translateToLocal("tooltip.BloodMagic.telepositionFocus.dimension"), tag.getInteger(Constants.NBT.DIMENSION_ID)));
}
}
public World getWorld(ItemStack stack)

View file

@ -63,6 +63,7 @@ public class ModItems
public static Item sigilCompression;
public static Item itemComponent;
public static Item telepositionFocus;
public static Item bloodShard;
@ -131,6 +132,7 @@ public class ModItems
sigilEnderSeverance = registerItem(new ItemSigilEnderSeverance());
itemComponent = registerItem(new ItemComponent());
telepositionFocus = registerItem(new ItemTelepositionFocus());
bloodShard = registerItem(new ItemBloodShard());
@ -222,6 +224,8 @@ public class ModItems
for (int i = 0; i < ItemComponent.getNames().size(); i++)
renderHelper.itemRender(itemComponent, i);
for (int i = 0; i < ItemTelepositionFocus.names.length; i++)
renderHelper.itemRender(telepositionFocus, i);
renderHelper.itemRender(bloodShard, 0);
renderHelper.itemRender(bloodShard, 1);

View file

@ -4,10 +4,7 @@ import WayofTime.bloodmagic.api.registry.ImperfectRitualRegistry;
import WayofTime.bloodmagic.api.registry.RitualRegistry;
import WayofTime.bloodmagic.api.ritual.Ritual;
import WayofTime.bloodmagic.api.ritual.imperfect.ImperfectRitual;
import WayofTime.bloodmagic.ritual.RitualGreenGrove;
import WayofTime.bloodmagic.ritual.RitualLava;
import WayofTime.bloodmagic.ritual.RitualTest;
import WayofTime.bloodmagic.ritual.RitualWater;
import WayofTime.bloodmagic.ritual.*;
import WayofTime.bloodmagic.ritual.imperfect.ImperfectRitualNight;
import WayofTime.bloodmagic.ritual.imperfect.ImperfectRitualRain;
import WayofTime.bloodmagic.ritual.imperfect.ImperfectRitualResistance;
@ -15,11 +12,11 @@ import WayofTime.bloodmagic.ritual.imperfect.ImperfectRitualZombie;
public class ModRituals
{
public static Ritual testRitual;
public static Ritual waterRitual;
public static Ritual lavaRitual;
public static Ritual greenGroveRitual;
public static Ritual jumpRitual;
public static ImperfectRitual imperfectNight;
public static ImperfectRitual imperfectRain;
@ -32,11 +29,13 @@ public class ModRituals
waterRitual = new RitualWater();
lavaRitual = new RitualLava();
greenGroveRitual = new RitualGreenGrove();
jumpRitual = new RitualJumping();
RitualRegistry.registerRitual(testRitual, testRitual.getName());
RitualRegistry.registerRitual(waterRitual, waterRitual.getName());
RitualRegistry.registerRitual(lavaRitual, lavaRitual.getName());
RitualRegistry.registerRitual(greenGroveRitual, greenGroveRitual.getName());
RitualRegistry.registerRitual(jumpRitual, jumpRitual.getName());
}
public static void initImperfectRituals()

View file

@ -0,0 +1,88 @@
package WayofTime.bloodmagic.ritual;
import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.network.SoulNetwork;
import WayofTime.bloodmagic.api.ritual.*;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import WayofTime.bloodmagic.network.BloodMagicPacketHandler;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.util.BlockPos;
import net.minecraft.world.World;
import java.util.ArrayList;
import java.util.List;
public class RitualJumping extends Ritual
{
public static final String JUMP_RANGE = "jumpRange";
public RitualJumping()
{
super("ritualJump", 0, 1000, "ritual." + Constants.Mod.MODID + ".jumpRitual");
addBlockRange(JUMP_RANGE, new AreaDescriptor.Rectangle(new BlockPos(-1, 1, -1), new BlockPos(1, 2, 1)));
}
@Override
public void performRitual(IMasterRitualStone masterRitualStone)
{
World world = masterRitualStone.getWorld();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner(), world);
int currentEssence = network.getCurrentEssence();
if (currentEssence < getRefreshCost())
return;
AreaDescriptor jumpRange = getBlockRange(JUMP_RANGE);
List<EntityLivingBase> entities = world.getEntitiesWithinAABB(EntityLivingBase.class, jumpRange.getAABB(masterRitualStone.getPos()));
if (entities != null)
{
for (EntityLivingBase entity : entities)
{
if (entity.isSneaking())
continue;
double motionY = 1.5;
if (entity instanceof EntityPlayer && entity instanceof EntityPlayerMP)
{
//TODO Packet handlers if needed
// BloodMagicPacketHandler.INSTANCE.sendTo();
((EntityPlayerMP) entity).motionY = motionY;
((EntityPlayerMP) entity).fallDistance = 0;
}
else
{
entity.motionY = motionY;
entity.fallDistance = 0;
}
}
}
}
@Override
public int getRefreshTime()
{
return 20;
}
@Override
public int getRefreshCost()
{
return 5;
}
@Override
public ArrayList<RitualComponent> getComponents()
{
ArrayList<RitualComponent> components = new ArrayList<RitualComponent>();
for (int i = -1; i <= 1; i++)
this.addCornerRunes(components, 1, i, EnumRuneType.AIR);
return components;
}
}

View file

@ -0,0 +1,5 @@
package WayofTime.bloodmagic.tile;
public class TileTeleposer
{
}

View file

@ -200,9 +200,15 @@ tooltip.BloodMagic.diviner.totalRune=Total Runes: %d
tooltip.BloodMagic.diviner.extraInfo=Press shift for extra info
tooltip.BloodMagic.diviner.currentDirection=Current Direction: %s
tooltip.BloodMagic.telepositionFocus.coords=Current coordinates: (%d, %d, %d)
tooltip.BloodMagic.telepositionFocus.dimension=Dimension ID: %d
# Ritual
ritual.BloodMagic.testRitual=Test Ritual
ritual.BloodMagic.waterRitual=Ritual of the Full Spring
ritual.BloodMagic.lavaRitual=Serenade of the Nether
ritual.BloodMagic.greenGrove=Ritual of the Green Grove
ritual.BloodMagic.jumpRitual=Ritual of the High Jump
# Chat
chat.BloodMagic.altarMaker.setTier=Set Tier to: %d