Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
reobf committed Nov 21, 2024
1 parent ea3bb48 commit 8fb46c2
Show file tree
Hide file tree
Showing 16 changed files with 536 additions and 37 deletions.
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
package reobf.proghatches.ae;

import java.util.List;

import appeng.tile.networking.TileController;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
import reobf.proghatches.block.INameAndTooltips;

public class BlockMolecularAssemblerInterface extends BlockContainer{
public class BlockMolecularAssemblerInterface extends BlockContainer implements INameAndTooltips{

public BlockMolecularAssemblerInterface( ) {
super(Material.rock);
Expand All @@ -21,6 +26,23 @@ public TileMolecularAssemblerInterface createNewTileEntity(World worldIn, int me

return new TileMolecularAssemblerInterface();
}

@Override
public boolean isOpaqueCube() {

return false;
}

@Override
public void addInformation(ItemStack p_77624_1_, List l) {
l.add(StatCollector.translateToLocal("proghatch.ma_iface.tooltip.0"));
l.add(StatCollector.translateToLocal("proghatch.ma_iface.tooltip.1"));
l.add(StatCollector.translateToLocal("proghatch.ma_iface.tooltip.2"));
}

@Override
public String getName(ItemStack p_77624_1_) {

return null;
}

}
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
package reobf.proghatches.ae;

import java.util.List;

import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
import reobf.proghatches.block.INameAndTooltips;

public class BlockStockingCircuitRequestInterceptor extends BlockContainer{
public class BlockStockingCircuitRequestInterceptor extends BlockContainer implements INameAndTooltips{

public BlockStockingCircuitRequestInterceptor() {

Expand All @@ -22,4 +27,16 @@ public TileEntity createNewTileEntity(World worldIn, int meta) {
return new TileStockingCircuitRequestInterceptor();
}

@Override
public void addInformation(ItemStack p_77624_1_, List l) {
l.add(StatCollector.translateToLocal("proghatch.circuit_interceptor.tooltip.0"));
l.add(StatCollector.translateToLocal("proghatch.circuit_interceptor.tooltip.1"));
}

@Override
public String getName(ItemStack p_77624_1_) {
// TODO Auto-generated method stub
return null;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,24 @@

import appeng.api.implementations.tiles.ICraftingMachine;
import appeng.api.networking.crafting.ICraftingPatternDetails;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidTankInfo;
import net.minecraftforge.fluids.IFluidHandler;
import reobf.proghatches.fmp.LayerCraftingMachine.StateHolder;
import reobf.proghatches.main.MyMod;
import reobf.proghatches.net.MAFXMessage;

public class TileMolecularAssemblerInterface extends TileEntity implements ICraftingMachine {

public float xfx;//=0.1f;
public float yfx;//=0.1f;
public float zfx;//=0.1f;
@Override
public boolean pushPattern(ICraftingPatternDetails patternDetails, InventoryCrafting table,
ForgeDirection ejectionDirection) {
Expand Down Expand Up @@ -49,16 +55,42 @@ public boolean pushPattern(ICraftingPatternDetails patternDetails, InventoryCraf

}

if(itemCheck(te, item, false)>=0)return false;
if(fluidCheck(te, fluid, false)>=0)return false;

itemCheck(te, item,true);
fluidCheck(te, fluid,true);

if(itemCheck(te, item, false,ejectionDirection.ordinal())>=0)return false;
if(fluidCheck(te, fluid, false,ejectionDirection)>=0)return false;

itemCheck(te, item,true,ejectionDirection.ordinal());
fluidCheck(te, fluid,true,ejectionDirection);
if(ejectionDirection.offsetX!=0){
xfx=1;
}
if(ejectionDirection.offsetY!=0){
yfx=1;
}
if(ejectionDirection.offsetZ!=0){
zfx=1;
}
return true;
}
@Override
public void updateEntity() {
if(this.getWorldObj().isRemote)return;
if(xfx>0){xfx=-1;
MyMod.net.sendToAllAround(new MAFXMessage(this, 0), new TargetPoint(this.getWorldObj().provider.dimensionId, xCoord, yCoord, zCoord, 100));

}
if(yfx>0){yfx=-1;
MyMod.net.sendToAllAround(new MAFXMessage(this, 1), new TargetPoint(this.getWorldObj().provider.dimensionId, xCoord, yCoord, zCoord, 100));


}
if(zfx>0){zfx=-1;
MyMod.net.sendToAllAround(new MAFXMessage(this, 2), new TargetPoint(this.getWorldObj().provider.dimensionId, xCoord, yCoord, zCoord, 100));


}


}
@Override
public boolean acceptsPlans() {
/*ForgeDirection dir = StateHolder.state;
Expand Down Expand Up @@ -126,16 +158,17 @@ public boolean canInsertItem(int p_102007_1_, ItemStack p_102007_2_, int p_10200

//-1 pass
//>=0 first index in inputs that won't fit
public int itemCheck( TileEntity t, ArrayList<ItemStack> item,boolean doInject) {
public int itemCheck( TileEntity t, ArrayList<ItemStack> item,boolean doInject,int side) {
if(t instanceof IInventory==false){return Integer.MAX_VALUE;}
IInventory te=(IInventory) t;

ForgeDirection dir=getSide();
ISideCheck checker=ISideCheck.ofInv(te);
int[] slots=checker.getAccessibleSlotsFromSide(side);
Arrays.sort(slots);
int cnt=0;
next:for(int i=0;i<item.size();i++){
int[] slots=checker.getAccessibleSlotsFromSide(i);
Arrays.sort(slots);

while(true){

if(checker.canInsertItem(slots[cnt], item.get(i), dir.ordinal())
Expand All @@ -144,7 +177,15 @@ public int itemCheck( TileEntity t, ArrayList<ItemStack> item,boolean doInject)
&&
te.getInventoryStackLimit()>=item.get(i).stackSize
&&item.get(i).stackSize<=item.get(i).getMaxStackSize()


){
if (te.getStackInSlot(slots[cnt])!=null
&&te.getStackInSlot(slots[cnt]).stackSize>0
){return slots[cnt];}



if(doInject){
te.setInventorySlotContents(slots[cnt], item.get(i));
}
Expand All @@ -166,10 +207,18 @@ public int itemCheck( TileEntity t, ArrayList<ItemStack> item,boolean doInject)
return -1;
}

public int fluidCheck( TileEntity t, ArrayList<FluidStack> fluid,boolean doInject) {
public int fluidCheck( TileEntity t, ArrayList<FluidStack> fluid,boolean doInject,ForgeDirection side) {
if(t instanceof IFluidHandler==false){return Integer.MAX_VALUE;}
IFluidHandler f=(IFluidHandler) t;
FluidTankInfo[] info = f.getTankInfo(side);
if(info!=null){
//f.drain(side, 1000, false);
for(FluidTankInfo i:info){
if(i.fluid!=null&&i.fluid.amount>0)return 0;
}
}
//SPECIAL CHECKS HERE

if(fluid.size()>1){return 0;}
for(int i=0;i<fluid.size();i++){
if(f.fill(getSide(), fluid.get(i), false)==fluid.get(i).amount)return i;
Expand Down
Loading

0 comments on commit 8fb46c2

Please sign in to comment.