Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
reobf committed Oct 3, 2024
1 parent ef93437 commit 1ab834d
Show file tree
Hide file tree
Showing 16 changed files with 2,496 additions and 1,218 deletions.
540 changes: 540 additions & 0 deletions src/main/java/reobf/proghatches/gt/metatileentity/DecoyInputBusME.java

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
import java.util.NoSuchElementException;
Expand Down Expand Up @@ -1286,7 +1287,7 @@ public int fill(FluidStack aFluid, boolean doFill) {
if(fluidLimit==0){int oldamount=aFluid.amount;
aFluid=aFluid.copy();
for(ListeningFluidTank tk:this.mStoredFluid){
if(tk.getFluidAmount()==0)tk.setFluid(null);
if(tk.getFluidAmount()==0)tk.setFluidDirect(null);
if((aFluid.amount-=tk.fill(aFluid, doFill))<=0){
break;
};
Expand Down Expand Up @@ -1324,19 +1325,24 @@ public int fill(FluidStack aFluid, boolean doFill) {

int oldamount=aFluid.amount;
aFluid=aFluid.copy();
LinkedList<ListeningFluidTank> tks=new LinkedList<>();
for(ListeningFluidTank tk:this.mStoredFluid){
if(tk.getFluidAmount()==0){
tk.setFluid(null);
if((aFluid.amount-=tk.fill(aFluid, doFill))<=0){
tk.setFluidDirect(null);
tks.add(tk);
if((aFluid.amount-=tk.fillDirect(aFluid, doFill))<=0){
break;
};
}
}
for(ListeningFluidTank tk:this.mStoredFluid){
if((aFluid.amount-=tk.fill(aFluid, doFill))<=0){
tks.add(tk);
if((aFluid.amount-=tk.fillDirect(aFluid, doFill))<=0){
break;
};
}
tks.forEach(s->s.onChange());

return oldamount-aFluid.amount;
}
return 0;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package reobf.proghatches.gt.metatileentity.util;

import appeng.api.config.Actionable;
import appeng.api.networking.security.BaseActionSource;
import appeng.api.storage.IMEMonitor;
import appeng.api.storage.data.IAEStack;

public interface IMEHatchOverrided {
public void overridedBehoviour(int minPull);

public IAEStack overridedExtract(IMEMonitor thiz, IAEStack request, Actionable mode, BaseActionSource src);
}
Original file line number Diff line number Diff line change
Expand Up @@ -36,14 +36,16 @@ public ListeningFluidTank addListener(Runnable c) {

@Override
public int fill(FluidStack resource, boolean doFill) {

int filled = 0;
try {
return super.fill(resource, doFill);
return filled=super.fill(resource, doFill);
} finally {
callback.ifPresent(Runnable::run);
if(filled>0)callback.ifPresent(Runnable::run);
}
}

public void onChange(){
callback.ifPresent(Runnable::run);
}
@Override
public void setFluid(FluidStack fluid) {

Expand Down
3 changes: 2 additions & 1 deletion src/main/java/reobf/proghatches/main/MyMod.java
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,7 @@
import gregtech.api.util.shutdown.SimpleShutDownReason;
import gregtech.common.blocks.GT_Block_Machines;
import gregtech.common.covers.CoverInfo;
import gregtech.common.tileentities.machines.GT_MetaTileEntity_Hatch_InputBus_ME;
import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_HeatExchanger;
import gregtech.crossmod.waila.GregtechWailaDataProvider;
import li.cil.oc.api.Driver;
Expand Down Expand Up @@ -177,7 +178,7 @@ public class MyMod {
public static final Logger LOG = LogManager.getLogger(MODID);
public static MyMod instance;
{
//GT_MetaTileEntity_MultiBlockBase.class.getDeclaredFields();
GT_MetaTileEntity_Hatch_InputBus_ME.class.getDeclaredFields();
instance = this;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,7 @@ public List<String> getMixins() {
retLate.add("part2.MixinRecursiveSlotClickProtection");
retLate.add("part2.MixinMultiPattern");
retLate.add("part2.MixinSplitDetect");
retLate.add("part2.MixinMEBusOverride");
if (FMLLaunchHandler.side().isClient()) {
if (!"true".equals(pp.get("noAEItemSortMixins")))
if(ff)retLate.add("MixinAEItemStackCompare");
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
package reobf.proghatches.main.mixin.mixins.part2;

import java.lang.reflect.Field;

import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.Redirect;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

import appeng.api.config.Actionable;
import appeng.api.networking.security.BaseActionSource;
import appeng.api.storage.IMEMonitor;
import appeng.api.storage.data.IAEItemStack;
import appeng.api.storage.data.IAEStack;
import gregtech.common.tileentities.machines.GT_MetaTileEntity_Hatch_InputBus_ME;
import gregtech.common.tileentities.machines.GT_MetaTileEntity_Hatch_Input_ME;
import reobf.proghatches.gt.metatileentity.util.IMEHatchOverrided;

@Mixin(remap=false,value={GT_MetaTileEntity_Hatch_InputBus_ME.class,
GT_MetaTileEntity_Hatch_Input_ME.class,

})
public class MixinMEBusOverride {
private static Field minAutoPullStackSize;
private static Field minAutoPullAmount;
static {

try {
minAutoPullStackSize= GT_MetaTileEntity_Hatch_InputBus_ME.class.getDeclaredField("minAutoPullStackSize");
minAutoPullAmount= GT_MetaTileEntity_Hatch_Input_ME.class.getDeclaredField("minAutoPullAmount");

minAutoPullAmount.setAccessible(true);
minAutoPullStackSize.setAccessible(true);
} catch (Exception e) {
e.printStackTrace();

}

}

@Inject(method={"refreshItemList"
,"refreshFluidList"
},cancellable=true,at = { @At("HEAD") })
private void refreshItemList(CallbackInfo ci) {
if(this instanceof IMEHatchOverrided){
try {
((IMEHatchOverrided)this).overridedBehoviour(
( (Object)this instanceof GT_MetaTileEntity_Hatch_InputBus_ME?
minAutoPullStackSize:minAutoPullAmount)

.getInt(this));
} catch (Exception e) {
e.printStackTrace();
}
ci.cancel();
}

}

@Redirect(method="endRecipeProcessing"
,

at = @At(value="INVOKE",
target = "extractItems",
remap = false
))
private IAEStack r(IMEMonitor thiz,IAEStack request, Actionable mode, BaseActionSource src) {
if(this instanceof IMEHatchOverrided){
return ((IMEHatchOverrided)this).overridedExtract(thiz,request,mode,src);

}

return (IAEStack) thiz.extractItems(request, mode, src);


}

}
Loading

0 comments on commit 1ab834d

Please sign in to comment.