Added spotless back and reformatted

This commit is contained in:
Sebastian Hartte
2020-07-27 20:07:27 +02:00
parent 49296915c9
commit 780f68952b
593 changed files with 4192 additions and 3969 deletions
@@ -21,9 +21,9 @@ package appeng.fluids.block;
import javax.annotation.Nullable;
import net.minecraft.block.Material;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.util.ActionResult;
import net.minecraft.util.Hand;
import net.minecraft.util.hit.BlockHitResult;
@@ -45,8 +45,8 @@ public class FluidFormationPlaneScreen extends UpgradeableScreen<FluidFormationP
@Override
protected void addButtons() {
this.addButton(new TabButton(this.x + 154, this.y, 2 + 4 * 16, GuiText.Priority.text(),
this.itemRenderer, btn -> openPriorityGui()));
this.addButton(new TabButton(this.x + 154, this.y, 2 + 4 * 16, GuiText.Priority.text(), this.itemRenderer,
btn -> openPriorityGui()));
}
private void openPriorityGui() {
@@ -22,7 +22,6 @@ import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.text.Text;
import appeng.client.gui.implementations.UpgradeableScreen;
import appeng.client.gui.widgets.TabButton;
import appeng.container.implementations.PriorityContainer;
@@ -36,8 +35,7 @@ import appeng.fluids.helper.DualityFluidInterface;
import appeng.fluids.util.IAEFluidTank;
public class FluidInterfaceScreen extends UpgradeableScreen<FluidInterfaceContainer> {
public FluidInterfaceScreen(FluidInterfaceContainer container, PlayerInventory playerInventory,
Text title) {
public FluidInterfaceScreen(FluidInterfaceContainer container, PlayerInventory playerInventory, Text title) {
super(container, playerInventory, title);
this.backgroundHeight = 231;
}
@@ -23,8 +23,7 @@ public class FluidLevelEmitterScreen extends UpgradeableScreen<FluidLevelEmitter
private NumberEntryWidget level;
public FluidLevelEmitterScreen(FluidLevelEmitterContainer container, PlayerInventory playerInventory,
Text title) {
public FluidLevelEmitterScreen(FluidLevelEmitterContainer container, PlayerInventory playerInventory, Text title) {
super(container, playerInventory, title);
}
@@ -45,13 +44,14 @@ public class FluidLevelEmitterScreen extends UpgradeableScreen<FluidLevelEmitter
@Override
protected void addButtons() {
this.redstoneMode = new ServerSettingToggleButton<>(this.x - 18, this.y + 28,
Settings.REDSTONE_EMITTER, RedstoneMode.LOW_SIGNAL);
this.redstoneMode = new ServerSettingToggleButton<>(this.x - 18, this.y + 28, Settings.REDSTONE_EMITTER,
RedstoneMode.LOW_SIGNAL);
this.addButton(this.redstoneMode);
}
@Override
public void drawBG(MatrixStack matrices, final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) {
public void drawBG(MatrixStack matrices, final int offsetX, final int offsetY, final int mouseX, final int mouseY,
float partialTicks) {
super.drawBG(matrices, offsetX, offsetY, mouseX, mouseY, partialTicks);
this.level.render(matrices, mouseX, mouseY, partialTicks);
}
@@ -51,8 +51,7 @@ public class FluidStorageBusScreen extends UpgradeableScreen<FluidStorageBusCont
private SettingToggleButton<AccessRestriction> rwMode;
private SettingToggleButton<StorageFilter> storageFilter;
public FluidStorageBusScreen(FluidStorageBusContainer container, PlayerInventory playerInventory,
Text title) {
public FluidStorageBusScreen(FluidStorageBusContainer container, PlayerInventory playerInventory, Text title) {
super(container, playerInventory, title);
this.backgroundHeight = 251;
}
@@ -84,8 +83,8 @@ public class FluidStorageBusScreen extends UpgradeableScreen<FluidStorageBusCont
addButton(new ActionButton(this.x - 18, this.y + 28, ActionItems.WRENCH, btn -> partition()));
this.rwMode = new ServerSettingToggleButton<>(this.x - 18, this.y + 48, Settings.ACCESS,
AccessRestriction.READ_WRITE);
this.storageFilter = new ServerSettingToggleButton<>(this.x - 18, this.y + 68,
Settings.STORAGE_FILTER, StorageFilter.EXTRACTABLE_ONLY);
this.storageFilter = new ServerSettingToggleButton<>(this.x - 18, this.y + 68, Settings.STORAGE_FILTER,
StorageFilter.EXTRACTABLE_ONLY);
this.fuzzyMode = new ServerSettingToggleButton<>(this.x - 18, this.y + 88, Settings.FUZZY_MODE,
FuzzyMode.IGNORE_ALL);
@@ -24,16 +24,15 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Locale;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.screen.slot.Slot;
import net.minecraft.text.LiteralText;
import org.lwjgl.glfw.GLFW;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.screen.slot.Slot;
import net.minecraft.screen.slot.SlotActionType;
import net.minecraft.text.LiteralText;
import net.minecraft.text.Text;
import appeng.api.config.Settings;
import appeng.api.config.SortDir;
import appeng.api.config.SortOrder;
@@ -81,8 +80,7 @@ public class FluidTerminalScreen extends AEBaseMEScreen<FluidTerminalContainer>
private SettingToggleButton<SortOrder> sortByBox;
private SettingToggleButton<SortDir> sortDirBox;
public FluidTerminalScreen(FluidTerminalContainer container, PlayerInventory playerInventory,
Text title) {
public FluidTerminalScreen(FluidTerminalContainer container, PlayerInventory playerInventory, Text title) {
super(container, playerInventory, title);
this.backgroundWidth = 185;
this.backgroundHeight = 222;
@@ -107,8 +105,8 @@ public class FluidTerminalScreen extends AEBaseMEScreen<FluidTerminalContainer>
int offset = this.y;
this.sortByBox = this.addButton(new SettingToggleButton<>(this.x - 18, offset, Settings.SORT_BY,
getSortBy(), Platform::isSortOrderAvailable, this::toggleServerSetting));
this.sortByBox = this.addButton(new SettingToggleButton<>(this.x - 18, offset, Settings.SORT_BY, getSortBy(),
Platform::isSortOrderAvailable, this::toggleServerSetting));
offset += 20;
this.sortDirBox = this.addButton(new SettingToggleButton<>(this.x - 18, offset, Settings.SORT_DIRECTION,
@@ -1,23 +1,25 @@
package appeng.fluids.client.gui.widgets;
import java.math.RoundingMode;
import java.util.Collections;
import java.util.Set;
import net.minecraft.client.MinecraftClient;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.text.Text;
import alexiil.mc.lib.attributes.fluid.FluidAttributes;
import alexiil.mc.lib.attributes.fluid.GroupedFluidInvView;
import alexiil.mc.lib.attributes.fluid.volume.FluidKey;
import alexiil.mc.lib.attributes.fluid.volume.FluidVolume;
import appeng.api.storage.data.IAEFluidStack;
import appeng.client.gui.widgets.CustomSlotWidget;
import appeng.core.sync.network.NetworkHandler;
import appeng.core.sync.packets.FluidSlotPacket;
import appeng.fluids.util.AEFluidStack;
import appeng.fluids.util.IAEFluidTank;
import net.minecraft.client.MinecraftClient;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.text.Text;
import java.math.RoundingMode;
import java.util.Collections;
import java.util.Set;
public class FluidSlotWidget extends CustomSlotWidget {
private final IAEFluidTank fluids;
@@ -40,8 +42,7 @@ public class FluidSlotWidget extends CustomSlotWidget {
@Override
public boolean canClick(final PlayerEntity player) {
final ItemStack mouseStack = player.inventory.getCursorStack();
return mouseStack.isEmpty()
|| FluidAttributes.EXTRACTABLE.getFirstOrNull(mouseStack) != null;
return mouseStack.isEmpty() || FluidAttributes.EXTRACTABLE.getFirstOrNull(mouseStack) != null;
}
@Override
@@ -18,12 +18,6 @@
package appeng.fluids.client.gui.widgets;
import alexiil.mc.lib.attributes.fluid.amount.FluidAmount;
import alexiil.mc.lib.attributes.fluid.volume.FluidVolume;
import appeng.api.storage.data.IAEFluidStack;
import appeng.api.util.AEColor;
import appeng.client.gui.widgets.ITooltip;
import appeng.fluids.util.IAEFluidTank;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.gui.widget.AbstractButtonWidget;
@@ -31,6 +25,14 @@ import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.LiteralText;
import net.minecraft.text.Text;
import alexiil.mc.lib.attributes.fluid.amount.FluidAmount;
import alexiil.mc.lib.attributes.fluid.volume.FluidVolume;
import appeng.api.storage.data.IAEFluidStack;
import appeng.api.util.AEColor;
import appeng.client.gui.widgets.ITooltip;
import appeng.fluids.util.IAEFluidTank;
@Environment(EnvType.CLIENT)
public class FluidTankWidget extends AbstractButtonWidget implements ITooltip {
private final IAEFluidTank tank;
@@ -45,7 +47,8 @@ public class FluidTankWidget extends AbstractButtonWidget implements ITooltip {
@Override
public void renderButton(MatrixStack matrices, int mouseX, int mouseY, float partialTicks) {
if (this.visible) {
fill(matrices, this.x, this.y, this.x + this.width, this.y + this.height, AEColor.GRAY.blackVariant | 0xFF000000);
fill(matrices, this.x, this.y, this.x + this.width, this.y + this.height,
AEColor.GRAY.blackVariant | 0xFF000000);
final IAEFluidStack fluidStack = this.tank.getFluidInSlot(this.slot);
if (fluidStack != null && fluidStack.getStackSize() > 0) {
@@ -3,12 +3,11 @@ package appeng.fluids.client.gui.widgets;
import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.client.util.math.MatrixStack;
import appeng.api.storage.data.IAEFluidStack;
import appeng.container.slot.IOptionalSlotHost;
import appeng.fluids.util.IAEFluidTank;
import net.minecraft.client.util.math.MatrixStack;
public class OptionalFluidSlotWidget extends FluidSlotWidget {
private final IOptionalSlotHost containerBus;
@@ -51,8 +50,8 @@ public class OptionalFluidSlotWidget extends FluidSlotWidget {
}
int oldZOffset = getZOffset();
setZOffset(currentZIndex);
drawTexture(matrices, guileft + this.xPos() - 1, guitop + this.yPos() - 1, this.srcX - 1,
this.srcY - 1, this.getWidth() + 2, this.getHeight() + 2);
drawTexture(matrices, guileft + this.xPos() - 1, guitop + this.yPos() - 1, this.srcX - 1, this.srcY - 1,
this.getWidth() + 2, this.getHeight() + 2);
setZOffset(oldZOffset);
}
}
@@ -5,14 +5,15 @@ import java.math.RoundingMode;
import java.util.Collections;
import java.util.Map;
import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.screen.ScreenHandlerListener;
import net.minecraft.screen.ScreenHandlerType;
import alexiil.mc.lib.attributes.Simulation;
import alexiil.mc.lib.attributes.fluid.FluidAttributes;
import alexiil.mc.lib.attributes.fluid.amount.FluidAmount;
import alexiil.mc.lib.attributes.fluid.volume.FluidVolume;
import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.screen.ScreenHandlerType;
import net.minecraft.screen.ScreenHandlerListener;
import net.minecraft.item.ItemStack;
import appeng.api.config.Upgrades;
import appeng.api.implementations.IUpgradeableHost;
@@ -26,7 +27,8 @@ import appeng.util.Platform;
public abstract class FluidConfigurableContainer extends UpgradeableContainer implements IFluidSyncContainer {
private FluidSyncHelper sync = null;
public FluidConfigurableContainer(ScreenHandlerType<?> containerType, int id, PlayerInventory ip, IUpgradeableHost te) {
public FluidConfigurableContainer(ScreenHandlerType<?> containerType, int id, PlayerInventory ip,
IUpgradeableHost te) {
super(containerType, id, ip, te);
}
@@ -41,8 +43,8 @@ public abstract class FluidConfigurableContainer extends UpgradeableContainer im
@Override
protected ItemStack transferStackToContainer(ItemStack input) {
FluidVolume fluid = FluidAttributes.EXTRACTABLE.get(input)
.attemptAnyExtraction(FluidAmount.MAX_VALUE, Simulation.ACTION);
FluidVolume fluid = FluidAttributes.EXTRACTABLE.get(input).attemptAnyExtraction(FluidAmount.MAX_VALUE,
Simulation.ACTION);
if (!fluid.isEmpty()) {
final IAEFluidTank t = this.getFluidConfigInventory();
@@ -1,11 +1,12 @@
package appeng.fluids.container;
import alexiil.mc.lib.attributes.item.FixedItemInv;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.screen.ScreenHandlerType;
import net.minecraft.network.PacketByteBuf;
import net.minecraft.screen.ScreenHandlerType;
import alexiil.mc.lib.attributes.item.FixedItemInv;
import appeng.api.config.SecurityPermissions;
import appeng.api.config.Upgrades;
@@ -20,8 +20,8 @@ package appeng.fluids.container;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.screen.ScreenHandlerType;
import net.minecraft.network.PacketByteBuf;
import net.minecraft.screen.ScreenHandlerType;
import appeng.api.config.SecurityPermissions;
import appeng.container.ContainerLocator;
@@ -23,9 +23,9 @@ import java.util.Map;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.network.PacketByteBuf;
import net.minecraft.screen.ScreenHandlerListener;
import net.minecraft.screen.ScreenHandlerType;
import net.minecraft.network.PacketByteBuf;
import appeng.api.config.SecurityPermissions;
import appeng.api.storage.data.IAEFluidStack;
@@ -1,11 +1,11 @@
package appeng.fluids.container;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.screen.ScreenHandlerType;
import net.minecraft.network.PacketByteBuf;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.network.PacketByteBuf;
import net.minecraft.screen.ScreenHandlerType;
import appeng.api.config.RedstoneMode;
import appeng.api.config.SecurityPermissions;
@@ -22,8 +22,9 @@ import java.util.Iterator;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.screen.ScreenHandlerType;
import net.minecraft.network.PacketByteBuf;
import net.minecraft.screen.ScreenHandlerType;
import alexiil.mc.lib.attributes.item.FixedItemInv;
import appeng.api.config.AccessRestriction;
@@ -24,6 +24,14 @@ import java.nio.BufferOverflowException;
import javax.annotation.Nonnull;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.network.PacketByteBuf;
import net.minecraft.screen.ScreenHandlerListener;
import net.minecraft.screen.ScreenHandlerType;
import net.minecraft.server.network.ServerPlayerEntity;
import alexiil.mc.lib.attributes.Simulation;
import alexiil.mc.lib.attributes.fluid.FixedFluidInv;
import alexiil.mc.lib.attributes.fluid.FluidAttributes;
@@ -35,13 +43,6 @@ import alexiil.mc.lib.attributes.fluid.amount.FluidAmount;
import alexiil.mc.lib.attributes.fluid.filter.ExactFluidFilter;
import alexiil.mc.lib.attributes.fluid.volume.FluidVolume;
import alexiil.mc.lib.attributes.misc.Ref;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.screen.ScreenHandlerListener;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.screen.ScreenHandlerType;
import net.minecraft.item.ItemStack;
import net.minecraft.network.PacketByteBuf;
import appeng.api.config.Actionable;
import appeng.api.config.PowerMultiplier;
@@ -234,8 +235,8 @@ public class FluidTerminalContainer extends AEBaseContainer
if (stack == null && this.clientRequestedTargetFluid == null) {
return;
}
if (stack != null && this.clientRequestedTargetFluid != null
&& FluidVolume.areEqualExceptAmounts(stack.getFluidStack(), this.clientRequestedTargetFluid.getFluidStack())) {
if (stack != null && this.clientRequestedTargetFluid != null && FluidVolume
.areEqualExceptAmounts(stack.getFluidStack(), this.clientRequestedTargetFluid.getFluidStack())) {
return;
}
NetworkHandler.instance().sendToServer(new TargetFluidStackPacket((AEFluidStack) stack));
@@ -330,10 +331,13 @@ public class FluidTerminalContainer extends AEBaseContainer
}
// Check how much we can store in the item
FluidVolume volumeOverflow = insertable.attemptInsertion(this.clientRequestedTargetFluid.getFluidStack().withAmount(FluidAmount.ofWhole(Long.MAX_VALUE)), Simulation.SIMULATE);
FluidVolume volumeOverflow = insertable.attemptInsertion(
this.clientRequestedTargetFluid.getFluidStack().withAmount(FluidAmount.ofWhole(Long.MAX_VALUE)),
Simulation.SIMULATE);
FluidAmount amountAllowed = FluidAmount.ofWhole(Long.MAX_VALUE).saturatedSub(volumeOverflow.amount());
final IAEFluidStack stack = AEFluidStack.fromFluidVolume(this.clientRequestedTargetFluid.getFluidStack().withAmount(amountAllowed), RoundingMode.DOWN);
final IAEFluidStack stack = AEFluidStack.fromFluidVolume(
this.clientRequestedTargetFluid.getFluidStack().withAmount(amountAllowed), RoundingMode.DOWN);
if (stack == null) {
return; // Might be nothing allowed...
}
@@ -365,7 +369,8 @@ public class FluidTerminalContainer extends AEBaseContainer
volumeOverflow = insertable.attemptInsertion(pulled.getFluidStack(), Simulation.ACTION);
if (!volumeOverflow.isEmpty()) {
AELog.error("Fluid item [%s] reported a different possible amount than it actually accepted. Overflow: %s.",
AELog.error(
"Fluid item [%s] reported a different possible amount than it actually accepted. Overflow: %s.",
held, volumeOverflow);
}
@@ -386,13 +391,14 @@ public class FluidTerminalContainer extends AEBaseContainer
}
// Check if we can push into the system
final IAEFluidStack notStorable = Platform.poweredInsert(this.getPowerSource(), this.monitor,
aeStack, this.getActionSource(), Actionable.SIMULATE);
final IAEFluidStack notStorable = Platform.poweredInsert(this.getPowerSource(), this.monitor, aeStack,
this.getActionSource(), Actionable.SIMULATE);
// Adjust the amount if needed
if (notStorable != null && notStorable.getStackSize() > 0) {
final FluidAmount toStore = aeStack.getAmount().sub(notStorable.getAmount());
extract = extractable.attemptExtraction(new ExactFluidFilter(aeStack.getFluid()), toStore, Simulation.SIMULATE);
extract = extractable.attemptExtraction(new ExactFluidFilter(aeStack.getFluid()), toStore,
Simulation.SIMULATE);
if (extract.isEmpty()) {
return;
@@ -407,8 +413,8 @@ public class FluidTerminalContainer extends AEBaseContainer
return; // I guess the extractable decided to return a different amount upon execution
}
final IAEFluidStack notInserted = Platform.poweredInsert(this.getPowerSource(), this.monitor,
aeStack, this.getActionSource());
final IAEFluidStack notInserted = Platform.poweredInsert(this.getPowerSource(), this.monitor, aeStack,
this.getActionSource());
if (notInserted != null && notInserted.getStackSize() > 0) {
AELog.error("Fluid item [%s] reported a different possible amount to drain than it actually provided.",
@@ -20,11 +20,12 @@ package appeng.fluids.helper;
import java.util.Optional;
import alexiil.mc.lib.attributes.AttributeList;
import alexiil.mc.lib.attributes.item.FixedItemInv;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.nbt.CompoundTag;
import alexiil.mc.lib.attributes.AttributeList;
import alexiil.mc.lib.attributes.fluid.volume.FluidVolume;
import alexiil.mc.lib.attributes.item.FixedItemInv;
import appeng.api.config.Actionable;
import appeng.api.config.Settings;
@@ -18,16 +18,18 @@
package appeng.fluids.helper;
import net.minecraft.item.ItemStack;
import alexiil.mc.lib.attributes.Simulation;
import alexiil.mc.lib.attributes.fluid.FluidAttributes;
import alexiil.mc.lib.attributes.fluid.FluidExtractable;
import alexiil.mc.lib.attributes.fluid.amount.FluidAmount;
import alexiil.mc.lib.attributes.fluid.volume.FluidVolume;
import alexiil.mc.lib.attributes.item.filter.ItemFilter;
import appeng.core.Api;
import appeng.fluids.items.FluidDummyItem;
import appeng.items.contents.CellConfig;
import net.minecraft.item.ItemStack;
/**
* @author DrummerMC
@@ -44,7 +46,8 @@ public class FluidCellConfig extends CellConfig {
return stack;
}
// Try to auto-convert any fluid-containing item into a dummy item before insertion
// Try to auto-convert any fluid-containing item into a dummy item before
// insertion
FluidExtractable fluidExtractable = FluidAttributes.EXTRACTABLE.getFirstOrNull(stack);
if (fluidExtractable == null) {
return ItemStack.EMPTY;
@@ -1,15 +1,16 @@
package appeng.fluids.helper;
import java.math.RoundingMode;
import java.util.*;
import alexiil.mc.lib.attributes.fluid.GroupedFluidInv;
import alexiil.mc.lib.attributes.fluid.amount.FluidAmount;
import alexiil.mc.lib.attributes.fluid.volume.FluidKey;
import appeng.api.storage.data.IAEFluidStack;
import appeng.api.storage.data.IItemList;
import appeng.fluids.util.AEFluidStack;
import java.math.RoundingMode;
import java.util.*;
public class GroupedFluidInvCache {
private final GroupedFluidInv inventory;
@@ -38,7 +39,8 @@ public class GroupedFluidInvCache {
FluidAmount oldAmount = old == null ? FluidAmount.ZERO : old.getAmount();
if (!newAmount.equals(oldAmount)) {
AEFluidStack newStack = AEFluidStack.fromFluidVolume(storedFluid.withAmount(newAmount), RoundingMode.DOWN);
AEFluidStack newStack = AEFluidStack.fromFluidVolume(storedFluid.withAmount(newAmount),
RoundingMode.DOWN);
if (old != null) {
old = old.copy();
@@ -20,6 +20,7 @@ package appeng.fluids.items;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import alexiil.mc.lib.attributes.item.FixedItemInv;
import appeng.api.storage.IStorageChannel;
@@ -18,15 +18,16 @@
package appeng.fluids.items;
import alexiil.mc.lib.attributes.fluid.FluidVolumeUtil;
import alexiil.mc.lib.attributes.fluid.amount.FluidAmount;
import alexiil.mc.lib.attributes.fluid.volume.FluidKeys;
import alexiil.mc.lib.attributes.fluid.volume.FluidVolume;
import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.util.collection.DefaultedList;
import alexiil.mc.lib.attributes.fluid.FluidVolumeUtil;
import alexiil.mc.lib.attributes.fluid.amount.FluidAmount;
import alexiil.mc.lib.attributes.fluid.volume.FluidKeys;
import alexiil.mc.lib.attributes.fluid.volume.FluidVolume;
import appeng.items.AEBaseItem;
/**
@@ -1,12 +1,12 @@
package appeng.fluids.items;
import alexiil.mc.lib.attributes.fluid.volume.FluidVolume;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.color.item.ItemColorProvider;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import alexiil.mc.lib.attributes.fluid.volume.FluidVolume;
@Environment(EnvType.CLIENT)
public class FluidDummyItemColor implements ItemColorProvider {
@@ -6,25 +6,26 @@ import java.util.List;
import javax.annotation.Nonnull;
import alexiil.mc.lib.attributes.fluid.FluidAttributes;
import alexiil.mc.lib.attributes.fluid.amount.FluidAmount;
import alexiil.mc.lib.attributes.fluid.volume.FluidKeys;
import alexiil.mc.lib.attributes.fluid.volume.FluidVolume;
import net.minecraft.block.BlockState;
import net.minecraft.block.FluidDrainable;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.fluid.Fluid;
import net.minecraft.fluid.Fluids;
import net.minecraft.fluid.FluidState;
import net.minecraft.fluid.Fluids;
import net.minecraft.item.ItemStack;
import net.minecraft.tag.FluidTags;
import net.minecraft.tag.Tag;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.Direction;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction;
import net.minecraft.world.BlockView;
import net.minecraft.world.World;
import alexiil.mc.lib.attributes.fluid.FluidAttributes;
import alexiil.mc.lib.attributes.fluid.amount.FluidAmount;
import alexiil.mc.lib.attributes.fluid.volume.FluidKeys;
import alexiil.mc.lib.attributes.fluid.volume.FluidVolume;
import appeng.api.config.Actionable;
import appeng.api.config.PowerMultiplier;
import appeng.api.networking.IGridNode;
@@ -249,8 +250,8 @@ public class FluidAnnihilationPlanePart extends BasicStatePart implements IGridT
// This _MIGHT_ change the liquid, and if it does, and we dont have enough
// space, tough luck. you loose the source block.
fluid = ((FluidDrainable) blockstate.getBlock()).tryDrainFluid(w, pos, blockstate);
this.storeFluid(AEFluidStack.fromFluidVolume(FluidKeys.get(fluid).withAmount(FluidAmount.ONE), RoundingMode.DOWN),
true);
this.storeFluid(AEFluidStack.fromFluidVolume(FluidKeys.get(fluid).withAmount(FluidAmount.ONE),
RoundingMode.DOWN), true);
AppEng.instance().sendToAllNearExcept(null, pos.getX(), pos.getY(), pos.getZ(), 64, w,
new BlockTransitionEffectPacket(pos, blockstate, this.getSide().getOpposite(),
@@ -18,16 +18,18 @@
package appeng.fluids.parts;
import java.math.RoundingMode;
import javax.annotation.Nonnull;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.util.Identifier;
import alexiil.mc.lib.attributes.Simulation;
import alexiil.mc.lib.attributes.fluid.FluidAttributes;
import alexiil.mc.lib.attributes.fluid.FluidInsertable;
import alexiil.mc.lib.attributes.fluid.volume.FluidVolume;
import appeng.attributes.MEAttributes;
import net.minecraft.item.ItemStack;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.util.Identifier;
import appeng.api.config.Actionable;
import appeng.api.config.FuzzyMode;
@@ -43,6 +45,7 @@ import appeng.api.parts.IPartCollisionHelper;
import appeng.api.parts.IPartModel;
import appeng.api.storage.IMEMonitor;
import appeng.api.storage.data.IAEFluidStack;
import appeng.attributes.MEAttributes;
import appeng.core.AppEng;
import appeng.core.settings.TickRates;
import appeng.items.parts.PartModels;
@@ -50,8 +53,6 @@ import appeng.me.GridAccessException;
import appeng.me.helpers.MachineSource;
import appeng.parts.PartModel;
import java.math.RoundingMode;
/**
* @author BrockWS
* @version rv6 - 30/04/2018
@@ -1,10 +1,33 @@
package appeng.fluids.parts;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.annotation.Nonnull;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.block.FluidBlock;
import net.minecraft.block.FluidFillable;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.screen.ScreenHandlerType;
import net.minecraft.util.Hand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
import net.minecraft.world.BlockView;
import net.minecraft.world.World;
import alexiil.mc.lib.attributes.Simulation;
import alexiil.mc.lib.attributes.fluid.amount.FluidAmount;
import alexiil.mc.lib.attributes.fluid.volume.FluidVolume;
import alexiil.mc.lib.attributes.fluid.world.FluidWorldUtil;
import appeng.api.config.AccessRestriction;
import appeng.api.config.Actionable;
import appeng.api.config.IncludeExclude;
@@ -36,26 +59,6 @@ import appeng.parts.automation.AbstractFormationPlanePart;
import appeng.parts.automation.PlaneModels;
import appeng.util.Platform;
import appeng.util.prioritylist.PrecisePriorityList;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.block.FluidBlock;
import net.minecraft.block.FluidFillable;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.screen.ScreenHandlerType;
import net.minecraft.util.Hand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
import net.minecraft.world.BlockView;
import net.minecraft.world.World;
import javax.annotation.Nonnull;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class FluidFormationPlanePart extends AbstractFormationPlanePart<IAEFluidStack> implements IAEFluidInventory {
private static final PlaneModels MODELS = new PlaneModels("part/fluid_formation_plane",
@@ -114,7 +117,8 @@ public class FluidFormationPlanePart extends AbstractFormationPlanePart<IAEFluid
final BlockPos pos = te.getPos().offset(side.getFacing());
FluidVolume volume = input.getFluidStack();
FluidVolume remainder = FluidWorldUtil.fill(w, pos, volume, type == Actionable.MODULATE ? Simulation.ACTION : Simulation.SIMULATE);
FluidVolume remainder = FluidWorldUtil.fill(w, pos, volume,
type == Actionable.MODULATE ? Simulation.ACTION : Simulation.SIMULATE);
if (remainder.getAmount_F().isLessThan(volume.getAmount_F())) {
// calculate the effective amount consumed
// round UP here because we might otherwise duplicate fluids
@@ -18,12 +18,18 @@
package appeng.fluids.parts;
import java.math.RoundingMode;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import alexiil.mc.lib.attributes.Simulation;
import alexiil.mc.lib.attributes.fluid.GroupedFluidInv;
import alexiil.mc.lib.attributes.fluid.filter.ExactFluidFilter;
import alexiil.mc.lib.attributes.fluid.filter.FluidFilter;
import alexiil.mc.lib.attributes.fluid.volume.FluidVolume;
import appeng.core.Api;
import appeng.api.config.Actionable;
import appeng.api.networking.security.IActionSource;
import appeng.api.networking.storage.IBaseMonitor;
@@ -34,19 +40,13 @@ import appeng.api.storage.IStorageChannel;
import appeng.api.storage.channels.IFluidStorageChannel;
import appeng.api.storage.data.IAEFluidStack;
import appeng.api.storage.data.IItemList;
import appeng.fluids.helper.GroupedFluidInvCache;
import appeng.core.Api;
import appeng.fluids.helper.GroupedFluidInvCache;
import appeng.fluids.util.AEFluidStack;
import appeng.me.GridAccessException;
import appeng.me.helpers.IGridProxyable;
import appeng.me.storage.ITickingMonitor;
import java.math.RoundingMode;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/**
* Wraps an Fluid Handler in such a way that it can be used as an IMEInventory
* for fluids.
@@ -18,6 +18,15 @@
package appeng.fluids.parts;
import java.math.RoundingMode;
import java.util.HashSet;
import java.util.Set;
import javax.annotation.Nonnull;
import net.minecraft.item.ItemStack;
import net.minecraft.util.Identifier;
import alexiil.mc.lib.attributes.Simulation;
import alexiil.mc.lib.attributes.fluid.FluidAttributes;
import alexiil.mc.lib.attributes.fluid.FluidExtractable;
@@ -26,6 +35,7 @@ import alexiil.mc.lib.attributes.fluid.filter.ConstantFluidFilter;
import alexiil.mc.lib.attributes.fluid.filter.FluidFilter;
import alexiil.mc.lib.attributes.fluid.volume.FluidKey;
import alexiil.mc.lib.attributes.fluid.volume.FluidVolume;
import appeng.api.config.*;
import appeng.api.networking.IGridNode;
import appeng.api.networking.security.IActionSource;
@@ -42,13 +52,6 @@ import appeng.items.parts.PartModels;
import appeng.me.GridAccessException;
import appeng.me.helpers.MachineSource;
import appeng.parts.PartModel;
import net.minecraft.item.ItemStack;
import net.minecraft.util.Identifier;
import javax.annotation.Nonnull;
import java.math.RoundingMode;
import java.util.HashSet;
import java.util.Set;
/**
* @author BrockWS
@@ -114,14 +117,14 @@ public class FluidImportBusPart extends SharedFluidBusPart {
final AEFluidStack aeFluidStack = AEFluidStack.fromFluidVolume(extractableVolume, RoundingMode.DOWN);
if (aeFluidStack != null) {
final IAEFluidStack notInserted = inv.injectItems(aeFluidStack, Actionable.MODULATE,
this.source);
final IAEFluidStack notInserted = inv.injectItems(aeFluidStack, Actionable.MODULATE, this.source);
if (notInserted != null && notInserted.getStackSize() > 0) {
aeFluidStack.decStackSize(notInserted.getStackSize());
}
// Now we need to actually drain the fluid, and use the actual amount we just inserted
// Now we need to actually drain the fluid, and use the actual amount we just
// inserted
extractable.extract(filter, aeFluidStack.getAmount()); // FIXME: If there's a mismatch here, log?
return TickRateModulation.FASTER;
@@ -141,7 +144,8 @@ public class FluidImportBusPart extends SharedFluidBusPart {
return this.getProxy().isActive();
}
// Returns a filter for fluid extraction based on the configured filter for this bus
// Returns a filter for fluid extraction based on the configured filter for this
// bus
private FluidFilter getFilter() {
Set<FluidKey> allowedFluids = null;
@@ -20,16 +20,17 @@ package appeng.fluids.parts;
import java.util.EnumSet;
import alexiil.mc.lib.attributes.AttributeList;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.screen.ScreenHandlerType;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.util.math.Direction;
import net.minecraft.screen.ScreenHandlerType;
import net.minecraft.util.Hand;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.Direction;
import net.minecraft.util.math.Vec3d;
import alexiil.mc.lib.attributes.AttributeList;
import alexiil.mc.lib.attributes.item.FixedItemInv;
import appeng.api.config.Upgrades;
@@ -56,7 +57,6 @@ import appeng.fluids.container.FluidInterfaceContainer;
import appeng.fluids.helper.DualityFluidInterface;
import appeng.fluids.helper.IFluidInterfaceHost;
import appeng.helpers.IPriorityHost;
import appeng.items.parts.PartModels;
import appeng.parts.BasicStatePart;
import appeng.parts.PartModel;
@@ -53,17 +53,13 @@ import appeng.util.Platform;
public class FluidLevelEmitterPart extends UpgradeablePart
implements IStackWatcherHost, IConfigManagerHost, IAEFluidInventory, IMEMonitorHandlerReceiver<IAEFluidStack> {
@PartModels
public static final Identifier MODEL_BASE_OFF = new Identifier(AppEng.MOD_ID,
"part/level_emitter_base_off");
public static final Identifier MODEL_BASE_OFF = new Identifier(AppEng.MOD_ID, "part/level_emitter_base_off");
@PartModels
public static final Identifier MODEL_BASE_ON = new Identifier(AppEng.MOD_ID,
"part/level_emitter_base_on");
public static final Identifier MODEL_BASE_ON = new Identifier(AppEng.MOD_ID, "part/level_emitter_base_on");
@PartModels
public static final Identifier MODEL_STATUS_OFF = new Identifier(AppEng.MOD_ID,
"part/level_emitter_status_off");
public static final Identifier MODEL_STATUS_OFF = new Identifier(AppEng.MOD_ID, "part/level_emitter_status_off");
@PartModels
public static final Identifier MODEL_STATUS_ON = new Identifier(AppEng.MOD_ID,
"part/level_emitter_status_on");
public static final Identifier MODEL_STATUS_ON = new Identifier(AppEng.MOD_ID, "part/level_emitter_status_on");
@PartModels
public static final Identifier MODEL_STATUS_HAS_CHANNEL = new Identifier(AppEng.MOD_ID,
"part/level_emitter_status_has_channel");
@@ -24,18 +24,19 @@ import java.util.Objects;
import javax.annotation.Nonnull;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.screen.ScreenHandlerType;
import net.minecraft.util.Hand;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.Direction;
import net.minecraft.util.math.Vec3d;
import alexiil.mc.lib.attributes.fluid.FluidAttributes;
import alexiil.mc.lib.attributes.fluid.GroupedFluidInv;
import alexiil.mc.lib.attributes.fluid.GroupedFluidInvView;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.screen.ScreenHandlerType;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.Direction;
import net.minecraft.util.Hand;
import net.minecraft.util.math.Vec3d;
import appeng.api.config.AccessRestriction;
import appeng.api.config.FuzzyMode;
@@ -91,8 +92,7 @@ import appeng.util.prioritylist.PrecisePriorityList;
*/
public class FluidStorageBusPart extends SharedStorageBusPart
implements IMEMonitorHandlerReceiver<IAEFluidStack>, IAEFluidInventory {
public static final Identifier MODEL_BASE = new Identifier(AppEng.MOD_ID,
"part/fluid_storage_bus_base");
public static final Identifier MODEL_BASE = new Identifier(AppEng.MOD_ID, "part/fluid_storage_bus_base");
@PartModels
public static final IPartModel MODELS_OFF = new PartModel(MODEL_BASE,
new Identifier(AppEng.MOD_ID, "part/fluid_storage_bus_off"));
@@ -121,7 +121,8 @@ public class FluidStorageBusPart extends SharedStorageBusPart
private IMEInventory<IAEFluidStack> getInventoryWrapper(BlockEntity target) {
// Prioritize a handler to directly link to another ME network
IStorageMonitorableAccessor accessor = MEAttributes.getAttributeInFrontOfPart(MEAttributes.STORAGE_MONITORABLE_ACCESSOR, this);
IStorageMonitorableAccessor accessor = MEAttributes
.getAttributeInFrontOfPart(MEAttributes.STORAGE_MONITORABLE_ACCESSOR, this);
if (accessor != null) {
IStorageMonitorable inventory = accessor.getInventory(this.source);
if (inventory != null) {
@@ -379,14 +380,13 @@ public class FluidStorageBusPart extends SharedStorageBusPart
return 0;
}
IStorageMonitorableAccessor accessor = MEAttributes.getAttributeInFrontOfPart(
MEAttributes.STORAGE_MONITORABLE_ACCESSOR, this);
IStorageMonitorableAccessor accessor = MEAttributes
.getAttributeInFrontOfPart(MEAttributes.STORAGE_MONITORABLE_ACCESSOR, this);
if (accessor != null) {
return Objects.hash(target, accessor);
}
final GroupedFluidInv groupedInv = MEAttributes.getAttributeInFrontOfPart(
FluidAttributes.GROUPED_INV, this);
final GroupedFluidInv groupedInv = MEAttributes.getAttributeInFrontOfPart(FluidAttributes.GROUPED_INV, this);
if (groupedInv != null) {
return Objects.hash(target, groupedInv);
}
@@ -19,8 +19,8 @@
package appeng.fluids.parts;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.screen.ScreenHandlerType;
import net.minecraft.item.ItemStack;
import net.minecraft.screen.ScreenHandlerType;
import net.minecraft.util.Identifier;
import appeng.api.parts.IPartModel;
@@ -18,8 +18,6 @@
package appeng.fluids.parts;
import alexiil.mc.lib.attributes.Attribute;
import alexiil.mc.lib.attributes.SearchOptions;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
@@ -29,6 +27,9 @@ import net.minecraft.util.math.*;
import net.minecraft.world.BlockView;
import net.minecraft.world.World;
import alexiil.mc.lib.attributes.Attribute;
import alexiil.mc.lib.attributes.SearchOptions;
import appeng.api.config.RedstoneMode;
import appeng.api.config.Upgrades;
import appeng.api.networking.ticking.IGridTickable;
@@ -20,16 +20,18 @@ package appeng.fluids.tile;
import java.util.EnumSet;
import alexiil.mc.lib.attributes.AttributeList;
import alexiil.mc.lib.attributes.item.FixedItemInv;
import net.minecraft.block.BlockState;
import net.minecraft.screen.ScreenHandlerType;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.block.entity.BlockEntityType;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.screen.ScreenHandlerType;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction;
import net.minecraft.world.World;
import alexiil.mc.lib.attributes.AttributeList;
import alexiil.mc.lib.attributes.item.FixedItemInv;
import appeng.api.config.Upgrades;
import appeng.api.networking.IGridNode;
@@ -49,7 +51,6 @@ import appeng.fluids.helper.DualityFluidInterface;
import appeng.fluids.helper.IFluidInterfaceHost;
import appeng.helpers.IPriorityHost;
import appeng.tile.grid.AENetworkBlockEntity;
import net.minecraft.world.World;
public class FluidInterfaceBlockEntity extends AENetworkBlockEntity
implements IGridTickable, IFluidInterfaceHost, IPriorityHost {
@@ -4,6 +4,8 @@ package appeng.fluids.util;
import java.math.RoundingMode;
import java.util.Objects;
import net.minecraft.nbt.CompoundTag;
import alexiil.mc.lib.attributes.ListenerRemovalToken;
import alexiil.mc.lib.attributes.ListenerToken;
import alexiil.mc.lib.attributes.Simulation;
@@ -12,7 +14,6 @@ import alexiil.mc.lib.attributes.fluid.FluidVolumeUtil;
import alexiil.mc.lib.attributes.fluid.amount.FluidAmount;
import alexiil.mc.lib.attributes.fluid.volume.FluidKey;
import alexiil.mc.lib.attributes.fluid.volume.FluidVolume;
import net.minecraft.nbt.CompoundTag;
import appeng.api.storage.data.IAEFluidStack;
import appeng.core.AELog;
@@ -18,12 +18,10 @@
package appeng.fluids.util;
import java.math.RoundingMode;
import javax.annotation.Nonnull;
import alexiil.mc.lib.attributes.fluid.amount.FluidAmount;
import alexiil.mc.lib.attributes.fluid.volume.FluidKey;
import alexiil.mc.lib.attributes.fluid.volume.FluidKeys;
import alexiil.mc.lib.attributes.fluid.volume.FluidVolume;
import com.google.common.base.Preconditions;
import net.fabricmc.fabric.api.util.NbtType;
@@ -31,6 +29,11 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.PacketByteBuf;
import alexiil.mc.lib.attributes.fluid.amount.FluidAmount;
import alexiil.mc.lib.attributes.fluid.volume.FluidKey;
import alexiil.mc.lib.attributes.fluid.volume.FluidKeys;
import alexiil.mc.lib.attributes.fluid.volume.FluidVolume;
import appeng.api.config.FuzzyMode;
import appeng.api.storage.IStorageChannel;
import appeng.api.storage.channels.IFluidStorageChannel;
@@ -40,8 +43,6 @@ import appeng.fluids.items.FluidDummyItem;
import appeng.util.Platform;
import appeng.util.item.AEStack;
import java.math.RoundingMode;
public final class AEFluidStack extends AEStack<IAEFluidStack> implements IAEFluidStack, Comparable<AEFluidStack> {
private static final String NBT_STACKSIZE = "cnt";
private static final String NBT_REQUESTABLE = "req";