Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
reobf committed Jun 28, 2024
1 parent ac91161 commit 6aee4cc
Show file tree
Hide file tree
Showing 18 changed files with 341 additions and 37 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.16p2'
String versionOverride = '0.0.17'
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
7 changes: 5 additions & 2 deletions dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ api("com.github.GTNewHorizons:NotEnoughEnergistics:1.5.1:dev")


api("com.github.GTNewHorizons:Avaritia:1.49:dev")
api('com.github.GTNewHorizons:GigaGramFab:0.3.19:dev')

api('com.github.GTNewHorizons:Angelica:1.0.0-alpha42:api') { transitive = false }
api("com.github.GTNewHorizons:AppleCore:3.3.0:dev") { transitive = false }
api("com.github.GTNewHorizons:BuildCraft:7.1.39:dev") { transitive = false }
Expand All @@ -70,8 +70,11 @@ api('com.github.GTNewHorizons:GigaGramFab:0.3.19:dev')
api("com.google.auto.value:auto-value-annotations:1.10.1") { transitive = false }
annotationProcessor("com.google.auto.value:auto-value:1.10.1")
api('com.github.GTNewHorizons:GTplusplus:1.11.58:dev')

api("com.github.GTNewHorizons:OpenComputers:1.9.14-GTNH:dev")
api('com.github.GTNewHorizons:GT5-Unofficial:5.09.45.163:dev')
api("com.github.GTNewHorizons:ForgeMultipart:1.4.8:dev") { transitive = false }

