Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
reobf committed Sep 22, 2024
1 parent bb1b735 commit 51ad74a
Show file tree
Hide file tree
Showing 14 changed files with 391 additions and 49 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.18p27'
String versionOverride = '0.0.18p28'
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
2 changes: 2 additions & 0 deletions dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -82,4 +82,6 @@ api("com.github.GTNewHorizons:NotEnoughEnergistics:1.5.1:dev")
api("com.github.GTNewHorizons:ProjectRed:4.9.3-GTNH:dev")
api("com.github.GTNewHorizons:MrTJPCore:1.1.6:dev")

api('com.github.GTNewHorizons:Navigator:1.0.12:dev')
runtimeOnlyNonPublishable(rfg.deobf('maven.modrinth:journeymap:5.2.6'))
}
9 changes: 7 additions & 2 deletions src/main/java/reobf/proghatches/ae/PartAmountMaintainer.java
Original file line number Diff line number Diff line change
Expand Up @@ -551,15 +551,17 @@ protected void phantomClick(ClickData clickData, ItemStack cursorStack) {
.setPos(3+4, 3+18));


builder.widget(new DrawableWidget().setDrawable(GT_UITextures.OVERLAY_BUTTON_REDSTONE_ON).setPos(3+4+20, 3+18).setSize(18,18).setEnabled(s->{on=isOn();return on;})
builder.widget(new DrawableWidget().setDrawable(GT_UITextures.OVERLAY_BUTTON_REDSTONE_ON).setPos(3+4+20, 3+18).setSize(18,18).setEnabled(s->{return on;})
.addTooltip(StatCollector.translateToLocalFormatted("proghatches.amountmaintainer.redstone.state.on",amount))
)
;
builder.widget(new DrawableWidget().setDrawable(GT_UITextures.OVERLAY_BUTTON_REDSTONE_OFF).setPos(3+4+20, 3+18).setSize(18,18).setEnabled(s->!on)
.addTooltip(StatCollector.translateToLocalFormatted("proghatches.amountmaintainer.redstone.state.off"))
)
;
builder.widget(new FakeSyncWidget.BooleanSyncer(()->on, s->on=s));
builder.widget(new FakeSyncWidget.BooleanSyncer(()->{on=isOn(); return on;}, s->on=s)
.setSynced(true, false)
);


ItemStackHandler iss0=new ItemStackHandler(upgrade){
Expand Down Expand Up @@ -728,6 +730,9 @@ public IMEInventory getInv(StorageChannel ch){
this.inv.put(ch,inv);
handlerHash.put(ch, newHandlerHash);
return inv;
}else{

handlerHash.put(ch, 0);
}
return null;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,10 +80,7 @@
import reobf.proghatches.util.ProghatchesUtil;


/**
* @author zyf
*
*/

public class TileCyclicPatternSubmitter extends TileEntity implements IGridProxyable, ICraftingRequester, ITileWithModularUI{
public static final int ALL = 0;
public static final int DIM = 1;
Expand Down Expand Up @@ -287,6 +284,7 @@ public void updateEntity() {
last=null;
index=(index+1);
index=index%SLOT_SIZE;
updateComparator();
}else{
cpu = getCpu(last);}
}
Expand Down Expand Up @@ -339,6 +337,10 @@ public void updateEntity() {



}
private void updateComparator() {
this.getWorldObj().notifyBlocksOfNeighborChange(this.xCoord, this.yCoord, this.zCoord, this.getBlockType());

}
Field task;
{
Expand Down Expand Up @@ -486,7 +488,7 @@ public void jobStateChange(ICraftingLink link) {



int index;
int index=0;

protected class UIFactory {

Expand Down Expand Up @@ -546,7 +548,7 @@ public boolean isItemValid(int slot, ItemStack stack) {

};
Scrollable sc = new Scrollable().setVerticalScroll();
builder.widget(new FakeSyncWidget.IntegerSyncer(() -> index, s -> index = s));
builder.widget(new FakeSyncWidget.IntegerSyncer(() -> index, s ->{ index = s;updateComparator();}));
builder.widget(new FakeSyncWidget.BooleanSyncer(() -> on, s -> on = s));
//builder.widget(new FakeSyncWidget.IntegerSyncer(() -> tankselected, s -> tankselected = s));
final IDrawable[] background = new IDrawable[] { GUITextureSet.DEFAULT.getItemSlot(), GT_UITextures.OVERLAY_SLOT_PATTERN_ME};
Expand Down
35 changes: 34 additions & 1 deletion src/main/java/reobf/proghatches/block/BlockAnchorAlert.java
Original file line number Diff line number Diff line change
@@ -1,18 +1,27 @@
package reobf.proghatches.block;



import appeng.me.GridAccessException;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import journeymap.client.JourneymapClient;
import journeymap.client.model.Waypoint;
import journeymap.client.waypoint.WaypointStore;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ChatComponentTranslation;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
import net.minecraftforge.common.util.FakePlayer;
import reobf.proghatches.main.MyMod;
import reobf.proghatches.net.WayPointMessage;

public class BlockAnchorAlert extends BlockContainer{

Expand All @@ -37,9 +46,33 @@ public void onBlockPlacedBy(World worldIn, int x, int y, int z, EntityLivingBase
}@Override
public boolean onBlockActivated(World worldIn, int x, int y, int z, EntityPlayer player, int side, float subX,
float subY, float subZ) {
if(worldIn.isRemote)return true;
if(worldIn.isRemote){
/*journeymap.client.model.Waypoint deathpoint = journeymap.client.model.Waypoint
.at(x, y, z, Waypoint.Type.Normal,worldIn.provider.dimensionId);
WaypointStore.instance().save(deathpoint);
*/

return true;}




TileAnchorAlert a=((TileAnchorAlert)worldIn.getTileEntity(x, y, z));

if(player.isSneaking()){
try {
MyMod.net.sendTo(new WayPointMessage(((ChunkTrackingGridCahce)
(a).getProxy().getGrid().getCache(IChunkTrackingGridCahce.class)
).improperlyUnloaded), (EntityPlayerMP) player);
} catch (GridAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
a.printUnloaded(player);

return true;}


if(player.getUniqueID().equals(a.owner)==false){
player.addChatComponentMessage(new ChatComponentTranslation("proghatch.chunk_loading_alert.owner"));
return false;}
Expand Down
80 changes: 68 additions & 12 deletions src/main/java/reobf/proghatches/block/ChunkTrackingGridCahce.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
package reobf.proghatches.block;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
Expand All @@ -9,36 +14,47 @@
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArraySet;

import org.apache.commons.io.output.ByteArrayOutputStream;

import appeng.api.networking.IGrid;
import appeng.api.networking.IGridBlock;
import appeng.api.networking.IGridCache;
import appeng.api.networking.IGridHost;
import appeng.api.networking.IGridNode;
import appeng.api.networking.IGridStorage;
import appeng.api.networking.events.MENetworkEventSubscribe;
import appeng.api.util.DimensionalCoord;
import appeng.me.Grid;
import it.unimi.dsi.fastutil.ints.IntArrayList;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagIntArray;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.ChatComponentTranslation;
import net.minecraft.util.IChatComponent;
import net.minecraft.world.World;
import net.minecraft.world.chunk.Chunk;
import net.minecraftforge.common.DimensionManager;
import reobf.proghatches.main.MyMod;
import reobf.proghatches.main.MyMod.Prop;

public class ChunkTrackingGridCahce implements IChunkTrackingGridCahce{
public ChunkTrackingGridCahce(final IGrid g) {
this.myGrid = g;
callbacks.put(this, null);

}
private final IGrid myGrid;

public static WeakHashMap<ChunkTrackingGridCahce,Object> callbacks=new WeakHashMap<>();



static class ChunkInfo implements Cloneable{

public String toString() {
public static class ChunkInfo implements Cloneable,Serializable{

private static final long serialVersionUID = 12312312;
public String toString() {

return chunkx+" "+ chunky+" "+dim;

Expand All @@ -48,8 +64,13 @@ public String toString() {
this.chunky=worldy>>4;
this.dim=w.provider.dimensionId;
}
final int chunkx,chunky;
final int dim;
public ChunkInfo(int worldx,int worldy,int w){
this.chunkx=worldx;
this.chunky=worldy;
this.dim=w;
}
public final int chunkx,chunky;
public final int dim;
@Override
public boolean equals(Object obj) {
if(obj==null)return false;
Expand Down Expand Up @@ -114,26 +135,45 @@ public void addNode(IGridNode gridNode, IGridHost machine) {
if(w==null){
return;//?
}

track.merge(new ChunkInfo(loc.x, loc.z,w), 1, (a,b)->a+b);
ChunkInfo ci=new ChunkInfo(loc.x, loc.z,w);
/*if(improperlyUnloaded.remove(ci)){
//System.out.println(123);
}*/
track.merge(ci, 1, (a,b)->a+b);
}
}


@Override
public void onSplit(IGridStorage destinationStorage) {


populateGridStorage( destinationStorage);
}

@SuppressWarnings("unchecked")
@Override
public void onJoin(IGridStorage sourceStorage) {
NBTTagCompound tag = sourceStorage.dataObject();
//improperlyUnloaded.clear();
if(tag.getTag("improperlyUnloaded") instanceof NBTTagIntArray==false){return;}
int[] x=tag.getIntArray("improperlyUnloaded");
for(int i=0;i<x.length;i+=3){

improperlyUnloaded.add(new ChunkInfo(x[i], x[i+1],(x[i+2])));
}

}

@Override
public void populateGridStorage(IGridStorage destinationStorage) {

NBTTagCompound tag = destinationStorage.dataObject();
IntArrayList arr=new IntArrayList();
improperlyUnloaded.forEach(s->{
arr.add(s.chunkx);
arr.add(s.chunky);
arr.add(s.dim);
});

tag.setIntArray("improperlyUnloaded", arr.toIntArray());

}

Expand Down Expand Up @@ -319,10 +359,11 @@ public void warn(ChunkInfo info,int i){

}


public HashSet<ChunkInfo> improperlyUnloaded=new HashSet<ChunkInfo>();
public void unload(Chunk o) {ChunkInfo info;
Integer tck = track.get(info=new ChunkInfo(o.xPosition<<4, o.zPosition<<4, o.worldObj));
if(tck!=null){
if(tck!=null&&tck>0){
improperlyUnloaded.add(info);
warnAlt(info,tck);
}
}
Expand All @@ -334,6 +375,21 @@ public void unload(World o) {
}
});
}

public void load(Chunk chunk) {
ChunkInfo ci=new ChunkInfo(chunk.xPosition<<4, chunk.zPosition<<4,chunk.worldObj);
if(improperlyUnloaded.remove(ci)){
//System.out.println(123);

};
}

public static void merge(ChunkTrackingGridCahce cache, ChunkTrackingGridCahce cache2) {
if(cache.improperlyUnloaded.isEmpty())
cache.improperlyUnloaded.addAll(cache2.improperlyUnloaded);
else if(cache2.improperlyUnloaded.isEmpty())
cache2.improperlyUnloaded.addAll(cache.improperlyUnloaded);
}



Expand Down
Loading

0 comments on commit 51ad74a

Please sign in to comment.