add fluid cell housing

This commit is contained in:
GlodBlock committed 2023-02-12 19:04:04 +08:00
1 parent 7910578318
commit 96c7032523
10 files changed
+163 -29

No files matched your search

@@ -52,6 +52,10 @@ public class ItemBasicFluidStorageCell extends FCBaseItemCell
return component.stack(1);
}
public ItemStack getHousing() {
return component.getHousing(1);
}
@Override
public String getItemStackDisplayName(ItemStack stack) {
return StatCollector.translateToLocalFormatted(
@@ -114,12 +118,9 @@ public class ItemBasicFluidStorageCell extends FCBaseItemCell
}
// drop empty storage cell case
for (final ItemStack storageCellStack : AEApi.instance().definitions().materials()
.emptyStorageCell().maybeStack(1).asSet()) {
final ItemStack extraA = ia.addItems(storageCellStack);
if (extraA != null) {
player.dropPlayerItemWithRandomChoice(extraA, false);
}
final ItemStack extraA = ia.addItems(this.component.getHousing(1));
if (extraA != null) {
player.dropPlayerItemWithRandomChoice(this.component.getHousing(1), false);
}
if (player.inventoryContainer != null) {
player.inventoryContainer.detectAndSendChanges();
@@ -140,9 +141,8 @@ public class ItemBasicFluidStorageCell extends FCBaseItemCell
@Override
public ItemStack getContainerItem(final ItemStack itemStack) {
for (final ItemStack stack : AEApi.instance().definitions().materials().emptyStorageCell().maybeStack(1)
.asSet()) {
return stack;
if (this.getHousing() != null) {
return this.getHousing();
}
throw new MissingDefinition("Tried to use empty storage cells while basic storage cells are defined.");
}
@@ -34,7 +34,7 @@ public class ItemBasicFluidStoragePart extends FCBaseItem {
@Override
@SideOnly(Side.CLIENT)
@SuppressWarnings("unchecked")
@SuppressWarnings({ "unchecked", "rawtypes" })
public void getSubItems(Item item, CreativeTabs tab, List list) {
for (int i = 0; i < types; ++i) {
list.add(new ItemStack(item, 1, i));
@@ -0,0 +1,70 @@
package com.glodblock.github.common.item;
import java.util.HashMap;
import java.util.List;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.util.StatCollector;
import com.glodblock.github.FluidCraft;
import com.glodblock.github.common.Config;
import com.glodblock.github.common.tabs.FluidCraftingTabs;
import com.glodblock.github.util.NameConst;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class ItemFluidStorageHousing extends FCBaseItem {
public static final int types = 2;
private static final HashMap<Integer, IIcon> icon = new HashMap<>();
public ItemFluidStorageHousing() {
super();
setHasSubtypes(true);
setUnlocalizedName(NameConst.ITEM_FLUID_STORAGE_HOUSING);
}
@Override
@SideOnly(Side.CLIENT)
@SuppressWarnings({ "unchecked", "rawtypes" })
public void getSubItems(Item item, CreativeTabs tab, List list) {
for (int i = 0; i < types; ++i) {
list.add(new ItemStack(item, 1, i));
}
}
@Override
public String getItemStackDisplayName(ItemStack stack) {
int meta = stack.getItemDamage();
return StatCollector.translateToLocalFormatted("item.fluid_storage_housing." + meta + ".name");
}
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister iconRegister) {
for (int i = 0; i < types; i++) {
icon.put(i, iconRegister.registerIcon(NameConst.RES_KEY + NameConst.ITEM_FLUID_STORAGE_HOUSING + "." + i));
}
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIconFromDamage(int meta) {
return icon.get(meta);
}
@Override
public ItemFluidStorageHousing register() {
if (!Config.fluidCells) return null;
GameRegistry.registerItem(this, NameConst.ITEM_FLUID_STORAGE_HOUSING, FluidCraft.MODID);
setCreativeTab(FluidCraftingTabs.INSTANCE);
return this;
}
}
@@ -8,6 +8,8 @@ import net.minecraft.util.EnumChatFormatting;
import appeng.core.features.AEFeature;
import com.glodblock.github.loader.ItemAndBlockHolder;
public enum CellType {
Cell1kPart(0, AEFeature.StorageCells),
@@ -22,6 +24,7 @@ public enum CellType {
private final EnumSet<AEFeature> features;
private int damageValue;
private Item itemInstance;
private int housingValue;
CellType(final int metaValue, final AEFeature part) {
this.setDamageValue(metaValue);
@@ -36,6 +39,14 @@ public enum CellType {
this.damageValue = damageValue;
}
public int getHousingValue() {
return this.housingValue;
}
public void setHousingValue(final int housingValue) {
this.housingValue = housingValue;
}
EnumSet<AEFeature> getFeature() {
return this.features;
}
@@ -44,6 +55,10 @@ public enum CellType {
return new ItemStack(this.getItemInstance(), size, this.getDamageValue());
}
public ItemStack getHousing(final int size) {
return new ItemStack(ItemAndBlockHolder.CELL_HOUSING, size, this.getHousingValue());
}
public Item getItemInstance() {
return this.itemInstance;
}