From 1b820de08a05070909a267e17f033fcf58ac8710 Mon Sep 17 00:00:00 2001 From: NotAPenguin Date: Mon, 2 Sep 2024 23:17:17 +0200 Subject: The Great Renaming (#3014) * move kekztech to a single root dir * move detrav to a single root dir * move gtnh-lanthanides to a single root dir * move tectech and delete some gross reflection in gt++ * remove more reflection inside gt5u * delete more reflection in gt++ * fix imports * move bartworks and bwcrossmod * fix proxies * move galactigreg and ggfab * move gtneioreplugin * try to fix gt++ bee loader * apply the rename rules to BW * apply rename rules to bwcrossmod * apply rename rules to detrav scanner mod * apply rename rules to galacticgreg * apply rename rules to ggfab * apply rename rules to goodgenerator * apply rename rules to gtnh-lanthanides * apply rename rules to gt++ * apply rename rules to kekztech * apply rename rules to kubatech * apply rename rules to tectech * apply rename rules to gt apply the rename rules to gt * fix tt import * fix mui hopefully * fix coremod except intergalactic * rename assline recipe class * fix a class name i stumbled on * rename StructureUtility to GTStructureUtility to prevent conflict with structurelib * temporary rename of GTTooltipDataCache to old name * fix gt client/server proxy names --- .../gregtech/common/items/GT_VolumetricFlask.java | 360 --------------------- 1 file changed, 360 deletions(-) delete mode 100644 src/main/java/gregtech/common/items/GT_VolumetricFlask.java (limited to 'src/main/java/gregtech/common/items/GT_VolumetricFlask.java') diff --git a/src/main/java/gregtech/common/items/GT_VolumetricFlask.java b/src/main/java/gregtech/common/items/GT_VolumetricFlask.java deleted file mode 100644 index 5578214e65..0000000000 --- a/src/main/java/gregtech/common/items/GT_VolumetricFlask.java +++ /dev/null @@ -1,360 +0,0 @@ -package gregtech.common.items; - -import static gregtech.api.enums.Mods.GregTech; -import static gregtech.api.util.GT_Utility.formatNumbers; -import static ic2.core.util.LiquidUtil.drainContainerStack; -import static ic2.core.util.LiquidUtil.fillContainerStack; -import static ic2.core.util.LiquidUtil.placeFluid; - -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.MovingObjectPosition.MovingObjectType; -import net.minecraft.world.World; -import net.minecraftforge.common.util.FakePlayer; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidRegistry; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.IFluidBlock; -import net.minecraftforge.fluids.IFluidContainerItem; -import net.minecraftforge.fluids.IFluidHandler; - -import com.gtnewhorizons.modularui.api.ModularUITextures; -import com.gtnewhorizons.modularui.api.math.Alignment; -import com.gtnewhorizons.modularui.api.math.Color; -import com.gtnewhorizons.modularui.api.screen.IItemWithModularUI; -import com.gtnewhorizons.modularui.api.screen.ModularWindow; -import com.gtnewhorizons.modularui.api.screen.UIBuildContext; -import com.gtnewhorizons.modularui.common.widget.TextWidget; -import com.gtnewhorizons.modularui.common.widget.VanillaButtonWidget; -import com.gtnewhorizons.modularui.common.widget.textfield.NumericWidget; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import gregtech.api.gui.modularui.GT_UIInfos; -import gregtech.api.gui.modularui.GT_UITextures; -import gregtech.api.items.GT_Generic_Item; -import gregtech.api.util.GT_Utility; -import ic2.core.util.LiquidUtil; - -public class GT_VolumetricFlask extends GT_Generic_Item implements IFluidContainerItem, IItemWithModularUI { - - private final int maxCapacity; - private final String unlocalFlaskName; - - @SideOnly(Side.CLIENT) - public IIcon iconWindow; - - public GT_VolumetricFlask(String unlocalized, String english, int maxCapacity) { - super(unlocalized, english, null); - this.maxCapacity = maxCapacity; - unlocalFlaskName = unlocalized; - setMaxStackSize(64); - setNoRepair(); - } - - @Override - public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - if (!world.isRemote && isEmpty(stack) && getMovingObjectPositionFromPlayer(world, player, true) == null) - GT_UIInfos.openPlayerHeldItemUI(player); - return super.onItemRightClick(stack, world, player); - } - - @Override - public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int ordinalSide, - float xOffset, float yOffset, float zOffset) { - if (player instanceof FakePlayer) { - return false; - } - if (world.isRemote) return false; - if (interactWithTank(stack, player, world, x, y, z, ordinalSide)) { - return true; - } - MovingObjectPosition mop = getMovingObjectPositionFromPlayer(world, player, true); - if (mop == null) { - return false; - } - if (mop.typeOfHit == MovingObjectType.BLOCK) { - x = mop.blockX; - y = mop.blockY; - z = mop.blockZ; - if (!world.canMineBlock(player, x, y, z) || !player.canPlayerEdit(x, y, z, mop.sideHit, stack)) { - return false; - } - if (collectFluidBlock(stack, player, world, x, y, z)) { - return true; - } - ForgeDirection dir = ForgeDirection.VALID_DIRECTIONS[mop.sideHit]; - FluidStack fluidStack = drainContainerStack(stack, player, 1000, true); - if (placeFluid(fluidStack, world, x, y, z) - || (player.canPlayerEdit(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, mop.sideHit, stack) - && placeFluid(fluidStack, world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ))) { - if (!player.capabilities.isCreativeMode) drainContainerStack(stack, player, 1000, false); - return true; - } - } - return false; - } - - public boolean isEmpty(ItemStack stack) { - return getFluid(stack) == null; - } - - public int getFreeSpace(ItemStack stack) { - int capacity = getCapacity(stack); - if (capacity > 0) { - FluidStack fluidStack = getFluid(stack); - return fluidStack == null ? capacity : capacity - fluidStack.amount; - } - return 0; - } - - public int getMaxCapacity() { - return this.maxCapacity; - } - - @Override - public int getCapacity(ItemStack stack) { - int capacity = 1000; - if (stack.hasTagCompound()) { - NBTTagCompound nbt = stack.getTagCompound(); - if (nbt.hasKey("Capacity", 3)) capacity = nbt.getInteger("Capacity"); - } - return Math.min(getMaxCapacity(), capacity); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister aIconRegister) { - super.registerIcons(aIconRegister); - iconWindow = aIconRegister.registerIcon(GregTech.getResourcePath("gt." + unlocalFlaskName + ".window")); - } - - public void setCapacity(ItemStack stack, int capacity) { - capacity = Math.min(capacity, getMaxCapacity()); - NBTTagCompound nbt = stack.getTagCompound(); - if (nbt == null) { - stack.setTagCompound(nbt = new NBTTagCompound()); - } - nbt.setInteger("Capacity", capacity); - } - - @Override - public FluidStack getFluid(ItemStack stack) { - if (stack.hasTagCompound()) { - NBTTagCompound nbt = stack.getTagCompound(); - if (nbt.hasKey("Fluid", 10)) return FluidStack.loadFluidStackFromNBT(nbt.getCompoundTag("Fluid")); - } - return null; - } - - public void setFluid(ItemStack stack, FluidStack fluidStack) { - boolean removeFluid = (fluidStack == null) || (fluidStack.amount <= 0); - NBTTagCompound nbt = stack.getTagCompound(); - if (nbt == null) { - if (removeFluid) return; - stack.setTagCompound(nbt = new NBTTagCompound()); - } - if (removeFluid) { - nbt.removeTag("Fluid"); - if (nbt.hasNoTags()) { - stack.setTagCompound(null); - } - } else { - nbt.setTag("Fluid", fluidStack.writeToNBT(new NBTTagCompound())); - } - } - - @Override - public int fill(ItemStack stack, FluidStack resource, boolean doFill) { - if (stack.stackSize != 1) return 0; - if ((resource == null) || (resource.amount <= 0)) { - return 0; - } - FluidStack fluidStack = getFluid(stack); - if (fluidStack == null) { - fluidStack = new FluidStack(resource, 0); - } else if (!fluidStack.isFluidEqual(resource)) { - return 0; - } - int amount = Math.min(getCapacity(stack) - fluidStack.amount, resource.amount); - if ((doFill) && (amount > 0)) { - fluidStack.amount += amount; - setFluid(stack, fluidStack); - } - return amount; - } - - @Override - public FluidStack drain(ItemStack stack, int maxDrain, boolean doDrain) { - if (stack.stackSize != 1) return null; - FluidStack fluidStack = getFluid(stack); - if (fluidStack == null) return null; - maxDrain = Math.min(fluidStack.amount, maxDrain); - if (doDrain) { - fluidStack.amount -= maxDrain; - setFluid(stack, fluidStack); - } - return new FluidStack(fluidStack, maxDrain); - } - - @Override - protected void addAdditionalToolTips(List info, ItemStack stack, EntityPlayer aPlayer) { - FluidStack fs = getFluid(stack); - if (fs != null) { - info.add(String.format("< %s, %s mB >", GT_Utility.getFluidName(fs, true), formatNumbers(fs.amount))); - } else { - info.add(String.format("< Empty, %s mB >", formatNumbers(getCapacity(stack)))); - } - info.add("Rightclick on air to set volume (only while empty)"); - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(Item item, CreativeTabs creativeTabs, List itemList) { - itemList.add(new ItemStack(this)); - for (Fluid fluid : FluidRegistry.getRegisteredFluids() - .values()) { - if (fluid != null) { - ItemStack stack = new ItemStack(this); - setCapacity(stack, getMaxCapacity()); - fill(stack, new FluidStack(fluid, Integer.MAX_VALUE), true); - itemList.add(stack); - } - } - } - - private boolean interactWithTank(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, - int ordinalSide) { - if (world.isRemote) { - return false; - } - TileEntity te = world.getTileEntity(x, y, z); - if (!(te instanceof IFluidHandler handler)) { - return false; - } - ForgeDirection dir = ForgeDirection.getOrientation(ordinalSide); - FluidStack fs = this.getFluid(stack); - int capacity = getCapacity(stack); - if (fs != null && (!player.isSneaking() || fs.amount >= capacity)) { - int amount = handler.fill(dir, fs, false); - if (amount > 0) { - fs = LiquidUtil.drainContainerStack(stack, player, amount, false); - if (fs != null && fs.amount > 0) { - handler.fill(dir, fs, true); - } - } - } else { - int amount = fs == null ? capacity : capacity - fs.amount; - FluidStack input = handler.drain(dir, amount, false); - if (input != null && input.amount > 0) { - amount = LiquidUtil.fillContainerStack(stack, player, input, false); - if (amount > 0) { - handler.drain(dir, amount, true); - } - } - } - return true; - } - - private boolean collectFluidBlock(ItemStack stack, EntityPlayer player, World world, int x, int y, int z) { - Block block = world.getBlock(x, y, z); - if (block instanceof IFluidBlock liquid) { - if (liquid.canDrain(world, x, y, z)) { - FluidStack fluid = liquid.drain(world, x, y, z, false); - int amount = fillContainerStack(stack, player, fluid, true); - if (amount == fluid.amount) { - fillContainerStack(stack, player, fluid, false); - liquid.drain(world, x, y, z, true); - return true; - } - } - } else if (world.getBlockMetadata(x, y, z) == 0) { - FluidStack fluid = null; - if (block != Blocks.water && block != Blocks.flowing_water) { - if (block == Blocks.lava || block == Blocks.flowing_lava) { - fluid = new FluidStack(FluidRegistry.LAVA, 1000); - } - } else { - fluid = new FluidStack(FluidRegistry.WATER, 1000); - } - - if (fluid != null) { - int amount = fillContainerStack(stack, player, fluid, true); - if (amount == fluid.amount) { - fillContainerStack(stack, player, fluid, false); - world.setBlockToAir(x, y, z); - return true; - } - } - } - return false; - } - - @Override - public ModularWindow createWindow(UIBuildContext buildContext, ItemStack stack) { - if (!(stack.getItem() instanceof GT_VolumetricFlask)) return null; - return new VolumetricFlaskUIFactory(buildContext, stack).createWindow(); - } - - private class VolumetricFlaskUIFactory { - - private final UIBuildContext buildContext; - private int capacity; - private final int maxCapacity; - - public VolumetricFlaskUIFactory(UIBuildContext buildContext, ItemStack flask) { - this.buildContext = buildContext; - GT_VolumetricFlask flaskItem = (GT_VolumetricFlask) flask.getItem(); - this.capacity = flaskItem.getCapacity(flask); - this.maxCapacity = flaskItem.getMaxCapacity(); - } - - public ModularWindow createWindow() { - ModularWindow.Builder builder = ModularWindow.builder(150, 54); - builder.setBackground(ModularUITextures.VANILLA_BACKGROUND); - - NumericWidget capacityWidget = new NumericWidget(); - builder.widget( - capacityWidget.setGetter(() -> capacity) - .setSetter(value -> setCapacity(getCurrentItem(), capacity = (int) value)) - .setBounds(1, maxCapacity) - .setScrollValues(1, 144, 1000) - .setDefaultValue(capacity) - .setTextColor(Color.WHITE.dark(1)) - .setTextAlignment(Alignment.CenterLeft) - .setFocusOnGuiOpen(true) - .setBackground(GT_UITextures.BACKGROUND_TEXT_FIELD.withOffset(-1, -1, 2, 2)) - .setPos(8, 8) - .setSize(77, 12)) - .widget(new TextWidget("Capacity").setPos(88, 10)) - .widget( - new VanillaButtonWidget().setDisplayString("Confirm") - .setOnClick((clickData, widget) -> { - capacityWidget.onRemoveFocus(); - widget.getWindow() - .tryClose(); - }) - .setSynced(false, false) - .setPos(8, 26) - .setSize(48, 20)); - - return builder.build(); - } - - private ItemStack getCurrentItem() { - return buildContext.getPlayer().inventory.getCurrentItem(); - } - } -} -- cgit