Additional work on the Alchemy Table, as well as the Elytra upgrade.
This commit is contained in:
parent
d10d6e6275
commit
d3379ff69b
14 changed files with 1429 additions and 1120 deletions
|
@ -36,6 +36,8 @@ import WayofTime.bloodmagic.client.IMeshProvider;
|
|||
import WayofTime.bloodmagic.item.ItemComponent;
|
||||
import WayofTime.bloodmagic.livingArmour.LivingArmour;
|
||||
import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeElytra;
|
||||
import WayofTime.bloodmagic.network.BloodMagicPacketHandler;
|
||||
import WayofTime.bloodmagic.network.PlayerFallDistancePacketProcessor;
|
||||
import WayofTime.bloodmagic.registry.ModItems;
|
||||
import WayofTime.bloodmagic.util.helper.TextHelper;
|
||||
|
||||
|
@ -293,10 +295,23 @@ public class ItemLivingArmour extends ItemArmor implements ISpecialArmor, IMeshP
|
|||
LivingArmourUpgrade upgrade = ItemLivingArmour.getUpgrade(Constants.Mod.MODID + ".upgrade.elytra", chestStack);
|
||||
if (upgrade instanceof LivingArmourUpgradeElytra)
|
||||
{
|
||||
if (spPlayer.movementInput.jump && !spPlayer.onGround && spPlayer.motionY < 0.0D && !spPlayer.isElytraFlying() && !spPlayer.capabilities.isFlying)
|
||||
if (spPlayer.motionY > -0.5D)
|
||||
{
|
||||
byte b0 = player.getDataManager().get(FLAGS);
|
||||
player.getDataManager().set(FLAGS, (byte) (b0 | 1 << 7));
|
||||
BloodMagicPacketHandler.INSTANCE.sendToServer(new PlayerFallDistancePacketProcessor(1));
|
||||
}
|
||||
|
||||
if (spPlayer.movementInput.jump && !spPlayer.onGround && spPlayer.motionY < 0.0D && !spPlayer.capabilities.isFlying)
|
||||
{
|
||||
if (spPlayer.motionY > -0.5D)
|
||||
{
|
||||
BloodMagicPacketHandler.INSTANCE.sendToServer(new PlayerFallDistancePacketProcessor(1));
|
||||
}
|
||||
|
||||
if (!spPlayer.isElytraFlying())
|
||||
{
|
||||
byte b0 = player.getDataManager().get(FLAGS);
|
||||
player.getDataManager().set(FLAGS, (byte) (b0 | 1 << 7));
|
||||
}
|
||||
} else if (spPlayer.isElytraFlying() && !spPlayer.movementInput.jump && !spPlayer.onGround)
|
||||
{
|
||||
byte b0 = player.getDataManager().get(FLAGS);
|
||||
|
|
|
@ -0,0 +1,59 @@
|
|||
package WayofTime.bloodmagic.item.block;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.item.ItemBlock;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import WayofTime.bloodmagic.tile.TileAlchemyTable;
|
||||
|
||||
public class ItemBlockAlchemyTable extends ItemBlock
|
||||
{
|
||||
public ItemBlockAlchemyTable(Block block)
|
||||
{
|
||||
super(block);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean placeBlockAt(ItemStack stack, EntityPlayer player, World world, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ, IBlockState newState)
|
||||
{
|
||||
float yaw = player.rotationYaw;
|
||||
EnumFacing direction = EnumFacing.fromAngle(yaw);
|
||||
|
||||
if (direction.getFrontOffsetY() != 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!world.isAirBlock(pos.offset(direction)))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// newState = block.getDefaultState().withProperty(BlockAlchemyTable.DIRECTION, direction).withProperty(BlockAlchemyTable.INVISIBLE, true);
|
||||
|
||||
if (!world.setBlockState(pos, newState, 3))
|
||||
return false;
|
||||
|
||||
world.setBlockState(pos.offset(direction), Blocks.LAPIS_BLOCK.getDefaultState());
|
||||
|
||||
IBlockState state = world.getBlockState(pos);
|
||||
if (state.getBlock() == this.block)
|
||||
{
|
||||
TileEntity tile = world.getTileEntity(pos);
|
||||
if (tile instanceof TileAlchemyTable)
|
||||
{
|
||||
((TileAlchemyTable) tile).setInitialTableParameters(direction, false, pos.offset(direction));
|
||||
}
|
||||
setTileEntityNBT(world, player, pos, stack);
|
||||
this.block.onBlockPlacedBy(world, pos, state, player, stack);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue