Started on TransTrapdoor.\nThese may need fixing later; trapdoors lost some functionality since 1.7.10

This commit is contained in:
Michael Zanga 2016-07-21 16:57:56 -04:00
parent b1fa82fc63
commit bce429e17e
6 changed files with 73 additions and 71 deletions

View file

@ -2,28 +2,26 @@ package com.zixiken.dimdoors.blocks;
import java.util.Random; import java.util.Random;
import com.zixiken.dimdoors.core.DimLink;
import com.zixiken.dimdoors.DimDoors; import com.zixiken.dimdoors.DimDoors;
import cpw.mods.fml.relauncher.Side; import com.zixiken.dimdoors.core.DDTeleporter;
import cpw.mods.fml.relauncher.SideOnly; import com.zixiken.dimdoors.core.DimLink;
import com.zixiken.dimdoors.core.LinkType;
import com.zixiken.dimdoors.core.PocketManager;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockTrapDoor; import net.minecraft.block.BlockTrapDoor;
import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.ITileEntityProvider;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.BlockPos;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World; import net.minecraft.world.World;
import com.zixiken.dimdoors.core.DDTeleporter;
import com.zixiken.dimdoors.core.LinkType;
import com.zixiken.dimdoors.core.NewDimData;
import com.zixiken.dimdoors.core.PocketManager;
import com.zixiken.dimdoors.items.ItemDDKey; import com.zixiken.dimdoors.items.ItemDDKey;
import com.zixiken.dimdoors.tileentities.TileEntityTransTrapdoor; import com.zixiken.dimdoors.tileentities.TileEntityTransTrapdoor;
@ -37,79 +35,45 @@ public class TransTrapdoor extends BlockTrapDoor implements IDimDoor, ITileEntit
setUnlocalizedName(ID); setUnlocalizedName(ID);
} }
@Override
public void registerBlockIcons(IIconRegister par1IconRegister)
{
this.blockIcon = par1IconRegister.registerIcon(DimDoors.modid + ":" + this.getUnlocalizedName());
}
//Teleports the player to the exit link of that dimension, assuming it is a pocket //Teleports the player to the exit link of that dimension, assuming it is a pocket
@Override @Override
public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) public void onEntityCollidedWithBlock(World world, BlockPos pos, Entity entity) {enterDimDoor(world, pos, entity);}
{
enterDimDoor(world, x, y, z, entity);
}
public boolean checkCanOpen(World world, int x, int y, int z) public boolean checkCanOpen(World world, BlockPos pos) {return this.checkCanOpen(world, pos, null);}
{
return this.checkCanOpen(world, x, y, z, null);
}
public boolean checkCanOpen(World world, int x, int y, int z, EntityPlayer player) public boolean checkCanOpen(World world, BlockPos pos, EntityPlayer player) {
{ DimLink link = PocketManager.getLink(pos, world);
DimLink link = PocketManager.getLink( x, y, z, world); if(link == null || player == null) return link == null;
if(link==null||player==null)
{ if(!link.getLockState()) return true;
return link==null;
}
if(!link.getLockState())
{
return true;
}
for(ItemStack item : player.inventory.mainInventory) for(ItemStack item : player.inventory.mainInventory)
{ if(item != null && item.getItem() instanceof ItemDDKey && link.tryToOpen(item)) return true;
if(item != null)
{
if(item.getItem() instanceof ItemDDKey)
{
if(link.tryToOpen(item))
{
return true;
}
}
}
}
return false; return false;
} }
public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9) @Override
{ public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumFacing side, float hitX, float hitY, float hitZ) {
if(this.checkCanOpen(par1World, par2, par3, par4, par5EntityPlayer)) return checkCanOpen(worldIn, pos, playerIn) &&
{ super.onBlockActivated(worldIn, pos, state, playerIn, side, hitX, hitY, hitZ);
return super.onBlockActivated(par1World, par2, par3, par4, par5EntityPlayer, par6, par7, par8, par9);
}
return false;
} }
public void onPoweredBlockChange(World par1World, int par2, int par3, int par4, boolean par5) @Override
{ public void onNeighborBlockChange(World worldIn, BlockPos pos, IBlockState state, Block neighborBlock) {
if(this.checkCanOpen(par1World, par2, par3, par4)) if(checkCanOpen(worldIn, pos)) super.onNeighborBlockChange(worldIn, pos, state, neighborBlock);
{
super.func_150120_a(par1World, par2, par3, par4, par5);
}
} }
@Override
public void enterDimDoor(World world, int x, int y, int z, Entity entity) @Override
{ public void enterDimDoor(World world, BlockPos pos, Entity entity) {
if (!world.isRemote && func_150118_d(world.getBlockMetadata(x, y, z))) IBlockState state = world.getBlockState(pos);
{ if (!world.isRemote && state.getValue(BlockTrapDoor.OPEN)) {
DimLink link = PocketManager.getLink(x, y, z, world); DimLink link = PocketManager.getLink(pos, world);
if (link != null && (link.linkType() != LinkType.PERSONAL || entity instanceof EntityPlayer)) if (link != null && (link.linkType() != LinkType.PERSONAL || entity instanceof EntityPlayer)) {
{ DDTeleporter.traverseDimDoor(world, link, entity, this);
DDTeleporter.traverseDimDoor(world, link, entity,this); state.cycleProperty(BlockTrapDoor.OPEN);
} world.markBlockRangeForRenderUpdate(pos, pos);
super.func_150120_a(world, x, y, z, false); world.playAuxSFXAtEntity(null, 1006, pos, 0);
}
} }
} }

View file

@ -0,0 +1,20 @@
{
"variants": {
"facing=north,half=bottom,open=false": { "model": "dimHatch_bottom" },
"facing=south,half=bottom,open=false": { "model": "dimHatch_bottom" },
"facing=east,half=bottom,open=false": { "model": "dimHatch_bottom" },
"facing=west,half=bottom,open=false": { "model": "dimHatch_bottom" },
"facing=north,half=top,open=false": { "model": "dimHatch_top" },
"facing=south,half=top,open=false": { "model": "dimHatch_top" },
"facing=east,half=top,open=false": { "model": "dimHatch_top" },
"facing=west,half=top,open=false": { "model": "dimHatch_top" },
"facing=north,half=bottom,open=true": { "model": "dimHatch_open" },
"facing=south,half=bottom,open=true": { "model": "dimHatch_open", "y": 180 },
"facing=east,half=bottom,open=true": { "model": "dimHatch_open", "y": 90 },
"facing=west,half=bottom,open=true": { "model": "dimHatch_open", "y": 270 },
"facing=north,half=top,open=true": { "model": "dimHatch_open" },
"facing=south,half=top,open=true": { "model": "dimHatch_open", "y": 180 },
"facing=east,half=top,open=true": { "model": "dimHatch_open", "y": 90 },
"facing=west,half=top,open=true": { "model": "dimHatch_open", "y": 270 }
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "block/trapdoor_bottom",
"textures": {
"texture": "blocks/dimHatch"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "block/trapdoor_open",
"textures": {
"texture": "blocks/dimHatch"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "block/trapdoor_top",
"textures": {
"texture": "blocks/dimHatch"
}
}

View file

Before

Width:  |  Height:  |  Size: 676 B

After

Width:  |  Height:  |  Size: 676 B