From 9c845de902585b7c3a10ac16da4a511d3f46c97c Mon Sep 17 00:00:00 2001 From: reobf <2215595288@qq.com> Date: Sat, 19 Oct 2024 23:48:37 +0800 Subject: [PATCH] update --- .../proghatches/ae/BlockStorageProxy.java | 2 + .../proghatches/ae/TileStorageProxy.java | 11 +-- .../PriorityFilterInputBusME.java | 69 ++++++++++++++++++- .../PriorityFilterInputHatchME.java | 59 +++++++++++++++- .../main/registration/PHRecipes.java | 39 +++++++++++ .../assets/proghatches/lang/en_US.lang | 5 +- .../assets/proghatches/lang/zh_CN.lang | 6 +- 7 files changed, 182 insertions(+), 9 deletions(-) diff --git a/src/main/java/reobf/proghatches/ae/BlockStorageProxy.java b/src/main/java/reobf/proghatches/ae/BlockStorageProxy.java index 5884cd5..621654f 100644 --- a/src/main/java/reobf/proghatches/ae/BlockStorageProxy.java +++ b/src/main/java/reobf/proghatches/ae/BlockStorageProxy.java @@ -45,6 +45,7 @@ public TileEntity createNewTileEntity(World worldIn, int meta) { TileStorageProxy te=new TileStorageProxy(); if(meta==1)te.fluid=true; + if(meta==2)te.noAdvConfig=true; return te; } @@ -89,6 +90,7 @@ public void getSubBlocks(Item itemIn, CreativeTabs tab, List list) { list.add(new ItemStack(itemIn, 1, 0)); list.add(new ItemStack(itemIn, 1, 1)); + list.add(new ItemStack(itemIn, 1, 2)); } @Override diff --git a/src/main/java/reobf/proghatches/ae/TileStorageProxy.java b/src/main/java/reobf/proghatches/ae/TileStorageProxy.java index 67c01f6..b2ca56a 100644 --- a/src/main/java/reobf/proghatches/ae/TileStorageProxy.java +++ b/src/main/java/reobf/proghatches/ae/TileStorageProxy.java @@ -148,7 +148,7 @@ public DimensionalCoord getLocation() { ItemStack[] is=new ItemStack[36]; -int fuzzmode; +int fuzzmode=2; //0 disabled //1 strict //4 ignore nbt @@ -157,7 +157,8 @@ public DimensionalCoord getLocation() { String dict=""; String lastdict=""; Predicate dictfilter; -FluidStack[] fs=new FluidStack[36]; +FluidStack[] fs=new FluidStack[36]; +public boolean noAdvConfig; public Predicate itemFilter(){ return @@ -766,6 +767,7 @@ public void readFromNBT(NBTTagCompound compound) { dict= compound.getString("dict" ); fuzzmode=compound.getInteger("fuzzmode"); fluid=compound.getBoolean("fluid"); + noAdvConfig=compound.getBoolean("noAdvConfig"); NBTTagList nbttaglist = compound.getTagList("Items", 10); Arrays.fill(this.is,null); @@ -789,6 +791,7 @@ public void writeToNBT(NBTTagCompound compound) { compound.setString("dict", dict); compound.setInteger("fuzzmode", fuzzmode); compound.setBoolean("fluid", fluid); + compound.setBoolean("noAdvConfig",noAdvConfig); NBTTagList nbttaglist = new NBTTagList(); for (int i = 0; i < this.is.length; ++i) @@ -880,7 +883,7 @@ public ModularWindow createWindow(UIBuildContext buildContext) { ; - + if(!noAdvConfig) builder.widget( new CycleButtonWidget().setLength(5) .setSetter(s->{this.fuzzmode=s;gridChanged();}) @@ -902,7 +905,7 @@ public ModularWindow createWindow(UIBuildContext buildContext) { .setSize(18, 18) ); - + if(!noAdvConfig) builder.widget(new TextFieldWidget() .setGetter(()->dict) diff --git a/src/main/java/reobf/proghatches/gt/metatileentity/PriorityFilterInputBusME.java b/src/main/java/reobf/proghatches/gt/metatileentity/PriorityFilterInputBusME.java index 0ffe656..6f8b0c7 100644 --- a/src/main/java/reobf/proghatches/gt/metatileentity/PriorityFilterInputBusME.java +++ b/src/main/java/reobf/proghatches/gt/metatileentity/PriorityFilterInputBusME.java @@ -28,7 +28,11 @@ import appeng.api.config.Actionable; import appeng.api.config.FuzzyMode; +import appeng.api.config.PriorityCardMode; +import appeng.api.config.Settings; +import appeng.api.networking.IGridNode; import appeng.api.networking.security.BaseActionSource; +import appeng.api.networking.security.IActionHost; import appeng.api.storage.ICellProvider; import appeng.api.storage.IMEInventoryHandler; import appeng.api.storage.IMEMonitor; @@ -36,10 +40,13 @@ import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IAEStack; import appeng.api.storage.data.IItemList; +import appeng.core.AELog; +import appeng.helpers.IPriorityHost; import appeng.me.GridAccessException; import appeng.me.cache.GridStorageCache; import appeng.me.helpers.AENetworkProxy; import appeng.me.storage.MEInventoryHandler; +import appeng.util.Platform; import appeng.util.item.AEItemStack; import appeng.util.item.MeaningfulItemIterator; import gregtech.api.GregTech_API; @@ -53,13 +60,16 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.StatCollector; +import net.minecraftforge.common.util.ForgeDirection; import reobf.proghatches.gt.metatileentity.util.IDataCopyablePlaceHolder; import reobf.proghatches.gt.metatileentity.util.IDataCopyablePlaceHolderSuper; import reobf.proghatches.gt.metatileentity.util.IMEHatchOverrided; import reobf.proghatches.gt.metatileentity.util.polyfill.NumericWidget; import reobf.proghatches.main.registration.Registration; +import reobf.proghatches.util.ProghatchesUtil; -public class PriorityFilterInputBusME extends GT_MetaTileEntity_Hatch_InputBus_ME implements IMEHatchOverrided,IDataCopyablePlaceHolderSuper{ +public class PriorityFilterInputBusME extends GT_MetaTileEntity_Hatch_InputBus_ME implements IMEHatchOverrided,IDataCopyablePlaceHolderSuper, +IPriorityHost,IActionHost{ public PriorityFilterInputBusME(int aID, /*boolean autoPullAvailable,*/ String aName, String aNameRegional) { super(aID, /*autoPullAvailable*/true, aName, aNameRegional); @@ -351,4 +361,61 @@ public boolean pasteCopiedData(EntityPlayer player, NBTTagCompound nbt) { public String getCopiedDataIdentifier(EntityPlayer player) { return IDataCopyablePlaceHolderSuper.super.getCopiedDataIdentifier(player); } + + + + @Override + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { + + + if(ProghatchesUtil.handleUse(aPlayer, this))return true; + + + return super.onRightclick(aBaseMetaTileEntity, aPlayer); + } + + + private static boolean isEditMode(ItemStack stack) { + + NBTTagCompound tagCompound = Platform.openNbtData(stack); + try { + if (tagCompound.hasKey("PRIORITY_CARD_MODE")) { + return (tagCompound.getString("PRIORITY_CARD_MODE")).equals("EDIT"); + } + } catch (final IllegalArgumentException e) { + AELog.debug(e); + } + return true; + } + @Override + public int getPriority() { + + return filter; + } + @Override + public void setPriority(int newValue) { + filter=newValue; + markDirty(); + + } + @Override + public IGridNode getGridNode(ForgeDirection dir) { + + return this.getProxy().getNode(); + } + @Override + public void securityBreak() { + + + } + @Override + public IGridNode getActionableNode() { + + return this.getProxy().getNode(); + } + + + + + } diff --git a/src/main/java/reobf/proghatches/gt/metatileentity/PriorityFilterInputHatchME.java b/src/main/java/reobf/proghatches/gt/metatileentity/PriorityFilterInputHatchME.java index 5822c45..340b91c 100644 --- a/src/main/java/reobf/proghatches/gt/metatileentity/PriorityFilterInputHatchME.java +++ b/src/main/java/reobf/proghatches/gt/metatileentity/PriorityFilterInputHatchME.java @@ -28,7 +28,9 @@ import appeng.api.config.Actionable; import appeng.api.config.FuzzyMode; +import appeng.api.networking.IGridNode; import appeng.api.networking.security.BaseActionSource; +import appeng.api.networking.security.IActionHost; import appeng.api.storage.ICellProvider; import appeng.api.storage.IMEInventoryHandler; import appeng.api.storage.IMEMonitor; @@ -36,10 +38,13 @@ import appeng.api.storage.data.IAEFluidStack; import appeng.api.storage.data.IAEStack; import appeng.api.storage.data.IItemList; +import appeng.core.AELog; +import appeng.helpers.IPriorityHost; import appeng.me.GridAccessException; import appeng.me.cache.GridStorageCache; import appeng.me.helpers.AENetworkProxy; import appeng.me.storage.MEInventoryHandler; +import appeng.util.Platform; import appeng.util.item.AEItemStack; import appeng.util.item.MeaningfulItemIterator; import gregtech.api.GregTech_API; @@ -54,14 +59,17 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.StatCollector; +import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; import reobf.proghatches.gt.metatileentity.util.IDataCopyablePlaceHolder; import reobf.proghatches.gt.metatileentity.util.IDataCopyablePlaceHolderSuper; import reobf.proghatches.gt.metatileentity.util.IMEHatchOverrided; import reobf.proghatches.gt.metatileentity.util.polyfill.NumericWidget; import reobf.proghatches.main.registration.Registration; +import reobf.proghatches.util.ProghatchesUtil; -public class PriorityFilterInputHatchME extends GT_MetaTileEntity_Hatch_Input_ME implements IMEHatchOverrided,IDataCopyablePlaceHolderSuper{ +public class PriorityFilterInputHatchME extends GT_MetaTileEntity_Hatch_Input_ME implements IMEHatchOverrided,IDataCopyablePlaceHolderSuper, +IPriorityHost,IActionHost{ public PriorityFilterInputHatchME(int aID, /*boolean autoPullAvailable,*/ String aName, String aNameRegional) { super(aID, /*autoPullAvailable*/true, aName, aNameRegional); @@ -350,4 +358,53 @@ public boolean pasteCopiedData(EntityPlayer player, NBTTagCompound nbt) { public String getCopiedDataIdentifier(EntityPlayer player) { return IDataCopyablePlaceHolderSuper.super.getCopiedDataIdentifier(player); } + @Override + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { + + + if(ProghatchesUtil.handleUse(aPlayer, this))return true; + + + return super.onRightclick(aBaseMetaTileEntity, aPlayer); + } + + + private static boolean isEditMode(ItemStack stack) { + + NBTTagCompound tagCompound = Platform.openNbtData(stack); + try { + if (tagCompound.hasKey("PRIORITY_CARD_MODE")) { + return (tagCompound.getString("PRIORITY_CARD_MODE")).equals("EDIT"); + } + } catch (final IllegalArgumentException e) { + AELog.debug(e); + } + return true; + } + @Override + public int getPriority() { + + return filter; + } + @Override + public void setPriority(int newValue) { + filter=newValue; + markDirty(); + } + @Override + public IGridNode getGridNode(ForgeDirection dir) { + + return this.getProxy().getNode(); + } + @Override + public void securityBreak() { + + + } + @Override + public IGridNode getActionableNode() { + + return this.getProxy().getNode(); + } + } diff --git a/src/main/java/reobf/proghatches/main/registration/PHRecipes.java b/src/main/java/reobf/proghatches/main/registration/PHRecipes.java index 02d747a..5355620 100644 --- a/src/main/java/reobf/proghatches/main/registration/PHRecipes.java +++ b/src/main/java/reobf/proghatches/main/registration/PHRecipes.java @@ -1597,6 +1597,45 @@ public void run() { , new ItemStack(GregTech_API.sBlockMachines,1,Config.metaTileEntityOffset + Registration.PFilterHatchME) , SECONDS*120, (int) GT_Values.VP[9]); + + + GT_Values.RA.stdBuilder() + .itemInputs( + new ItemStack(ItemAndBlockHolder.INTERFACE), + ItemList.FluidFilter.get(36) + ) + .itemOutputs(new ItemStack(MyMod.storageproxy,1,1) ) + .duration(100 * SECONDS) + .eut(480*4*4) + .addTo(RecipeMaps.assemblerRecipes); + + + for(ItemList item: new ItemList[]{ItemList.ItemFilter_Import,ItemList.ItemFilter_Export}){ + GT_Values.RA.stdBuilder() + .itemInputs( + Api.INSTANCE.definitions().blocks().iface().maybeStack(1).get(), + item.get(36), + Api.INSTANCE.definitions().materials().cardFuzzy().maybeStack(1).get(), + Api.INSTANCE.definitions().materials().cardOreFilter().maybeStack(1).get() + ) + .itemOutputs(new ItemStack(MyMod.storageproxy,1,0) ) + .duration(100 * SECONDS) + .eut(480*4*4*4) + .addTo(RecipeMaps.assemblerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + Api.INSTANCE.definitions().blocks().iface().maybeStack(1).get(), + item.get(36), + GT_Utility.getIntegratedCircuit(9) + ) + .itemOutputs(new ItemStack(MyMod.storageproxy,1,2) ) + .duration(100 * SECONDS) + .eut(480*4*4) + .addTo(RecipeMaps.assemblerRecipes); + + + } + } } diff --git a/src/main/resources/assets/proghatches/lang/en_US.lang b/src/main/resources/assets/proghatches/lang/en_US.lang index 2e88922..ec659e2 100644 --- a/src/main/resources/assets/proghatches/lang/en_US.lang +++ b/src/main/resources/assets/proghatches/lang/en_US.lang @@ -599,9 +599,12 @@ proghatch.proxy.Strict=Strict Match proghatch.proxy.ignoreNBT=Ignore NBT Tag proghatch.proxy.oredict=Use Oredict proghatch.proxy.passthrough=All items in storage -tile.proghatch.storageproxy.0.name=ME Storage Proxy +tile.proghatch.storageproxy.0.name=ME Storage Proxy(Advanced) tile.proghatch.storageproxy.1.name=ME Fluid Storage Proxy +tile.proghatch.storageproxy.2.name=ME Storage Proxy tile.proghatches.proxy.tooltip.0=1 tile.proghatches.proxy.tooltip.0.0=Provide filtered access to ME Storage Bus tile.proghatches.proxy.tooltip.1=1 tile.proghatches.proxy.tooltip.1.0=Provide filtered access to ME Fluid Storage Bus +tile.proghatches.proxy.tooltip.2=1 +tile.proghatches.proxy.tooltip.2.0=Provide filtered access to ME Storage Bus diff --git a/src/main/resources/assets/proghatches/lang/zh_CN.lang b/src/main/resources/assets/proghatches/lang/zh_CN.lang index acee395..0231b35 100644 --- a/src/main/resources/assets/proghatches/lang/zh_CN.lang +++ b/src/main/resources/assets/proghatches/lang/zh_CN.lang @@ -597,10 +597,12 @@ proghatch.proxy.Strict=严格匹配 proghatch.proxy.ignoreNBT=忽略NBT标签 proghatch.proxy.oredict=使用矿辞 proghatch.proxy.passthrough=所有物品 -tile.proghatch.storageproxy.0.name=ME存储代理 +tile.proghatch.storageproxy.0.name=ME存储代理(进阶) tile.proghatch.storageproxy.1.name=ME流体存储代理 +tile.proghatch.storageproxy.2.name=ME存储代理 tile.proghatches.proxy.tooltip.0=1 tile.proghatches.proxy.tooltip.0.0=向ME存储总线提供受过滤的访问 tile.proghatches.proxy.tooltip.1=1 tile.proghatches.proxy.tooltip.1.0=向ME流体存储总线提供受过滤的访问 - +tile.proghatches.proxy.tooltip.2=1 +tile.proghatches.proxy.tooltip.2.0=向ME存储总线提供受过滤的访问