Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
reobf committed Aug 8, 2024
1 parent e6e24fe commit b9a4768
Show file tree
Hide file tree
Showing 7 changed files with 116 additions and 28 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -373,7 +373,7 @@ catch (Exception ignored) {

// Pulls version first from the VERSION env and then git tag
String identifiedVersion = null
String versionOverride = '0.0.18p3'
String versionOverride = '0.0.18p5'
try {
// Produce a version based on the tag, or for branches something like 0.2.2-configurable-maven-and-extras.38+43090270b6-dirty
if (versionOverride == null) {
Expand Down
41 changes: 26 additions & 15 deletions src/main/java/reobf/proghatches/block/TileIOHub.java
Original file line number Diff line number Diff line change
Expand Up @@ -411,10 +411,13 @@ public Object[] swap(final Context context, final Arguments args) {
final TileIOHub.OCApi database = (TileIOHub.OCApi) env;
database.markDirty();
// do not directly swap ref just in case...
ItemStack[] ia = Arrays.stream(inv).map(ItemStack::copy).toArray(ItemStack[]::new);
ItemStack[] ia = inv.clone();
for(int i=0;i<ia.length;i++){if(ia[i]!=null)ia[i]=ia[i].copy();}
NBTTagCompound[] fa = Arrays.stream(ft).map(s -> s.writeToNBT(new NBTTagCompound()))
.toArray(NBTTagCompound[]::new);
ItemStack[] ib = Arrays.stream(database.TileIOHubthis().inv).map(ItemStack::copy).toArray(ItemStack[]::new);
//ItemStack[] ib = Arrays.stream(database.TileIOHubthis().inv).map(ItemStack::copy).toArray(ItemStack[]::new);
ItemStack[] ib =database.TileIOHubthis().inv.clone();
for(int i=0;i<ib.length;i++){if(ib[i]!=null)ib[i]=ib[i].copy();}
NBTTagCompound[] fb = Arrays.stream(database.TileIOHubthis().ft)
.map(s -> s.writeToNBT(new NBTTagCompound())).toArray(NBTTagCompound[]::new);

Expand Down Expand Up @@ -726,7 +729,9 @@ public IInventory inventory() {
public int optSlot(Arguments args, int n) {
return InventoryAware$class.optSlot(this, args, n);
}

public int selectedSlotIndex() {
return slotselected-1;
}
@Override
public int selectedSlot() {

Expand Down Expand Up @@ -771,7 +776,9 @@ public boolean haveSameFluidType(FluidStack arg0, FluidStack arg1) {
public int optTank(Arguments arg0, int arg1) {
return TankAware$class.optTank(this, arg0, arg1);
}

public int selectedTankIndex() {
return tankselected-1;
}
@Override
public int selectedTank() {

Expand Down Expand Up @@ -1035,7 +1042,7 @@ public Object[] sendItems(final Context context, final Arguments args) {
if (invRobot.getSizeInventory() <= 0) {
return new Object[] { 0 };
}
final ItemStack stack = invRobot.getStackInSlot(selectedSlot());
final ItemStack stack = invRobot.getStackInSlot(selectedSlotIndex());
final IMEMonitor<IAEItemStack> inv = this.getItemInventory();
if (stack == null || inv == null) {
return new Object[] { 0 };
Expand All @@ -1050,17 +1057,17 @@ public Object[] sendItems(final Context context, final Arguments args) {
if (notInjected == null) {
stack.stackSize -= amount;
if (stack.stackSize <= 0) {
invRobot.setInventorySlotContents(selectedSlot(), (ItemStack) null);
invRobot.setInventorySlotContents(selectedSlotIndex(), (ItemStack) null);
} else {
invRobot.setInventorySlotContents(selectedSlot(), stack);
invRobot.setInventorySlotContents(selectedSlotIndex(), stack);
}
array = new Object[] { amount };
} else {
stack.stackSize = stack.stackSize - amount + (int) notInjected.getStackSize();
if (stack.stackSize <= 0) {
invRobot.setInventorySlotContents(selectedSlot(), (ItemStack) null);
invRobot.setInventorySlotContents(selectedSlotIndex(), (ItemStack) null);
} else {
invRobot.setInventorySlotContents(selectedSlot(), stack);
invRobot.setInventorySlotContents(selectedSlotIndex(), stack);
}
array = new Object[] { stack2.stackSize - notInjected.getStackSize() };
}
Expand All @@ -1074,7 +1081,7 @@ public Object[] requestItems(final Context context, final Arguments args) {
final String address = args.checkString(0);
final int entry = args.checkInteger(1);
final int amount = args.optInteger(2, 64);
final int selected = selectedSlot();
final int selected = selectedSlotIndex();
final IInventory invRobot = TileIOHub.this;
if (invRobot.getSizeInventory() <= 0) {
return new Object[] { 0 };
Expand Down Expand Up @@ -1150,7 +1157,7 @@ public IMEMonitor<IAEFluidStack> getFluidInventory() {
@Callback(doc = "function([number:amount]):number -- Transfer selected fluid to your ae system.")
public Object[] sendFluids(final Context context, final Arguments args) {
markDirty();
final int selected = selectedTank();
final int selected = selectedTankIndex();
final MultiTank tanks = tank();
if (tanks.tankCount() <= 0) {
return new Object[] { 0 };
Expand Down Expand Up @@ -1186,7 +1193,7 @@ public Object[] requestFluids(final Context context, final Arguments args) {
final int entry = args.checkInteger(1);
final int amount = args.optInteger(2, 1000);
final MultiTank tanks = tank();
final int selected = selectedTank();
final int selected = selectedTankIndex();
if (tanks.tankCount() <= 0) {
return new Object[] { 0 };
}
Expand Down Expand Up @@ -1347,11 +1354,15 @@ public boolean isItemValidForSlot(int index, ItemStack stack) {

return true;
}

private boolean sameFluid(FluidStack fs1,FluidStack fs2){
if(fs1==null||fs2==null){return false;}

return fs1.getFluid()==fs2.getFluid();
}
@Override
public int fill(ForgeDirection from, FluidStack resource, boolean doFill) {
for (FluidTank f : ft) {
if (f.getFluid().getFluid() == resource.getFluid()) {
if (sameFluid(f.getFluid(), resource)) {
int suc = f.fill(resource, doFill);
if (suc > 0)
return suc;
Expand All @@ -1371,7 +1382,7 @@ public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrai
int suc = 0;
int todo = resource.amount;
for (FluidTank f : ft) {
if (f.getFluid().getFluid() == resource.getFluid()) {
if (sameFluid(f.getFluid(), resource)) {
int tmp;
suc += (tmp = f.drain(todo, doDrain).amount);
todo -= tmp;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -744,10 +744,11 @@ public void chanRender(final MENetworkChannelsChanged changedChannels) {
public void updateChannels(final MENetworkChannelsChanged changedChannels) {
this.updateStatus();
}
static MENetworkCellArrayUpdate event=new MENetworkCellArrayUpdate();
protected void updateStatus() {

try {
this.getProxy().getGrid().postEvent(new MENetworkCellArrayUpdate());
this.getProxy().getGrid().postEvent(event);
} catch (GridAccessException e) {

e.printStackTrace();
Expand Down
18 changes: 15 additions & 3 deletions src/main/java/reobf/proghatches/main/Config.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.MethodType;
import java.lang.reflect.InvocationTargetException;
import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedList;
Expand Down Expand Up @@ -72,8 +73,12 @@ public static void get(GT_Multiblock_Tooltip_Builder obj, String key, boolean de
try (InputStream in = (defaulted ? getInputEN : getInput).apply(key)) {
if (in == null) {
if (defaulted) {
obj.addMachineType("!!!error!!! failed to translate")
.toolTipFinisher("do not remove en_US folder!");
obj.addMachineType("!!!error!!! failed to translate");
obj.getClass().getMethod("toolTipFinisher", String.class).invoke(obj,"do not remove en_US folder!");




return;
}
get(obj, key, true);
Expand Down Expand Up @@ -109,7 +114,14 @@ public static void get(GT_Multiblock_Tooltip_Builder obj, String key, boolean de
}

if (Config.appendAddedBy)
obj.toolTipFinisher(LangManager.translateToLocal("programmable_hatches.addedby"));
try {

obj.getClass().getMethod("toolTipFinisher", String.class).invoke(obj,LangManager.translateToLocal("programmable_hatches.addedby"));

} catch (Exception e) {

e.printStackTrace();
}
;
}

Expand Down
2 changes: 2 additions & 0 deletions src/main/java/reobf/proghatches/main/mixin/MixinPlugin.java
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,8 @@ public List<String> getMixins() {
if(ff)retLate.add("MixinNoFuzzyForProgrammingCircuit");
if(ff)retLate.add("MixinHandleProgrammingOnRecipeStart");
retLate.add("MixinCraftFromPatternTaskPatch");
retLate.add("MixinGloemCore");


if (FMLLaunchHandler.side().isClient()) {
if (!"true".equals(pp.get("noAEItemSortMixins")))
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
package reobf.proghatches.main.mixin.mixins;

import java.util.List;

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.callback.CallbackInfo;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumRarity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.util.StatCollector;
import thaumcraft.common.entities.golems.ItemGolemCore;

@Mixin(value=ItemGolemCore.class,remap=false)
public class MixinGloemCore {
@Shadow
public IIcon[] icon;




@Inject(method = "registerIcons", at = @At("HEAD"),remap=false)
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister ir,CallbackInfo c) {
icon=new IIcon[icon.length+1];
this.icon[12] = ir.registerIcon("thaumcraft:golem_core_fish");

}

@Inject(method = "getSubItems", at = @At("HEAD"),remap=false)

@SideOnly(Side.CLIENT)
public void getSubItems(Item par1, CreativeTabs par2CreativeTabs, List par3List,CallbackInfo c) {


}




}
28 changes: 20 additions & 8 deletions src/main/java/reobf/proghatches/main/registration/PHRecipes.java
Original file line number Diff line number Diff line change
Expand Up @@ -67,11 +67,11 @@ public class PHRecipes implements Runnable {
{ Infinite },
{ Bio },
{ Optical/*,Nano,*/ },
{ Piko/*,Exotic,*/ },
{ Piko/*,Exotic,*/ },//dreamcraft circuit
{ Quantum/*,Cosmic,*/ },
{ Quantum /*Transcendent*/ } };//Transcendent circuit is not craftable
{ Quantum /*Transcendent*/ } };

/*Materials[][] matNH = {
Materials[][] matNewVersion = {
{ Primitive },
{ Basic },
{ Good },
Expand All @@ -83,12 +83,12 @@ public class PHRecipes implements Runnable {
{ SuperconductorUHV },
{ Infinite },
{ Bio },
{ Nano },
{ Piko },
{ Quantum },
{ Transcendent } }; */

{ Optical },
{ Exotic },
{ Cosmic },
{ Cosmic/*Transcendent*/ }};


ItemList[] multi = { null, null, null, null, Hatch_Input_Multi_2x2_EV, Hatch_Input_Multi_2x2_IV,
Hatch_Input_Multi_2x2_LuV, Hatch_Input_Multi_2x2_ZPM, Hatch_Input_Multi_2x2_UV, Hatch_Input_Multi_2x2_UHV,
Hatch_Input_Multi_2x2_UEV,
Expand All @@ -101,6 +101,18 @@ public void run() {

if(Config.skipRecipeAdding)return;

if(
GameRegistry.findItem("dreamcraft","item.PolychromePikoCircuit")!=null
){
MyMod.LOG.info("Found new dreamcraft Nano-Piko-Quantum circuit, use oredict: Exotic-Cosmic-Transcendent.");
mat=matNewVersion;}
else{
MyMod.LOG.info("Old version.");

}
//You just like breaking changes, isn't that true, GTNH dev?


IRecipe rec = new ShapedOreRecipe(new ItemStack(MyMod.plunger),"CRR","TSR","Q F",
'R',"plateAnyRubber",
'C',"craftingToolWireCutter",
Expand Down

0 comments on commit b9a4768

Please sign in to comment.