mirror of
https://github.com/GTNewHorizons/AE2FluidCraft-Rework.git
synced 2026-11-11 15:57:55 +00:00
Lazy monitor updates (#150)
* Update buildscript and dependencies * Implement getAvailableItem for faster network updates * Use findPrecise
This commit is contained in:
1 parent
dd842a182c
commit
64977b87a9
8 files changed
+196
-75
No files matched your search
@@ -3,6 +3,8 @@ package com.glodblock.github.common.storage;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import net.minecraft.inventory.IInventory;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@@ -385,6 +387,11 @@ public class FluidCellInventory implements IFluidCellInventory {
|
||||
return out;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IAEFluidStack getAvailableItem(@Nonnull IAEFluidStack request) {
|
||||
return this.getCellFluids().findPrecise(request);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<IAEFluidStack> getContents() {
|
||||
List<IAEFluidStack> ret = new ArrayList<>();
|
||||
|
||||
@@ -4,6 +4,8 @@ import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import com.glodblock.github.api.FluidCraftAPI;
|
||||
import com.glodblock.github.common.item.ItemFluidDrop;
|
||||
|
||||
@@ -203,6 +205,24 @@ public class TileFluidDiscretizer extends AENetworkTile implements IPriorityHost
|
||||
return out;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IAEItemStack getAvailableItem(@Nonnull IAEItemStack request) {
|
||||
IMEMonitor<IAEFluidStack> fluidGrid = getFluidGrid();
|
||||
if (fluidGrid == null) {
|
||||
return null;
|
||||
}
|
||||
IAEFluidStack fluidRequest = ItemFluidDrop.getAeFluidStack(request);
|
||||
if (fluidRequest == null) {
|
||||
return null;
|
||||
}
|
||||
IAEFluidStack availableFluid = fluidGrid.getAvailableItem(fluidRequest);
|
||||
if (availableFluid == null || availableFluid.getFluid() == null
|
||||
|| FluidCraftAPI.instance().isBlacklistedInDisplay(availableFluid.getFluid().getClass())) {
|
||||
return null;
|
||||
}
|
||||
return ItemFluidDrop.newAeStack(availableFluid);
|
||||
}
|
||||
|
||||
@Override
|
||||
public StorageChannel getChannel() {
|
||||
return StorageChannel.ITEMS;
|
||||
@@ -277,6 +297,11 @@ public class TileFluidDiscretizer extends AENetworkTile implements IPriorityHost
|
||||
return out;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IAEFluidStack getAvailableItem(@Nonnull IAEFluidStack request) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public StorageChannel getChannel() {
|
||||
return StorageChannel.FLUIDS;
|
||||
|
||||
@@ -2,6 +2,8 @@ package com.glodblock.github.inventory;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.fluids.FluidTankInfo;
|
||||
@@ -189,6 +191,11 @@ public class MEMonitorIFluidHandler implements IMEMonitor<IAEFluidStack> {
|
||||
return out;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IAEFluidStack getAvailableItem(@Nonnull IAEFluidStack request) {
|
||||
return this.cache.findPrecise(request);
|
||||
}
|
||||
|
||||
public IItemList<IAEFluidStack> getStorageList() {
|
||||
return this.cache;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user