reformatted all src files (#141)

This commit is contained in:
YoungOnion
2022-09-17 05:08:02 -06:00
committed by GitHub
parent 3328bfcda2
commit 9011273229
1056 changed files with 88127 additions and 110597 deletions
@@ -19,21 +19,6 @@
package appeng.container.slot;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.CraftingManager;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.items.IItemHandler;
import appeng.api.AEApi;
import appeng.api.config.Actionable;
import appeng.api.networking.energy.IEnergySource;
@@ -55,276 +40,243 @@ import appeng.util.inv.AdaptorItemHandler;
import appeng.util.inv.WrapperCursorItemHandler;
import appeng.util.inv.WrapperInvItemHandler;
import appeng.util.item.AEItemStack;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.CraftingManager;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.items.IItemHandler;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class SlotCraftingTerm extends AppEngCraftingSlot
{
public class SlotCraftingTerm extends AppEngCraftingSlot {
private final IItemHandler craftInv;
private final IItemHandler pattern;
private final IItemHandler craftInv;
private final IItemHandler pattern;
private final IActionSource mySrc;
private final IEnergySource energySrc;
private final IStorageMonitorable storage;
private final IContainerCraftingPacket container;
private final IActionSource mySrc;
private final IEnergySource energySrc;
private final IStorageMonitorable storage;
private final IContainerCraftingPacket container;
public SlotCraftingTerm( final EntityPlayer player, final IActionSource mySrc, final IEnergySource energySrc, final IStorageMonitorable storage, final IItemHandler cMatrix, final IItemHandler secondMatrix, final IItemHandler output, final int x, final int y, final IContainerCraftingPacket ccp )
{
super( player, cMatrix, output, 0, x, y );
this.energySrc = energySrc;
this.storage = storage;
this.mySrc = mySrc;
this.pattern = cMatrix;
this.craftInv = secondMatrix;
this.container = ccp;
}
public SlotCraftingTerm(final EntityPlayer player, final IActionSource mySrc, final IEnergySource energySrc, final IStorageMonitorable storage, final IItemHandler cMatrix, final IItemHandler secondMatrix, final IItemHandler output, final int x, final int y, final IContainerCraftingPacket ccp) {
super(player, cMatrix, output, 0, x, y);
this.energySrc = energySrc;
this.storage = storage;
this.mySrc = mySrc;
this.pattern = cMatrix;
this.craftInv = secondMatrix;
this.container = ccp;
}
public IItemHandler getCraftingMatrix()
{
return this.craftInv;
}
public IItemHandler getCraftingMatrix() {
return this.craftInv;
}
@Override
public boolean canTakeStack( final EntityPlayer par1EntityPlayer )
{
return false;
}
@Override
public boolean canTakeStack(final EntityPlayer par1EntityPlayer) {
return false;
}
@Override
public ItemStack onTake( final EntityPlayer p, final ItemStack is )
{
return is;
}
@Override
public ItemStack onTake(final EntityPlayer p, final ItemStack is) {
return is;
}
public void doClick( final InventoryAction action, final EntityPlayer who )
{
if( this.getStack().isEmpty() )
{
return;
}
if( Platform.isClient() )
{
return;
}
public void doClick(final InventoryAction action, final EntityPlayer who) {
if (this.getStack().isEmpty()) {
return;
}
if (Platform.isClient()) {
return;
}
final IMEMonitor<IAEItemStack> inv = this.storage.getInventory( AEApi.instance().storage().getStorageChannel( IItemStorageChannel.class ) );
final int howManyPerCraft = this.getStack().getCount();
int maxTimesToCraft = 0;
final IMEMonitor<IAEItemStack> inv = this.storage.getInventory(AEApi.instance().storage().getStorageChannel(IItemStorageChannel.class));
final int howManyPerCraft = this.getStack().getCount();
int maxTimesToCraft = 0;
InventoryAdaptor ia = null;
if( action == InventoryAction.CRAFT_SHIFT ) // craft into player inventory...
{
ia = InventoryAdaptor.getAdaptor( who );
maxTimesToCraft = (int) Math.floor( (double) this.getStack().getMaxStackSize() / (double) howManyPerCraft );
}
else if( action == InventoryAction.CRAFT_STACK ) // craft into hand, full stack
{
ia = new AdaptorItemHandler( new WrapperCursorItemHandler( who.inventory ) );
maxTimesToCraft = (int) Math.floor( (double) this.getStack().getMaxStackSize() / (double) howManyPerCraft );
}
else
// pick up what was crafted...
{
ia = new AdaptorItemHandler( new WrapperCursorItemHandler( who.inventory ) );
maxTimesToCraft = 1;
}
InventoryAdaptor ia = null;
if (action == InventoryAction.CRAFT_SHIFT) // craft into player inventory...
{
ia = InventoryAdaptor.getAdaptor(who);
maxTimesToCraft = (int) Math.floor((double) this.getStack().getMaxStackSize() / (double) howManyPerCraft);
} else if (action == InventoryAction.CRAFT_STACK) // craft into hand, full stack
{
ia = new AdaptorItemHandler(new WrapperCursorItemHandler(who.inventory));
maxTimesToCraft = (int) Math.floor((double) this.getStack().getMaxStackSize() / (double) howManyPerCraft);
} else
// pick up what was crafted...
{
ia = new AdaptorItemHandler(new WrapperCursorItemHandler(who.inventory));
maxTimesToCraft = 1;
}
maxTimesToCraft = this.capCraftingAttempts( maxTimesToCraft );
maxTimesToCraft = this.capCraftingAttempts(maxTimesToCraft);
if( ia == null )
{
return;
}
if (ia == null) {
return;
}
final ItemStack rs = this.getStack().copy();
if( rs.isEmpty() )
{
return;
}
final ItemStack rs = this.getStack().copy();
if (rs.isEmpty()) {
return;
}
for( int x = 0; x < maxTimesToCraft; x++ )
{
if( ia.simulateAdd( rs ).isEmpty() )
{
final IItemList<IAEItemStack> all = inv.getStorageList();
final ItemStack extra = ia.addItems( this.craftItem( who, rs, inv, all ) );
if( !extra.isEmpty() )
{
final List<ItemStack> drops = new ArrayList<>();
drops.add( extra );
Platform.spawnDrops( who.world, new BlockPos( (int) who.posX, (int) who.posY, (int) who.posZ ), drops );
return;
}
}
}
}
for (int x = 0; x < maxTimesToCraft; x++) {
if (ia.simulateAdd(rs).isEmpty()) {
final IItemList<IAEItemStack> all = inv.getStorageList();
final ItemStack extra = ia.addItems(this.craftItem(who, rs, inv, all));
if (!extra.isEmpty()) {
final List<ItemStack> drops = new ArrayList<>();
drops.add(extra);
Platform.spawnDrops(who.world, new BlockPos((int) who.posX, (int) who.posY, (int) who.posZ), drops);
return;
}
}
}
}
// TODO: This is really hacky and NEEDS to be solved with a full container/gui refactoring.
protected IRecipe findRecipe( InventoryCrafting ic, World world )
{
if( this.container instanceof ContainerCraftingTerm )
{
final ContainerCraftingTerm containerTerminal = (ContainerCraftingTerm) this.container;
final IRecipe recipe = containerTerminal.getCurrentRecipe();
// TODO: This is really hacky and NEEDS to be solved with a full container/gui refactoring.
protected IRecipe findRecipe(InventoryCrafting ic, World world) {
if (this.container instanceof ContainerCraftingTerm) {
final ContainerCraftingTerm containerTerminal = (ContainerCraftingTerm) this.container;
final IRecipe recipe = containerTerminal.getCurrentRecipe();
if( recipe != null && recipe.matches( ic, world ) )
{
return containerTerminal.getCurrentRecipe();
}
}
if (recipe != null && recipe.matches(ic, world)) {
return containerTerminal.getCurrentRecipe();
}
}
return CraftingManager.findMatchingRecipe( ic, world );
}
return CraftingManager.findMatchingRecipe(ic, world);
}
// TODO: This is really hacky and NEEDS to be solved with a full container/gui refactoring.
@Override
protected NonNullList<ItemStack> getRemainingItems( InventoryCrafting ic, World world )
{
if( this.container instanceof ContainerCraftingTerm )
{
final ContainerCraftingTerm containerTerminal = (ContainerCraftingTerm) this.container;
final IRecipe recipe = containerTerminal.getCurrentRecipe();
// TODO: This is really hacky and NEEDS to be solved with a full container/gui refactoring.
@Override
protected NonNullList<ItemStack> getRemainingItems(InventoryCrafting ic, World world) {
if (this.container instanceof ContainerCraftingTerm) {
final ContainerCraftingTerm containerTerminal = (ContainerCraftingTerm) this.container;
final IRecipe recipe = containerTerminal.getCurrentRecipe();
if( recipe != null && recipe.matches( ic, world ) )
{
return containerTerminal.getCurrentRecipe().getRemainingItems( ic );
}
}
if (recipe != null && recipe.matches(ic, world)) {
return containerTerminal.getCurrentRecipe().getRemainingItems(ic);
}
}
return CraftingManager.getRemainingItems( ic, world );
}
return CraftingManager.getRemainingItems(ic, world);
}
private int capCraftingAttempts( final int maxTimesToCraft )
{
return maxTimesToCraft;
}
private int capCraftingAttempts(final int maxTimesToCraft) {
return maxTimesToCraft;
}
private ItemStack craftItem( final EntityPlayer p, final ItemStack request, final IMEMonitor<IAEItemStack> inv, final IItemList all )
{
// update crafting matrix...
ItemStack is = this.getStack();
private ItemStack craftItem(final EntityPlayer p, final ItemStack request, final IMEMonitor<IAEItemStack> inv, final IItemList all) {
// update crafting matrix...
ItemStack is = this.getStack();
if( !is.isEmpty() && ItemStack.areItemsEqual( request, is ) )
{
final ItemStack[] set = new ItemStack[this.getPattern().getSlots()];
// Safeguard for empty slots in the inventory for now
Arrays.fill( set, ItemStack.EMPTY );
if (!is.isEmpty() && ItemStack.areItemsEqual(request, is)) {
final ItemStack[] set = new ItemStack[this.getPattern().getSlots()];
// Safeguard for empty slots in the inventory for now
Arrays.fill(set, ItemStack.EMPTY);
// add one of each item to the items on the board...
if( Platform.isServer() )
{
final InventoryCrafting ic = new InventoryCrafting( new ContainerNull(), 3, 3 );
for( int x = 0; x < 9; x++ )
{
ic.setInventorySlotContents( x, this.getPattern().getStackInSlot( x ) );
}
// add one of each item to the items on the board...
if (Platform.isServer()) {
final InventoryCrafting ic = new InventoryCrafting(new ContainerNull(), 3, 3);
for (int x = 0; x < 9; x++) {
ic.setInventorySlotContents(x, this.getPattern().getStackInSlot(x));
}
final IRecipe r = this.findRecipe( ic, p.world );
final IRecipe r = this.findRecipe(ic, p.world);
if( r == null )
{
final Item target = request.getItem();
if( target.isDamageable() && target.isRepairable() )
{
boolean isBad = false;
for( int x = 0; x < ic.getSizeInventory(); x++ )
{
final ItemStack pis = ic.getStackInSlot( x );
if( pis.isEmpty() )
{
continue;
}
if( pis.getItem() != target )
{
isBad = true;
}
}
if( !isBad )
{
super.onTake( p, is );
// actually necessary to cleanup this case...
p.openContainer.onCraftMatrixChanged( new WrapperInvItemHandler( this.craftInv ) );
return request;
}
}
return ItemStack.EMPTY;
}
if (r == null) {
final Item target = request.getItem();
if (target.isDamageable() && target.isRepairable()) {
boolean isBad = false;
for (int x = 0; x < ic.getSizeInventory(); x++) {
final ItemStack pis = ic.getStackInSlot(x);
if (pis.isEmpty()) {
continue;
}
if (pis.getItem() != target) {
isBad = true;
}
}
if (!isBad) {
super.onTake(p, is);
// actually necessary to cleanup this case...
p.openContainer.onCraftMatrixChanged(new WrapperInvItemHandler(this.craftInv));
return request;
}
}
return ItemStack.EMPTY;
}
is = r.getCraftingResult( ic );
is = r.getCraftingResult(ic);
if( inv != null )
{
for( int x = 0; x < this.getPattern().getSlots(); x++ )
{
if( !this.getPattern().getStackInSlot( x ).isEmpty() )
{
set[x] = Platform.extractItemsByRecipe( this.energySrc, this.mySrc, inv, p.world, r, is, ic, this.getPattern().getStackInSlot( x ),
x, all, Actionable.MODULATE, ItemViewCell.createFilter( this.container.getViewCells() ) );
ic.setInventorySlotContents( x, set[x] );
}
}
}
}
if (inv != null) {
for (int x = 0; x < this.getPattern().getSlots(); x++) {
if (!this.getPattern().getStackInSlot(x).isEmpty()) {
set[x] = Platform.extractItemsByRecipe(this.energySrc, this.mySrc, inv, p.world, r, is, ic, this.getPattern().getStackInSlot(x),
x, all, Actionable.MODULATE, ItemViewCell.createFilter(this.container.getViewCells()));
ic.setInventorySlotContents(x, set[x]);
}
}
}
}
if( this.preCraft( p, inv, set, is ) )
{
this.makeItem( p, is );
if (this.preCraft(p, inv, set, is)) {
this.makeItem(p, is);
this.postCraft( p, inv, set, is );
}
this.postCraft(p, inv, set, is);
}
p.openContainer.onCraftMatrixChanged( new WrapperInvItemHandler( this.craftInv ) );
p.openContainer.onCraftMatrixChanged(new WrapperInvItemHandler(this.craftInv));
return is;
}
return is;
}
return ItemStack.EMPTY;
}
return ItemStack.EMPTY;
}
private boolean preCraft( final EntityPlayer p, final IMEMonitor<IAEItemStack> inv, final ItemStack[] set, final ItemStack result )
{
return true;
}
private boolean preCraft(final EntityPlayer p, final IMEMonitor<IAEItemStack> inv, final ItemStack[] set, final ItemStack result) {
return true;
}
private void makeItem( final EntityPlayer p, final ItemStack is )
{
super.onTake( p, is );
}
private void makeItem(final EntityPlayer p, final ItemStack is) {
super.onTake(p, is);
}
private void postCraft( final EntityPlayer p, final IMEMonitor<IAEItemStack> inv, final ItemStack[] set, final ItemStack result )
{
final List<ItemStack> drops = new ArrayList<>();
private void postCraft(final EntityPlayer p, final IMEMonitor<IAEItemStack> inv, final ItemStack[] set, final ItemStack result) {
final List<ItemStack> drops = new ArrayList<>();
// add one of each item to the items on the board...
if( Platform.isServer() )
{
// set new items onto the crafting table...
for( int x = 0; x < this.craftInv.getSlots(); x++ )
{
if( this.craftInv.getStackInSlot( x ).isEmpty() )
{
ItemHandlerUtil.setStackInSlot( this.craftInv, x, set[x] );
}
else if( !set[x].isEmpty() )
{
// eek! put it back!
final IAEItemStack fail = inv.injectItems( AEItemStack.fromItemStack( set[x] ), Actionable.MODULATE, this.mySrc );
if( fail != null )
{
drops.add( fail.createItemStack() );
}
}
}
}
// add one of each item to the items on the board...
if (Platform.isServer()) {
// set new items onto the crafting table...
for (int x = 0; x < this.craftInv.getSlots(); x++) {
if (this.craftInv.getStackInSlot(x).isEmpty()) {
ItemHandlerUtil.setStackInSlot(this.craftInv, x, set[x]);
} else if (!set[x].isEmpty()) {
// eek! put it back!
final IAEItemStack fail = inv.injectItems(AEItemStack.fromItemStack(set[x]), Actionable.MODULATE, this.mySrc);
if (fail != null) {
drops.add(fail.createItemStack());
}
}
}
}
if( drops.size() > 0 )
{
Platform.spawnDrops( p.world, new BlockPos( (int) p.posX, (int) p.posY, (int) p.posZ ), drops );
}
}
if (drops.size() > 0) {
Platform.spawnDrops(p.world, new BlockPos((int) p.posX, (int) p.posY, (int) p.posZ), drops);
}
}
IItemHandler getPattern()
{
return this.pattern;
}
IItemHandler getPattern() {
return this.pattern;
}
}