Converted PartAdvanced to TraitPart
This commit is contained in:
parent
8fb8062ae6
commit
66789c4658
5 changed files with 55 additions and 88 deletions
|
@ -7,7 +7,7 @@ import net.minecraft.nbt.NBTTagCompound;
|
|||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import resonantinduction.core.prefab.part.PartAdvanced;
|
||||
import resonantinduction.core.prefab.part.TraitPart;
|
||||
import universalelectricity.api.CompatibilityModule;
|
||||
import universalelectricity.api.UniversalClass;
|
||||
import universalelectricity.api.energy.EnergyNetworkLoader;
|
||||
|
@ -18,7 +18,7 @@ import universalelectricity.api.vector.VectorHelper;
|
|||
import codechicken.multipart.TMultiPart;
|
||||
|
||||
@UniversalClass
|
||||
public abstract class PartConductor extends PartAdvanced implements IConductor
|
||||
public abstract class PartConductor extends TraitPart implements IConductor
|
||||
{
|
||||
private IEnergyNetwork network;
|
||||
|
||||
|
|
|
@ -1,83 +0,0 @@
|
|||
package resonantinduction.core.prefab.part;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.world.World;
|
||||
import codechicken.multipart.IRedstonePart;
|
||||
import codechicken.multipart.TMultiPart;
|
||||
|
||||
public abstract class PartAdvanced extends TMultiPart
|
||||
{
|
||||
protected long ticks = 0;
|
||||
|
||||
@Override
|
||||
public void update()
|
||||
{
|
||||
if (ticks == 0)
|
||||
{
|
||||
initiate();
|
||||
}
|
||||
|
||||
if (ticks >= Long.MAX_VALUE)
|
||||
{
|
||||
ticks = 1;
|
||||
}
|
||||
|
||||
ticks++;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called on the TileEntity's first tick.
|
||||
*/
|
||||
public void initiate()
|
||||
{
|
||||
}
|
||||
|
||||
public World getWorld()
|
||||
{
|
||||
return world();
|
||||
}
|
||||
|
||||
protected abstract ItemStack getItem();
|
||||
|
||||
@Override
|
||||
public Iterable<ItemStack> getDrops()
|
||||
{
|
||||
List<ItemStack> drops = new ArrayList<ItemStack>();
|
||||
drops.add(getItem());
|
||||
return drops;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack pickItem(MovingObjectPosition hit)
|
||||
{
|
||||
return getItem();
|
||||
}
|
||||
|
||||
protected boolean checkRedstone(int side)
|
||||
{
|
||||
if (this.world().isBlockIndirectlyGettingPowered(x(), y(), z()))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
for (TMultiPart tp : tile().jPartList())
|
||||
{
|
||||
if (tp instanceof IRedstonePart)
|
||||
{
|
||||
IRedstonePart rp = (IRedstonePart) tp;
|
||||
if ((Math.max(rp.strongPowerLevel(side), rp.weakPowerLevel(side)) << 4) > 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -19,7 +19,7 @@ import codechicken.lib.data.MCDataOutput;
|
|||
* @author Calclavia
|
||||
*
|
||||
*/
|
||||
public abstract class PartColorableMaterial<M extends Enum> extends PartAdvanced
|
||||
public abstract class PartColorableMaterial<M extends Enum> extends TraitPart
|
||||
{
|
||||
public static final int DEFAULT_COLOR = 15;
|
||||
public int color = DEFAULT_COLOR;
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
package resonantinduction.core.prefab.part
|
||||
|
||||
import java.util.{ArrayList, List}
|
||||
|
||||
import codechicken.multipart.{IRedstonePart, TMultiPart}
|
||||
import net.minecraft.item.ItemStack
|
||||
import net.minecraft.util.MovingObjectPosition
|
||||
import resonant.content.spatial.block.TraitTicker
|
||||
|
||||
import scala.collection.JavaConversions._
|
||||
|
||||
trait TraitPart extends TMultiPart with TraitTicker
|
||||
{
|
||||
protected def getItem: ItemStack
|
||||
|
||||
override def getDrops: Iterable[ItemStack] =
|
||||
{
|
||||
val drops: List[ItemStack] = new ArrayList[ItemStack]
|
||||
drops.add(getItem)
|
||||
return drops
|
||||
}
|
||||
|
||||
override def pickItem(hit: MovingObjectPosition): ItemStack =
|
||||
{
|
||||
return getItem
|
||||
}
|
||||
|
||||
protected def checkRedstone(side: Int): Boolean =
|
||||
{
|
||||
if (this.world.isBlockIndirectlyGettingPowered(x, y, z))
|
||||
{
|
||||
return true
|
||||
}
|
||||
else
|
||||
{
|
||||
for (tp <- tile.partList)
|
||||
{
|
||||
if (tp.isInstanceOf[IRedstonePart])
|
||||
{
|
||||
val rp: IRedstonePart = tp.asInstanceOf[IRedstonePart]
|
||||
if ((Math.max(rp.strongPowerLevel(side), rp.weakPowerLevel(side)) << 4) > 0)
|
||||
{
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
}
|
|
@ -7,7 +7,7 @@ import net.minecraft.nbt.NBTTagCompound;
|
|||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import resonantinduction.core.prefab.part.PartAdvanced;
|
||||
import resonantinduction.core.prefab.part.TraitPart;
|
||||
import universalelectricity.api.CompatibilityModule;
|
||||
import universalelectricity.api.UniversalClass;
|
||||
import universalelectricity.api.energy.EnergyNetworkLoader;
|
||||
|
@ -20,7 +20,7 @@ import codechicken.multipart.TMultiPart;
|
|||
|
||||
@UniversalClass
|
||||
@Deprecated
|
||||
public abstract class PartConductor extends PartAdvanced implements IConductor
|
||||
public abstract class PartConductor extends TraitPart implements IConductor
|
||||
{
|
||||
private IEnergyNetwork network;
|
||||
|
||||
|
|
Loading…
Reference in a new issue