large crafting storage block (#236)

This commit is contained in:
Yang Xizhi authored and GitHub committed 2023-01-26 11:45:34 +01:00
1 parent 4b7d593649
commit 6784bfa5aa
18 files changed
+170 -23

No files matched your search

@@ -173,6 +173,14 @@ public interface IBlocks {
ITileDefinition craftingStorage64k();
ITileDefinition craftingStorage256k();
ITileDefinition craftingStorage1024k();
ITileDefinition craftingStorage4096k();
ITileDefinition craftingStorage16384k();
ITileDefinition craftingMonitor();
ITileDefinition molecularAssembler();
@@ -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);
}
}
}
@@ -74,18 +74,15 @@ public class BlockCraftingStorage extends BlockCraftingUnit {
@Override
public String getUnlocalizedName(final ItemStack is) {
if (is.getItemDamage() == 1) {
return "tile.appliedenergistics2.BlockCraftingStorage4k";
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);
}
if (is.getItemDamage() == 2) {
return "tile.appliedenergistics2.BlockCraftingStorage16k";
}
if (is.getItemDamage() == 3) {
return "tile.appliedenergistics2.BlockCraftingStorage64k";
}
return this.getItemUnlocalizedName(is);
}
}
@@ -53,7 +53,7 @@ public class BlockCraftingUnit extends AEBaseTileBlock {
@Override
@SideOnly(Side.CLIENT)
protected RenderBlockCraftingCPU<? extends BlockCraftingUnit, ? extends TileCraftingTile> getRenderer() {
return new RenderBlockCraftingCPU<BlockCraftingUnit, TileCraftingTile>();
return new RenderBlockCraftingCPU<>();
}
@Override
@@ -138,7 +138,6 @@ public class BlockCraftingUnit extends AEBaseTileBlock {
} else if (is.getItemDamage() == 3) {
return "tile.appliedenergistics2.BlockCraftingAccelerator16x";
}
return this.getItemUnlocalizedName(is);
}
@@ -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"),
@@ -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"),
@@ -23,10 +23,7 @@ import appeng.api.definitions.IBlocks;
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.*;
@@ -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;
@@ -188,6 +189,10 @@ public final class ApiBlocks implements IBlocks {
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);
@@ -540,6 +545,26 @@ public final class ApiBlocks implements IBlocks {
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;
@@ -48,7 +48,7 @@ public final class DisassembleRecipe implements IRecipe {
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());
@@ -64,6 +64,10 @@ public final class DisassembleRecipe implements IRecipe {
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
@@ -20,6 +20,8 @@ package appeng.tile.crafting;
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 {
@@ -49,6 +51,30 @@ public class TileCraftingStorageTile extends TileCraftingTile {
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);
@@ -69,17 +95,19 @@ public class TileCraftingStorageTile extends TileCraftingTile {
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;
}
}
}
@@ -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
@@ -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
Binary file not shown.

After

Width:  |  Height:  |  Size: 364 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 313 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 394 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 301 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 358 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 312 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 341 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 293 B