Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
reobf committed Dec 7, 2024
1 parent 9a228d6 commit f3bc5bc
Show file tree
Hide file tree
Showing 12 changed files with 209 additions and 51 deletions.
2 changes: 1 addition & 1 deletion dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ api("com.github.GTNewHorizons:NotEnoughEnergistics:1.5.1:dev")


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

api("com.github.GTNewHorizons:Avaritiaddons:1.7.1-GTNH: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 Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import static net.minecraftforge.common.util.ForgeDirection.DOWN;
import static net.minecraftforge.common.util.ForgeDirection.UP;

import java.util.List;
import java.util.Map;

import com.gtnewhorizons.modularui.api.UIInfos;
Expand All @@ -25,14 +26,16 @@
import net.minecraft.util.ChatComponentTranslation;
import net.minecraft.util.IIcon;
import net.minecraft.util.MathHelper;
import net.minecraft.util.StatCollector;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.common.util.FakePlayer;
import net.minecraftforge.common.util.ForgeDirection;

import net.minecraftforge.event.ForgeEventFactory;
import reobf.proghatches.block.INameAndTooltips;

public class BlockCyclicPatternSubmitter extends BlockContainer{
public class BlockCyclicPatternSubmitter extends BlockContainer implements INameAndTooltips{

public BlockCyclicPatternSubmitter(Material p_i45386_1_) {
super(p_i45386_1_);
Expand Down Expand Up @@ -189,4 +192,14 @@ public int getComparatorInputOverride(World worldIn, int x, int y, int z, int si

return (ts.index*16)/ts.inv.length;
}
@Override
public void addInformation(ItemStack p_77624_1_, List l) {
l.add(StatCollector.translateToLocal("proghatch.submitter.tooltip.0"));

}
@Override
public String getName(ItemStack p_77624_1_) {
// TODO Auto-generated method stub
return null;
}
}
19 changes: 18 additions & 1 deletion src/main/java/reobf/proghatches/gt/cover/CircuitHolderCover.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import java.util.function.Function;
import java.util.function.Supplier;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.init.Items;
Expand All @@ -20,6 +21,7 @@
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.PacketBuffer;
import net.minecraft.util.StatCollector;
import net.minecraftforge.common.util.ForgeDirection;
import reobf.proghatches.lang.LangManager;
import reobf.proghatches.util.ProghatchesUtil;

Expand Down Expand Up @@ -518,6 +520,21 @@ public Data createDataObject() {

return new Data(new NBTTagCompound());
}
@Override
public boolean allowsCopyPasteTool() {
// TODO Auto-generated method stub
return super.allowsCopyPasteTool();
}
@Override
protected boolean onCoverRightClickImpl(ForgeDirection side, int aCoverID, Data aCoverVariable,
ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) {


return super.onCoverRightClickImpl(side, aCoverID, aCoverVariable, aTileEntity, aPlayer, aX, aY, aZ);
}
@Override
protected boolean onCoverShiftRightClickImpl(ForgeDirection side, int aCoverID, Data aCoverVariable,
ICoverable aTileEntity, EntityPlayer aPlayer) {
// TODO Auto-generated method stub
return super.onCoverShiftRightClickImpl(side, aCoverID, aCoverVariable, aTileEntity, aPlayer);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -1972,7 +1972,16 @@ protected ModularWindow createWindowEx(final EntityPlayer player) {
.addTooltip(StatCollector.translateToLocal("programmable_hatches.gt.cmmode.6"))
);


builder.widget(new CycleButtonWidget().setToggle(() ->merge , (s) -> {
merge = s;

}).setStaticTexture(GT_UITextures.OVERLAY_BUTTON_CHECKMARK)
.setVariableBackground(GT_UITextures.BUTTON_STANDARD_TOGGLE).setTooltipShowUpDelay(TOOLTIP_DELAY)
.setPos(3 + 18 * 2, 3 + 18 * 0).setSize(18, 18)
.addTooltip(StatCollector.translateToLocal("programmable_hatches.gt.merge.0"))
.addTooltip(StatCollector.translateToLocal("programmable_hatches.gt.merge.1"))

);

return builder.build();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,14 +72,18 @@
import li.cil.oc.server.component.UpgradeDatabase;
import li.cil.oc.server.component.traits.WorldInventoryAnalytics$class;
import li.cil.oc.util.DatabaseAccess;
import mcp.mobius.waila.api.IWailaConfigHandler;
import mcp.mobius.waila.api.IWailaDataAccessor;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompressedStreamTools;
import net.minecraft.nbt.NBTSizeTracker;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.FluidStack;
Expand All @@ -104,6 +108,46 @@ public DualInputHachOC(String aName, int aTier, int aSlots, String[] aDescriptio
super(aName, aTier, aSlots, aDescription, aTextures, mMultiFluid);

}

@SuppressWarnings("unchecked")
@Override
public void getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor,
IWailaConfigHandler config) {

if(accessor.getNBTData().hasKey("tasks")){
ByteArrayInputStream bi=new ByteArrayInputStream(accessor.getNBTData().getByteArray("tasks"));
try {int i=0;
List<Task> tasks=(List<Task>) new ObjectInputStream(bi).readObject();
for(Task task:tasks){
currenttip.add((i++)+":"+task.toString());
}

} catch (Exception e) {
e.printStackTrace();
}
}




super.getWailaBody(itemStack, currenttip, accessor, config);
}
@Override
public void getWailaNBTData(EntityPlayerMP player, TileEntity tile, NBTTagCompound tag, World world, int x, int y,
int z) {
ByteArrayOutputStream bo=new ByteArrayOutputStream();
try {
synchronized (tasks) {
new ObjectOutputStream(bo).writeObject(tasks);
}
tag.setByteArray("tasks",bo.toByteArray());
} catch (IOException e) {
e.printStackTrace();
}
super.getWailaNBTData(player, tile, tag, world, x, y, z);
}


public gregtech.api.metatileentity.MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {

return new DualInputHachOC(mName, mTier,17 , mDescriptionArray, mTextures, mMultiFluid);
Expand Down Expand Up @@ -298,15 +342,15 @@ public void writeExternal(ObjectOutput out) throws IOException {
NBTTagCompound tag =new NBTTagCompound();
stack.writeToNBT(tag);
byte[] b=CompressedStreamTools.compress(tag);
out.write(b.length);
out.writeInt(b.length);
out.write(b);
out.write(stack instanceof AEItemStack?1:0);
out.writeInt(stack instanceof AEItemStack?1:0);
}

@Override
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
byte b[]=new byte[in.readInt()];
if(in.available()!=b.length){throw new IOException();}
//if(in.available()!=b.length){throw new IOException();}
in.readFully(b);
NBTTagCompound tag = CompressedStreamTools.func_152457_a(b, new NBTSizeTracker(Long.MAX_VALUE));
IAEStack ch=
Expand Down Expand Up @@ -337,6 +381,24 @@ public static class TargetStack implements Serializable{
int amount;
AEStackHolder item;

@Override
public String toString() {
StringBuilder sb=new StringBuilder();
if(item!=null){

if(item.stack instanceof AEFluidStack){
sb.append(((AEFluidStack)item.stack).getFluid().getName()+"*"+item.stack.getStackSize());
}else if(item.stack instanceof AEItemStack){
sb.append(((AEItemStack)item.stack).getDisplayName()+"*"+item.stack.getStackSize());
}


}else{
sb.append("?");
}
return sb.toString();
}

public void validate(Node n,Task task){
if(task.state==0)
{
Expand Down Expand Up @@ -384,8 +446,10 @@ public static class Task implements Serializable{

private static final long serialVersionUID = 4868145313081267898L;
int id;

TargetStack item;
public String toString() {
return "id:"+id+" "+item.toString()+" "+state();
};
final TargetStack item;
//0->submitted
//1->validated
//2->data base missing
Expand Down Expand Up @@ -497,15 +561,16 @@ public String state() {

,direct=true)
public Object[] addTask(final Context context, final Arguments args) {
try{
try{ synchronized (tasks){
if(tasks.size()>=127){throw new IllegalArgumentException ("Too many unsubmitted tasks(127)");}
Task task=new Task(args.checkString(0), args.checkInteger(1), args.checkInteger(2), args.optBoolean(3,false), idcounter.addAndGet(1));
tasks.add(task);

TreeMap map=new TreeMap<>();
map.put("id", task.id);
map.put("state","added");

return new Object[]{map};
return new Object[]{map};}
}catch(Exception e){e.printStackTrace();return new Object[0];}
}

Expand Down Expand Up @@ -604,8 +669,8 @@ public Object[] executeTask(final Context context, final Arguments args) {


AtomicInteger idcounter=new AtomicInteger(0);
@SuppressWarnings("unchecked")
List<Task> tasks=(List<Task>) Collections.synchronizedList(new ArrayList());

List<Task> tasks=(List<Task>) Collections.synchronizedList(new ArrayList<Task>());
private BaseActionSource source=new MachineSource(this);

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import java.util.ListIterator;
import java.util.Map.Entry;
import java.util.NoSuchElementException;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.TreeSet;
Expand Down Expand Up @@ -1121,15 +1122,15 @@ public int compareTo(Source o) {
public interface VargsFunction<T, R> {
R apply(T... t);
}
VargsFunction<Object[], FluidStack[]> asFluidStack = (s) -> Arrays.stream(s).flatMap( Arrays::stream).map(f->{
static VargsFunction<Object[], FluidStack[]> asFluidStack = (s) -> Arrays.stream(s).flatMap( Arrays::stream).map(f->{
if(f instanceof FluidTank){return ((FluidTank) f).getFluid();}
else if(f instanceof FluidStack){return (FluidStack)f;}
else if(f==null){/*ignore*/return null;}
else
{throw new RuntimeException("only FluidStack or FluidTank are accepted");}
})
.filter(a -> a != null && a.amount > 0).toArray(FluidStack[]::new);
VargsFunction<ItemStack[], ItemStack[]> filterStack = (s) -> Arrays.stream(s).flatMap( Arrays::stream).filter(a -> a != null)
static VargsFunction<ItemStack[], ItemStack[]> filterStack = (s) -> Arrays.stream(s).flatMap( Arrays::stream).filter(a -> a != null)
.toArray(ItemStack[]::new);

@Override
Expand Down Expand Up @@ -2295,15 +2296,31 @@ public ArrayList<FluidStack> deserListF(NBTTagCompound tag){
}
boolean broken;


public ItemStack[] getDisplayItems(){
ArrayList<ItemStack> all=new ArrayList<>();
all.addAll(circuitInv);
all.add(mInventory[getCircuitSlot()]);
all.addAll(markedItems);
all.removeIf(Objects::isNull);
return all.toArray(new ItemStack[0]);
}
public FluidStack[] getDisplayFluid(){

ArrayList<FluidStack> all=new ArrayList<>();
all.addAll(markedFluid);
all.removeIf(Objects::isNull);
return all.toArray(new FluidStack[0]);}
public ItemStack[] getItems(){
ArrayList<ItemStack> all=new ArrayList<>();
all.addAll(circuitInv);
all.add(mInventory[getCircuitSlot()]);
if(recipe==false){broken=true;
if(recipe==false){
broken=true;
all.removeIf(Objects::isNull);
return all.toArray(new ItemStack[0]);
}
all.addAll(cachedItems);
all.removeIf(Objects::isNull);
return all.toArray(new ItemStack[0]);
}

Expand All @@ -2314,6 +2331,7 @@ public FluidStack[] getFluid(){
}
ArrayList<FluidStack> all=new ArrayList<>();
all.addAll(cachedFluid);
all.removeIf(Objects::isNull);
return all.toArray(new FluidStack[0]);}
public boolean isDummy(){return circuitUpgrades+itemMEUpgrades+fluidMEUpgrades==0;}

Expand Down
Loading

0 comments on commit f3bc5bc

Please sign in to comment.