Skip to content

Commit

Permalink
large crafting storage block (AppliedEnergistics#236)
Browse files Browse the repository at this point in the history
  • Loading branch information
GlodBlock authored Jan 26, 2023
1 parent 4b7d593 commit 6784bfa
Show file tree
Hide file tree
Showing 18 changed files with 170 additions and 23 deletions.
8 changes: 8 additions & 0 deletions src/main/java/appeng/api/definitions/IBlocks.java
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,14 @@ public interface IBlocks {

ITileDefinition craftingStorage64k();

ITileDefinition craftingStorage256k();

ITileDefinition craftingStorage1024k();

ITileDefinition craftingStorage4096k();

ITileDefinition craftingStorage16384k();

ITileDefinition craftingMonitor();

ITileDefinition molecularAssembler();
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package appeng.block.crafting;

import appeng.client.texture.ExtraBlockTextures;
import appeng.tile.crafting.TileCraftingStorageTile;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;

public class BlockAdvancedCraftingStorage extends BlockCraftingStorage {

public BlockAdvancedCraftingStorage() {
this.setTileEntity(TileCraftingStorageTile.class);
}

@Override
public IIcon getIcon(final int direction, final int metadata) {
switch (metadata & (~4)) {
default:
return super.getIcon(0, -1);
case 0:
return ExtraBlockTextures.BlockCraftingStorage256k.getIcon();
case 1:
return ExtraBlockTextures.BlockCraftingStorage1024k.getIcon();
case 2:
return ExtraBlockTextures.BlockCraftingStorage4096k.getIcon();
case 3:
return ExtraBlockTextures.BlockCraftingStorage16384k.getIcon();

case FLAG_FORMED:
return ExtraBlockTextures.BlockCraftingStorage256kFit.getIcon();
case 1 | FLAG_FORMED:
return ExtraBlockTextures.BlockCraftingStorage1024kFit.getIcon();
case 2 | FLAG_FORMED:
return ExtraBlockTextures.BlockCraftingStorage4096kFit.getIcon();
case 3 | FLAG_FORMED:
return ExtraBlockTextures.BlockCraftingStorage16384kFit.getIcon();
}
}

@Override
public String getUnlocalizedName(final ItemStack is) {
switch (is.getItemDamage()) {
case 0:
return "tile.appliedenergistics2.BlockCraftingStorage256k";
case 1:
return "tile.appliedenergistics2.BlockCraftingStorage1024k";
case 2:
return "tile.appliedenergistics2.BlockCraftingStorage4096k";
case 3:
return "tile.appliedenergistics2.BlockCraftingStorage16384k";
default:
return this.getItemUnlocalizedName(is);
}
}
}
21 changes: 9 additions & 12 deletions src/main/java/appeng/block/crafting/BlockCraftingStorage.java
Original file line number Diff line number Diff line change
Expand Up @@ -74,18 +74,15 @@ public void getCheckedSubBlocks(final Item item, final CreativeTabs tabs, final

@Override
public String getUnlocalizedName(final ItemStack is) {
if (is.getItemDamage() == 1) {
return "tile.appliedenergistics2.BlockCraftingStorage4k";
}

if (is.getItemDamage() == 2) {
return "tile.appliedenergistics2.BlockCraftingStorage16k";
}

if (is.getItemDamage() == 3) {
return "tile.appliedenergistics2.BlockCraftingStorage64k";
switch (is.getItemDamage()) {
case 1:
return "tile.appliedenergistics2.BlockCraftingStorage4k";
case 2:
return "tile.appliedenergistics2.BlockCraftingStorage16k";
case 3:
return "tile.appliedenergistics2.BlockCraftingStorage64k";
default:
return this.getItemUnlocalizedName(is);
}

return this.getItemUnlocalizedName(is);
}
}
3 changes: 1 addition & 2 deletions src/main/java/appeng/block/crafting/BlockCraftingUnit.java
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public BlockCraftingUnit() {
@Override
@SideOnly(Side.CLIENT)
protected RenderBlockCraftingCPU<? extends BlockCraftingUnit, ? extends TileCraftingTile> getRenderer() {
return new RenderBlockCraftingCPU<BlockCraftingUnit, TileCraftingTile>();
return new RenderBlockCraftingCPU<>();
}

@Override
Expand Down Expand Up @@ -138,7 +138,6 @@ public String getUnlocalizedName(final ItemStack is) {
} else if (is.getItemDamage() == 3) {
return "tile.appliedenergistics2.BlockCraftingAccelerator16x";
}

return this.getItemUnlocalizedName(is);
}

Expand Down
8 changes: 8 additions & 0 deletions src/main/java/appeng/client/texture/ExtraBlockTextures.java
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,10 @@ public enum ExtraBlockTextures {
BlockCraftingStorage4k("BlockCraftingStorage4k"),
BlockCraftingStorage16k("BlockCraftingStorage16k"),
BlockCraftingStorage64k("BlockCraftingStorage64k"),
BlockCraftingStorage256k("BlockCraftingStorage256k"),
BlockCraftingStorage1024k("BlockCraftingStorage1024k"),
BlockCraftingStorage4096k("BlockCraftingStorage4096k"),
BlockCraftingStorage16384k("BlockCraftingStorage16384k"),

BlockCraftingAcceleratorFit("BlockCraftingAcceleratorFit"),
BlockCraftingAccelerator4xFit("BlockCraftingAccelerator4xFit"),
Expand All @@ -129,6 +133,10 @@ public enum ExtraBlockTextures {
BlockCraftingStorage4kFit("BlockCraftingStorage4kFit"),
BlockCraftingStorage16kFit("BlockCraftingStorage16kFit"),
BlockCraftingStorage64kFit("BlockCraftingStorage64kFit"),
BlockCraftingStorage256kFit("BlockCraftingStorage256kFit"),
BlockCraftingStorage1024kFit("BlockCraftingStorage1024kFit"),
BlockCraftingStorage4096kFit("BlockCraftingStorage4096kFit"),
BlockCraftingStorage16384kFit("BlockCraftingStorage16384kFit"),

BlockCraftingUnitRing("BlockCraftingUnitRing"),
BlockCraftingUnitRingLongRotated("BlockCraftingUnitRingLongRotated"),
Expand Down
33 changes: 29 additions & 4 deletions src/main/java/appeng/core/api/definitions/ApiBlocks.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,7 @@
import appeng.api.definitions.ITileDefinition;
import appeng.api.util.IOrientableBlock;
import appeng.block.AEBaseSlabBlock;
import appeng.block.crafting.BlockCraftingMonitor;
import appeng.block.crafting.BlockCraftingStorage;
import appeng.block.crafting.BlockCraftingUnit;
import appeng.block.crafting.BlockMolecularAssembler;
import appeng.block.crafting.*;
import appeng.block.grindstone.BlockCrank;
import appeng.block.grindstone.BlockGrinder;
import appeng.block.misc.*;
Expand Down Expand Up @@ -102,6 +99,10 @@ public final class ApiBlocks implements IBlocks {
private final ITileDefinition craftingStorage4k;
private final ITileDefinition craftingStorage16k;
private final ITileDefinition craftingStorage64k;
private final ITileDefinition craftingStorage256k;
private final ITileDefinition craftingStorage1024k;
private final ITileDefinition craftingStorage4096k;
private final ITileDefinition craftingStorage16384k;
private final ITileDefinition craftingMonitor;
private final ITileDefinition molecularAssembler;
private final ITileDefinition lightDetector;
Expand Down Expand Up @@ -188,6 +189,10 @@ public ApiBlocks(final DefinitionConstructor constructor) {
this.craftingStorage4k = new WrappedDamageItemDefinition(this.craftingStorage1k, 1);
this.craftingStorage16k = new WrappedDamageItemDefinition(this.craftingStorage1k, 2);
this.craftingStorage64k = new WrappedDamageItemDefinition(this.craftingStorage1k, 3);
this.craftingStorage256k = constructor.registerTileDefinition(new BlockAdvancedCraftingStorage());
this.craftingStorage1024k = new WrappedDamageItemDefinition(this.craftingStorage256k, 1);
this.craftingStorage4096k = new WrappedDamageItemDefinition(this.craftingStorage256k, 2);
this.craftingStorage16384k = new WrappedDamageItemDefinition(this.craftingStorage256k, 3);
this.craftingMonitor = constructor.registerTileDefinition(new BlockCraftingMonitor());
this.molecularAssembler = constructor.registerTileDefinition(new BlockMolecularAssembler());
this.lightDetector = constructor.registerTileDefinition(lightDetector);
Expand Down Expand Up @@ -540,6 +545,26 @@ public ITileDefinition craftingStorage64k() {
return this.craftingStorage64k;
}

@Override
public ITileDefinition craftingStorage256k() {
return this.craftingStorage256k;
}

@Override
public ITileDefinition craftingStorage1024k() {
return this.craftingStorage1024k;
}

@Override
public ITileDefinition craftingStorage4096k() {
return this.craftingStorage4096k;
}

@Override
public ITileDefinition craftingStorage16384k() {
return this.craftingStorage16384k;
}

@Override
public ITileDefinition craftingMonitor() {
return this.craftingMonitor;
Expand Down
6 changes: 5 additions & 1 deletion src/main/java/appeng/recipes/game/DisassembleRecipe.java
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ public DisassembleRecipe() {
final IMaterials mats = definitions.materials();

this.cellMappings = new HashMap<>(8);
this.nonCellMappings = new HashMap<>(5);
this.nonCellMappings = new HashMap<>(9);

this.cellMappings.put(items.cell1k(), mats.cell1kPart());
this.cellMappings.put(items.cell4k(), mats.cell4kPart());
Expand All @@ -64,6 +64,10 @@ public DisassembleRecipe() {
this.nonCellMappings.put(blocks.craftingStorage4k(), mats.cell4kPart());
this.nonCellMappings.put(blocks.craftingStorage16k(), mats.cell16kPart());
this.nonCellMappings.put(blocks.craftingStorage64k(), mats.cell64kPart());
this.nonCellMappings.put(blocks.craftingStorage256k(), mats.cell256kPart());
this.nonCellMappings.put(blocks.craftingStorage1024k(), mats.cell1024kPart());
this.nonCellMappings.put(blocks.craftingStorage4096k(), mats.cell4096kPart());
this.nonCellMappings.put(blocks.craftingStorage16384k(), mats.cell16384kPart());
}

@Override
Expand Down
36 changes: 32 additions & 4 deletions src/main/java/appeng/tile/crafting/TileCraftingStorageTile.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@

import appeng.api.AEApi;
import appeng.api.definitions.IBlocks;
import appeng.block.crafting.BlockAdvancedCraftingStorage;
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;

public class TileCraftingStorageTile extends TileCraftingTile {
Expand Down Expand Up @@ -49,6 +51,30 @@ protected ItemStack getItemFromTile(final Object obj) {
return stack;
}
break;
case 256:
for (final ItemStack stack :
blocks.craftingStorage256k().maybeStack(1).asSet()) {
return stack;
}
break;
case 1024:
for (final ItemStack stack :
blocks.craftingStorage1024k().maybeStack(1).asSet()) {
return stack;
}
break;
case 4096:
for (final ItemStack stack :
blocks.craftingStorage4096k().maybeStack(1).asSet()) {
return stack;
}
break;
case 16384:
for (final ItemStack stack :
blocks.craftingStorage16384k().maybeStack(1).asSet()) {
return stack;
}
break;
}

return super.getItemFromTile(obj);
Expand All @@ -69,17 +95,19 @@ public int getStorageBytes() {
if (this.worldObj == null || this.notLoaded()) {
return 0;
}
Block block = this.worldObj.getBlock(this.xCoord, this.yCoord, this.zCoord);
int blockMultiplier = block instanceof BlockAdvancedCraftingStorage ? 256 : 1;

switch (this.worldObj.getBlockMetadata(this.xCoord, this.yCoord, this.zCoord) & 3) {
default:
case 0:
return 1024;
return KILO_SCALAR * blockMultiplier;
case 1:
return 4 * 1024;
return 4 * KILO_SCALAR * blockMultiplier;
case 2:
return 16 * 1024;
return 16 * KILO_SCALAR * blockMultiplier;
case 3:
return 64 * 1024;
return 64 * KILO_SCALAR * blockMultiplier;
}
}
}
4 changes: 4 additions & 0 deletions src/main/resources/assets/appliedenergistics2/lang/en_US.lang
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,10 @@ tile.appliedenergistics2.BlockCraftingStorage.name=1k Crafting Storage
tile.appliedenergistics2.BlockCraftingStorage4k.name=4k Crafting Storage
tile.appliedenergistics2.BlockCraftingStorage16k.name=16k Crafting Storage
tile.appliedenergistics2.BlockCraftingStorage64k.name=64k Crafting Storage
tile.appliedenergistics2.BlockCraftingStorage256k.name=256k Crafting Storage
tile.appliedenergistics2.BlockCraftingStorage1024k.name=1024k Crafting Storage
tile.appliedenergistics2.BlockCraftingStorage4096k.name=4096k Crafting Storage
tile.appliedenergistics2.BlockCraftingStorage16384k.name=16384k Crafting Storage
tile.appliedenergistics2.BlockCraftingAccelerator.name=Crafting Co-Processing Unit
tile.appliedenergistics2.BlockCraftingAccelerator4x.name=Quad Core Co-Processing Unit
tile.appliedenergistics2.BlockCraftingAccelerator16x.name=16 Core Co-Processing Unit
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,23 @@ shapeless=
ae2:BlockCraftingUnit:0
ae2:ItemMaterial.Cell64kPart
-> ae2:BlockCraftingStorage:3

shapeless=
ae2:BlockCraftingUnit:0
ae2:ItemMaterial.Cell256kPart
-> ae2:BlockAdvancedCraftingStorage:0

shapeless=
ae2:BlockCraftingUnit:0
ae2:ItemMaterial.Cell1024kPart
-> ae2:BlockAdvancedCraftingStorage:1

shapeless=
ae2:BlockCraftingUnit:0
ae2:ItemMaterial.Cell4096kPart
-> ae2:BlockAdvancedCraftingStorage:2

shapeless=
ae2:BlockCraftingUnit:0
ae2:ItemMaterial.Cell16384kPart
-> ae2:BlockAdvancedCraftingStorage:3
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 6784bfa

Please sign in to comment.