api("com.github.GTNewHorizons:CraftTweaker:3.3.1:dev") { transitive = false }
api('com.github.GTNewHorizons:GigaGramFab:0.3.19:dev')
}
Original file line number Diff line number Diff line change
Expand Up @@ -149,9 +149,10 @@ public boolean isBusy() {

@Override
public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {

if (aBaseMetaTileEntity.getWorld().isRemote == false)
lab: if (aTick % 20 == ran) {// check every 1s

legacy=false;
if (snapshot != null) {
for (int i = 0; i < snapshot.length; i++) {
if (ItemStack.areItemStacksEqual(snapshot[i], mInventory[i]) == false) {
Expand Down Expand Up @@ -192,7 +193,7 @@ public void returnItems() {
public void onScrewdriverRightClick(ForgeDirection side, EntityPlayer aPlayer, float aX, float aY, float aZ,
ItemStack aTool) {
patternDirty=true;
legacy=!legacy;
if(legacy==true)legacy=!legacy;
postEvent();
GT_Utility.sendChatToPlayer(aPlayer, "Legacy Mode:" + legacy);
}
Expand Down Expand Up @@ -554,7 +555,7 @@ public void loadNBTData(NBTTagCompound aNBT) {
;
customName=aNBT.getString("customName");
disabled = aNBT.getBoolean("disabled");
legacy=aNBT.getBoolean("legacy");
legacy=false;//aNBT.getBoolean("legacy");
if(aNBT.hasKey("tech"))
tech=aNBT.getInteger("tech");
else
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,10 @@ public boolean patternDirty() {

int index;
static public Map<Integer,Collection<ItemStack>> prefab=new HashMap<>();
static{
static boolean init;
static void init(){
if(init==true)return;
init=true;
reg(0,GregTech_API.getConfigurationCircuitList(100));
ItemList[][] all = new ItemList[][]{{
Shape_Mold_Bottle,
Expand Down Expand Up @@ -231,6 +234,7 @@ static private void reg(int a,Collection<ItemStack> raw){

@Override
public Collection<ItemStack> getCircuit() {
init();
return prefab.get(index);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ public void registerIcons(IIconRegister register) {
icons[mark(1)] = register.registerIcon("proghatches:cover1");
icons[2] = register.registerIcon("proghatches:cover2");//disabled
icons[mark(3)] = register.registerIcon("proghatches:cover2");
icons[mark(4)] = register.registerIcon("proghatches:cover2");
icons[mark(4)] = register.registerIcon("proghatches:cover0");
icons[mark(32)] = register.registerIcon("proghatches:cover32");
icons[mark(33)] = register.registerIcon("proghatches:cover33");
icons[mark(34)] = register.registerIcon("proghatches:cover34");
Expand Down
140 changes: 140 additions & 0 deletions src/main/java/reobf/proghatches/item/ItemFixer.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
package reobf.proghatches.item;

import org.spongepowered.libraries.com.google.common.base.Optional;

import appeng.api.implementations.ICraftingPatternItem;
import appeng.api.networking.IGrid;
import appeng.api.networking.IGridHost;
import appeng.api.networking.IGridNode;
import appeng.api.parts.IPartHost;
import appeng.core.localization.GuiText;
import appeng.helpers.IInterfaceHost;
import appeng.helpers.PatternHelper;
import appeng.items.misc.ItemEncodedPattern;
import appeng.me.GridAccessException;
import appeng.me.helpers.IGridProxyable;
import appeng.util.Platform;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.ChatComponentTranslation;
import net.minecraft.util.IChatComponent;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
import reobf.proghatches.main.MyMod;
import reobf.proghatches.main.mixin.MixinCallback;

public class ItemFixer extends Item{
@Override
public boolean hasEffect(ItemStack par1ItemStack, int pass) {

return true;
}

@Override
public boolean onItemUse(ItemStack p_77648_1_, EntityPlayer p_77648_2_, World w, int x,
int y, int z, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_) {

p_77648_2_.swingItem();
if(w.isRemote)return true;

TileEntity te = w.getTileEntity(x, y, z);
IGrid g = null;
if(te instanceof IGridProxyable){

try {
g=(((IGridProxyable) te).getProxy().getGrid());
} catch (Exception e) {

}
}
if(te instanceof IGridHost){

if(g==null){

IGridNode n=((IGridHost) te).getGridNode(ForgeDirection.UP);
if(n!=null)
g=n.getGrid();


}

}
if(g!=null){
int cnt[]=new int[]{0};

g.getNodes().forEach(s->{

IGridHost host = s.getMachine();

//System.out.println(host);
//System.out.println(host instanceof IInterfaceHost);

if(host instanceof IInterfaceHost)
fix((IInterfaceHost) host,()->cnt[0]++);
});

System.out.println("Player tried to use fixer to fix patterns, if this info spams in log and server gets laggy, blame 'em.");
System.out.println("player:"+p_77648_2_.getDisplayName()+",fix:"+cnt[0]+",dim:"+p_77648_2_.getEntityWorld().provider.dimensionId);
p_77648_2_.addChatMessage(new ChatComponentTranslation("proghatch.itemfixer.info",cnt[0]));
if(cnt[0]==0)p_77648_2_.addChatMessage(new ChatComponentTranslation("proghatch.itemfixer.warn"));

}


return true;
}

public ItemStack fixCircuit(ItemStack is,Runnable succ){
if(is.getItem()!=MyMod.progcircuit)return null;
int ver=ItemProgrammingCircuit.isNew(is);
if(ver==0||ver==1){
if( MixinCallback.fixCircuitTag(is.stackTagCompound)){
succ.run();
}
}
return is;
}
public ItemStack fix(ItemStack is,Runnable succ){
//ICraftingPatternItem item=(ICraftingPatternItem) is.getItem();
final ItemStack unknownItem = new ItemStack(Blocks.fire);
unknownItem.setStackDisplayName(GuiText.UnknownItem.getLocal());

//item.getPatternForItem(is, null);
final NBTTagCompound encodedValue = (NBTTagCompound) is.getTagCompound();
NBTTagList in = encodedValue.getTagList("in", 10);
for (int x = 0; x < in.tagCount(); x++) {
ItemStack gs = Platform.loadItemStackFromNBT(in.getCompoundTagAt(x));
if(gs==null)continue;
gs=fixCircuit(gs,succ);
if(gs==null)continue;
in.func_150304_a(x, Platform.writeItemStackToNBT(gs, new NBTTagCompound()));
}





return is.copy();
}
public void fix(IInterfaceHost iface,Runnable succ){
iface.getTileEntity().markDirty();
IInventory inv = iface.getPatterns();
for(int i=0;i<inv.getSizeInventory();i++){
ItemStack is = inv.getStackInSlot(i);
if(is!=null&&is.getItem() instanceof ItemEncodedPattern){
inv.setInventorySlotContents(i,fix(is.copy(),succ));

}
}

}


}
38 changes: 30 additions & 8 deletions src/main/java/reobf/proghatches/item/ItemProgrammingCircuit.java
Original file line number Diff line number Diff line change
Expand Up @@ -78,12 +78,21 @@ public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List p
String sid=Optional.ofNullable(p_77624_1_.stackTagCompound).map(s->s.getCompoundTag("targetCircuit"))
.map(s->s.getString("string_id")).orElse(null);

boolean iid=Optional.ofNullable(p_77624_1_.stackTagCompound).map(s->s.getCompoundTag("targetCircuit"))
.filter(s->s.hasKey("id")).isPresent();


getCircuit(p_77624_1_).filter(s -> s.getItem() != null).ifPresent(s -> {

FontRenderer fr = Minecraft.getMinecraft().fontRenderer;
ArrayList<String> ls = new ArrayList<>();
if(sid!=null&&!sid.isEmpty()){ls.add(sid+"@"+s.getItemDamage());}
else {ls.add("§c"+StatCollector.translateToLocal("item.prog_circuit.legacy"));}
if(sid!=null&&!sid.isEmpty()){
ls.add(sid+"@"+s.getItemDamage());
if(iid)ls.add("§c"+StatCollector.translateToLocal("item.prog_circuit.legacy")+" (v2)");
}
else {
ls.add("§c"+StatCollector.translateToLocal("item.prog_circuit.legacy")+" (v1)");
}
ls.add(s.getDisplayName());
s.getItem().addInformation(s, p_77624_2_, ls, p_77624_4_);

Expand Down Expand Up @@ -113,6 +122,7 @@ public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List p
if (op.get().getItem() == MyMod.progcircuit) {

p_77624_3_.add(LangManager.translateToLocal("item.prog_circuit.name.tooltip.warn"));

}

}
Expand All @@ -137,9 +147,11 @@ public static ItemStack wrap(ItemStack is,int i,boolean legacy) {
NBTTagCompound tag = (NBTTagCompound) is.writeToNBT(new NBTTagCompound()).copy();

if(!legacy)tag.setString("string_id", Item.itemRegistry.getNameForObject(is.getItem()));
//System.out.println(tag);
if(tag.hasKey("string_id"))
tag.removeTag("id");
iss.stackTagCompound.setTag("targetCircuit",tag );


}
return iss;

Expand All @@ -160,11 +172,21 @@ public static ItemStack parse(NBTTagCompound tag){

}

public static boolean isNew(ItemStack is) {
if(is.getTagCompound()==null)return true;
String tg = Optional.ofNullable(is).map(ItemStack::getTagCompound)
.map(tag -> tag.getCompoundTag("targetCircuit")).map(t->t.getString("string_id")).orElse("");
return !tg.isEmpty();
public static int isNew(ItemStack is) {
if(is.getTagCompound()==null)return 2;//V3
if(!is.getTagCompound().hasKey("targetCircuit"))return 999;//?
boolean s = is.getTagCompound().getCompoundTag("targetCircuit").hasKey("string_id");
boolean i = is.getTagCompound().getCompoundTag("targetCircuit").hasKey("id");

if(s&&i){return 1;}//V2
if(!s&&i){return 0;}//V1
if(s&&!i){return 2;}//V3
return 999;//?





}
public static Optional<ItemStack> getCircuit(ItemStack is) {
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -263,8 +263,6 @@ public void detectAndSendChanges(boolean init) {
StatCollector.translateToLocal("item.prog_toolkit.legacywarning.3")
));;


// sw.setTicker(s->{});
builder.widget(sw2.setPos(getGUIWidth()- 18-3, 3));
}

Expand Down
4 changes: 4 additions & 0 deletions src/main/java/reobf/proghatches/main/CommonProxy.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import reobf.proghatches.item.ItemBookTutorial;
import reobf.proghatches.item.ItemDedicatedCover;
import reobf.proghatches.item.ItemFakePattern;
import reobf.proghatches.item.ItemFixer;
import reobf.proghatches.item.ItemProgrammingCircuit;
import reobf.proghatches.item.ItemProgrammingToolkit;
import reobf.proghatches.item.ItemSmartArm;
Expand Down Expand Up @@ -59,6 +60,9 @@ public void preInit(FMLPreInitializationEvent event) {
GameRegistry.registerItem(
MyMod.fakepattern = new ItemFakePattern().setUnlocalizedName("fake_pattern").setTextureName("?"),
"fake_pattern");
GameRegistry.registerItem(
new ItemFixer().setUnlocalizedName("proghatch_circuit_fixer").setTextureName("ic2:itemToolWrench"),
"proghatch_circuit_fixer");
GameRegistry.registerItem(
MyMod.toolkit = new ItemProgrammingToolkit().setUnlocalizedName("prog_toolkit").setTextureName("?"),
"prog_toolkit");
Expand Down
29 changes: 28 additions & 1 deletion src/main/java/reobf/proghatches/main/Config.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

import net.minecraft.launchwrapper.Launch;
import net.minecraftforge.common.config.Configuration;
import net.minecraftforge.common.config.Property;
import reobf.proghatches.lang.LangManager;

import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
Expand All @@ -30,9 +31,31 @@ public class Config {
public static boolean experimentalOptimize=true;
public static boolean sleep=true;
public static boolean MECover=false;
public static boolean fixCircuit=false;
public static boolean newConfig=false;
public static void synchronizeConfiguration(File configFile) {
if(configFile.exists()==false){
newConfig=true;
}
Configuration configuration = new Configuration(configFile);


/*if(!configuration.hasKey(lang, greeting)){
fixCircuit=true;
};
*/
fixCircuit=configuration.getBoolean("FixCircuit", "covert", fixCircuit,
"Covert old version circuit to new one. Value resets to false after each session. Missing is considered as true.");

Property neo= new Property("FixCircuit", "false", Property.Type.BOOLEAN);
neo.set(false);
neo.comment="Covert old version circuit to new one. Value resets to false after each session. Missing is considered as true.";
configuration.getCategory("covert").replace("FixCircuit",
neo
);
if(newConfig)fixCircuit=false;
System.out.println("newConfig?:"+newConfig);
System.out.println("fix?:"+fixCircuit);

metaTileEntityOffset = configuration.getInt("MetaTEOffset", "ID", metaTileEntityOffset, 14301, 29999,
"The GT MetaTE ID used by this mod, will use range:[offset,offset+200], make sure it's in [14301,14999] or [17000,29999]");
configuration.addCustomCategoryComment("ID", "Configurable ID settings, DO NOT change it until necessary.");
Expand All @@ -49,6 +72,9 @@ public static void synchronizeConfiguration(File configFile) {
MECover = configuration.getBoolean("MECover on MEHatch", "Experimental", MECover,
"When on, ME Cover will be allowed to be placed on machine that requires ME channel.");




if (configuration.hasChanged()) {
configuration.save();
}
Expand Down Expand Up @@ -252,5 +278,6 @@ public static String[] get(String key, Map<String, Object> fmtter, boolean defau
+ LangManager.translateToLocal("programmable_hatches.gt.lang.dir") + "/" + s + ".lang");




}
Loading

0 comments on commit 6aee4cc

Please sign in to comment.