Remove Regulator mode

This commit is contained in:
raoulvdberge
2018-05-26 14:06:55 +02:00
parent bfaae24e52
commit f7247f7daa
14 changed files with 7 additions and 161 deletions

View File

@@ -1,6 +1,10 @@
# Refined Storage Changelog
### 1.5.35
### 1.6
- Removed Regulator mode in the Exporter (raoulvdberge)
- Removed MCMultiPart integration (raoulvdberge)
- Removed Project E integration (raoulvdberge)
- Removed Storage Drawers integration (you can still attach an External Storage to drawers, though) (raoulvdberge)
- Updated Russian translation (kellixon)
### 1.5.34

View File

@@ -16,7 +16,7 @@ import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.network.NetworkRegistry;
import net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper;
@Mod(modid = RS.ID, version = RS.VERSION, dependencies = RS.DEPENDENCIES, acceptedMinecraftVersions = "[1.12.2,1.13)", guiFactory = RS.GUI_FACTORY, updateJSON = RS.UPDATE_JSON, certificateFingerprint = RS.FINGERPRINT)
@Mod(modid = RS.ID, version = RS.VERSION, acceptedMinecraftVersions = "[1.12.2,1.13)", guiFactory = RS.GUI_FACTORY, updateJSON = RS.UPDATE_JSON, certificateFingerprint = RS.FINGERPRINT)
public final class RS {
static {
FluidRegistry.enableUniversalBucket();
@@ -24,7 +24,6 @@ public final class RS {
public static final String ID = "refinedstorage";
public static final String VERSION = "1.6";
public static final String DEPENDENCIES = "required-after:forge@[14.23.1.2555,);after:mcmultipart@[2.4.1,);after:storagedrawers@[1.12-5.2.2,);";
public static final String GUI_FACTORY = "com.raoulvdberge.refinedstorage.gui.config.ModGuiFactory";
public static final String UPDATE_JSON = "https://refinedstorage.raoulvdberge.com/update";
public static final String FINGERPRINT = "57893d5b90a7336e8c63fe1c1e1ce472c3d59578";

View File

@@ -3,7 +3,6 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.node;
import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSItems;
import com.raoulvdberge.refinedstorage.api.util.IComparer;
import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode;
@@ -22,7 +21,6 @@ import net.minecraft.world.World;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.capability.IFluidHandler;
import net.minecraftforge.fluids.capability.IFluidTankProperties;
import net.minecraftforge.items.IItemHandler;
import net.minecraftforge.items.ItemHandlerHelper;
@@ -31,7 +29,6 @@ public class NetworkNodeExporter extends NetworkNode implements IComparable, ITy
private static final String NBT_COMPARE = "Compare";
private static final String NBT_TYPE = "Type";
private static final String NBT_REGULATOR = "Regulator";
private ItemHandlerBase itemFilters = new ItemHandlerBase(9, new ItemHandlerListenerNetworkNode(this));
private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(9, new ItemHandlerListenerNetworkNode(this));
@@ -40,7 +37,6 @@ public class NetworkNodeExporter extends NetworkNode implements IComparable, ITy
private int compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE;
private int type = IType.ITEMS;
private boolean regulator = false;
public NetworkNodeExporter(World world, BlockPos pos) {
super(world, pos);
@@ -87,29 +83,6 @@ public class NetworkNodeExporter extends NetworkNode implements IComparable, ITy
if (stackInStorage != null) {
int toExtract = Math.min(Fluid.BUCKET_VOLUME * upgrades.getItemInteractCount(), stackInStorage.amount);
boolean skipSlot = false;
if (regulator) {
for (IFluidTankProperties tankProperty : handler.getTankProperties()) {
FluidStack exporterStack = tankProperty.getContents();
if (API.instance().getComparer().isEqual(stackInStorage, exporterStack, compare)) {
if (exporterStack.amount >= stack.amount * Fluid.BUCKET_VOLUME) {
skipSlot = true;
break;
} else {
toExtract = upgrades.hasUpgrade(ItemUpgrade.TYPE_STACK) ? stack.amount * Fluid.BUCKET_VOLUME - exporterStack.amount : Fluid.BUCKET_VOLUME;
toExtract = Math.min(toExtract, stackInStorage.amount);
}
}
}
}
if (skipSlot) {
continue;
}
FluidStack took = network.extractFluid(stack, toExtract, compare, true);
if (took != null) {
@@ -134,34 +107,6 @@ public class NetworkNodeExporter extends NetworkNode implements IComparable, ITy
private void doExport(IItemHandler handler, ItemStack slot) {
int stackSize = upgrades.getItemInteractCount();
if (regulator) {
int found = 0;
for (int index = 0; index < handler.getSlots(); index++) {
ItemStack handlerStack = handler.getStackInSlot(index);
if (API.instance().getComparer().isEqual(slot, handlerStack, compare)) {
found += handlerStack.getCount();
}
}
int needed = 0;
for (int i = 0; i < itemFilters.getSlots(); ++i) {
if (API.instance().getComparer().isEqualNoQuantity(slot, itemFilters.getStackInSlot(i))) {
needed += itemFilters.getStackInSlot(i).getCount();
}
}
stackSize = needed - found;
if (stackSize <= 0) {
return;
} else if (!upgrades.hasUpgrade(ItemUpgrade.TYPE_STACK)) {
stackSize = 1;
}
}
ItemStack took = network.extractItem(slot, Math.min(slot.getMaxStackSize(), stackSize), compare, true);
if (took == null) {
@@ -216,7 +161,6 @@ public class NetworkNodeExporter extends NetworkNode implements IComparable, ITy
tag.setInteger(NBT_COMPARE, compare);
tag.setInteger(NBT_TYPE, type);
tag.setBoolean(NBT_REGULATOR, regulator);
StackUtils.writeItems(itemFilters, 0, tag);
StackUtils.writeItems(fluidFilters, 2, tag);
@@ -236,10 +180,6 @@ public class NetworkNodeExporter extends NetworkNode implements IComparable, ITy
type = tag.getInteger(NBT_TYPE);
}
if (tag.hasKey(NBT_REGULATOR)) {
regulator = tag.getBoolean(NBT_REGULATOR);
}
StackUtils.readItems(itemFilters, 0, tag);
StackUtils.readItems(fluidFilters, 2, tag);
}
@@ -265,14 +205,6 @@ public class NetworkNodeExporter extends NetworkNode implements IComparable, ITy
markDirty();
}
public void setRegulator(boolean regulator) {
this.regulator = regulator;
}
public boolean isRegulator() {
return world.isRemote ? TileExporter.REGULATOR.getValue() : regulator;
}
public ItemHandlerBase getItemFilters() {
return itemFilters;
}

View File

@@ -1,6 +1,5 @@
package com.raoulvdberge.refinedstorage.container;
import com.raoulvdberge.refinedstorage.container.slot.SlotFilter;
import com.raoulvdberge.refinedstorage.container.slot.SlotFilterType;
import com.raoulvdberge.refinedstorage.tile.TileExporter;
import net.minecraft.entity.player.EntityPlayer;
@@ -9,17 +8,9 @@ import net.minecraft.item.ItemStack;
import net.minecraftforge.items.SlotItemHandler;
public class ContainerExporter extends ContainerBase {
private TileExporter exporter;
public ContainerExporter(TileExporter exporter, EntityPlayer player) {
super(exporter, player);
this.exporter = exporter;
initSlots();
}
public void initSlots() {
this.inventorySlots.clear();
this.inventoryItemStacks.clear();
@@ -28,7 +19,7 @@ public class ContainerExporter extends ContainerBase {
}
for (int i = 0; i < 9; ++i) {
addSlotToContainer(new SlotFilterType(exporter.getNode(), i, 8 + (18 * i), 20, exporter.getNode().isRegulator() ? SlotFilter.FILTER_ALLOW_SIZE : 0));
addSlotToContainer(new SlotFilterType(exporter.getNode(), i, 8 + (18 * i), 20));
}
addPlayerInventory(8, 55);

View File

@@ -3,7 +3,6 @@ package com.raoulvdberge.refinedstorage.gui;
import com.raoulvdberge.refinedstorage.api.util.IComparer;
import com.raoulvdberge.refinedstorage.container.ContainerExporter;
import com.raoulvdberge.refinedstorage.gui.control.SideButtonCompare;
import com.raoulvdberge.refinedstorage.gui.control.SideButtonExporterRegulator;
import com.raoulvdberge.refinedstorage.gui.control.SideButtonRedstoneMode;
import com.raoulvdberge.refinedstorage.gui.control.SideButtonType;
import com.raoulvdberge.refinedstorage.tile.TileExporter;
@@ -22,8 +21,6 @@ public class GuiExporter extends GuiBase {
addSideButton(new SideButtonCompare(this, TileExporter.COMPARE, IComparer.COMPARE_DAMAGE));
addSideButton(new SideButtonCompare(this, TileExporter.COMPARE, IComparer.COMPARE_NBT));
addSideButton(new SideButtonCompare(this, TileExporter.COMPARE, IComparer.COMPARE_OREDICT));
addSideButton(new SideButtonExporterRegulator(this));
}
@Override

View File

@@ -1,27 +0,0 @@
package com.raoulvdberge.refinedstorage.gui.control;
import com.raoulvdberge.refinedstorage.gui.GuiBase;
import com.raoulvdberge.refinedstorage.tile.TileExporter;
import com.raoulvdberge.refinedstorage.tile.data.TileDataManager;
import net.minecraft.util.text.TextFormatting;
public class SideButtonExporterRegulator extends SideButton {
public SideButtonExporterRegulator(GuiBase gui) {
super(gui);
}
@Override
protected void drawButtonIcon(int x, int y) {
gui.drawTexture(x, y, 64 + (TileExporter.REGULATOR.getValue() ? 16 : 0), 48, 16, 16);
}
@Override
public String getTooltip() {
return GuiBase.t("sidebutton.refinedstorage:exporter.regulator") + "\n" + TextFormatting.GRAY + GuiBase.t(TileExporter.REGULATOR.getValue() ? "gui.yes" : "gui.no");
}
@Override
public void actionPerformed() {
TileDataManager.setParameter(TileExporter.REGULATOR, !TileExporter.REGULATOR.getValue());
}
}

View File

@@ -1,14 +1,9 @@
package com.raoulvdberge.refinedstorage.tile;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeExporter;
import com.raoulvdberge.refinedstorage.container.ContainerExporter;
import com.raoulvdberge.refinedstorage.gui.GuiExporter;
import com.raoulvdberge.refinedstorage.tile.config.IComparable;
import com.raoulvdberge.refinedstorage.tile.config.IType;
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
import net.minecraft.client.Minecraft;
import net.minecraft.item.ItemStack;
import net.minecraft.network.datasync.DataSerializers;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
@@ -17,37 +12,10 @@ import javax.annotation.Nonnull;
public class TileExporter extends TileNode<NetworkNodeExporter> {
public static final TileDataParameter<Integer, TileExporter> COMPARE = IComparable.createParameter();
public static final TileDataParameter<Integer, TileExporter> TYPE = IType.createParameter();
public static final TileDataParameter<Boolean, TileExporter> REGULATOR = new TileDataParameter<>(DataSerializers.BOOLEAN, false, t -> t.getNode().isRegulator(), (t, v) -> {
NetworkNodeExporter exporter = t.getNode();
for (int i = 0; i < exporter.getItemFilters().getSlots() + exporter.getFluidFilters().getSlots(); ++i) {
ItemStack slot = i >= exporter.getItemFilters().getSlots() ? exporter.getFluidFilters().getStackInSlot(i - exporter.getItemFilters().getSlots()) : exporter.getItemFilters().getStackInSlot(i);
if (!slot.isEmpty()) {
slot.setCount(1);
}
}
exporter.setRegulator(v);
exporter.markDirty();
t.world.getMinecraftServer().getPlayerList().getPlayers().stream()
.filter(player -> player.openContainer instanceof ContainerExporter && ((ContainerExporter) player.openContainer).getTile().getPos().equals(t.getPos()))
.forEach(player -> {
((ContainerExporter) player.openContainer).initSlots();
player.openContainer.detectAndSendChanges();
});
}, (initial, p) -> {
if (Minecraft.getMinecraft().currentScreen instanceof GuiExporter) {
((ContainerExporter) ((GuiExporter) Minecraft.getMinecraft().currentScreen).inventorySlots).initSlots();
}
});
public TileExporter() {
dataManager.addWatchedParameter(COMPARE);
dataManager.addWatchedParameter(TYPE);
dataManager.addWatchedParameter(REGULATOR);
}
@Override

View File

@@ -197,8 +197,6 @@ sidebutton.refinedstorage:access_type.0=Insert and extract
sidebutton.refinedstorage:access_type.1=Insert only
sidebutton.refinedstorage:access_type.2=Extract only
sidebutton.refinedstorage:exporter.regulator=Regulator mode
block.refinedstorage:controller.0.name=Controller
block.refinedstorage:controller.1.name=Creative Controller
block.refinedstorage:cable.name=Cable

View File

@@ -196,8 +196,6 @@ sidebutton.refinedstorage:access_type.0=Insertar y extraer
sidebutton.refinedstorage:access_type.1=Solo insertar
sidebutton.refinedstorage:access_type.2=solo extraer
sidebutton.refinedstorage:exporter.regulator=Modo de regulación
block.refinedstorage:controller.0.name=Controlador
block.refinedstorage:controller.1.name=Controlador Creativo
block.refinedstorage:cable.name=Cable

View File

@@ -172,9 +172,6 @@ sidebutton.refinedstorage:access_type.0=Insère and extrait
sidebutton.refinedstorage:access_type.1=Insère seulement
sidebutton.refinedstorage:access_type.2=Extrait seulement
sidebutton.refinedstorage:exporter.regulator=Mode régulateur
sidebutton.refinedstorage:exporter.craft_only=Mode craft uniquement
block.refinedstorage:controller.0.name=Controlleur
block.refinedstorage:controller.1.name=Controlleur créatif
block.refinedstorage:cable.name=Cable

View File

@@ -171,9 +171,6 @@ sidebutton.refinedstorage:access_type.0=입출력
sidebutton.refinedstorage:access_type.1=입력
sidebutton.refinedstorage:access_type.2=출력
sidebutton.refinedstorage:exporter.regulator=조절 모드
sidebutton.refinedstorage:exporter.craft_only=조합 전용 모드
block.refinedstorage:controller.0.name=컨트롤러
block.refinedstorage:controller.1.name=크리에이티브 컨트롤러
block.refinedstorage:cable.name=케이블

View File

@@ -174,9 +174,6 @@ sidebutton.refinedstorage:access_type.0=Inserir e extrair
sidebutton.refinedstorage:access_type.1=Inserir apenas
sidebutton.refinedstorage:access_type.2=Extrair apenas
sidebutton.refinedstorage:exporter.regulator=Modo regulador
sidebutton.refinedstorage:exporter.craft_only=Modo apenas fabricáveis
block.refinedstorage:controller.0.name=Controlador
block.refinedstorage:controller.1.name=Controlador (Modo Criativo)
block.refinedstorage:cable.name=Cabo

View File

@@ -197,8 +197,6 @@ sidebutton.refinedstorage:access_type.0=Вставить и извлечь
sidebutton.refinedstorage:access_type.1=Только вставить
sidebutton.refinedstorage:access_type.2=Только извлечь
sidebutton.refinedstorage:exporter.regulator=Режим регулятора
block.refinedstorage:controller.0.name=Контроллер
block.refinedstorage:controller.1.name=Творческий контроллер
block.refinedstorage:cable.name=Кабель

View File

@@ -175,9 +175,6 @@ sidebutton.refinedstorage:access_type.0=输入输出
sidebutton.refinedstorage:access_type.1=仅输入
sidebutton.refinedstorage:access_type.2=仅输出
sidebutton.refinedstorage:exporter.regulator=监控模式
sidebutton.refinedstorage:exporter.craft_only=仅合成模式
block.refinedstorage:controller.0.name=控制器
block.refinedstorage:controller.1.name=创造控制器
block.refinedstorage:cable.name=线缆