Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add throughput monitor #674

Merged
merged 12 commits into from
Feb 13, 2025
Merged
Show file tree
Hide file tree
Changes from 8 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/main/java/appeng/api/definitions/IParts.java
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,8 @@ default IItemDefinition p2PTunnelSound() {

IItemDefinition storageMonitor();

IItemDefinition throughputMonitor();

IItemDefinition conversionMonitor();

IItemDefinition patternTerminalEx();
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/appeng/api/definitions/Parts.java
Original file line number Diff line number Diff line change
Expand Up @@ -98,5 +98,7 @@ public class Parts {

public AEItemDefinition partStorageMonitor;

public AEItemDefinition partThroughputMonitor;

public AEItemDefinition partConversionMonitor;
}
5 changes: 5 additions & 0 deletions src/main/java/appeng/client/texture/CableBusTextures.java
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,11 @@ public enum CableBusTextures {
PartConversionMonitor_Dark("PartConversionMonitor_Dark"),
PartConversionMonitor_Dark_Locked("PartConversionMonitor_Dark_Locked"),

PartThroughputMonitor_Bright("PartThroughputMonitor_Bright"),
PartThroughputMonitor_Colored("PartThroughputMonitor_Colored"),
PartThroughputMonitor_Dark("PartThroughputMonitor_Dark"),
PartThroughputMonitor_Dark_Locked("PartThroughputMonitor_Dark_Locked"),

PartInterfaceTerm_Bright("PartInterfaceTerm_Bright"),
PartInterfaceTerm_Colored("PartInterfaceTerm_Colored"),
PartInterfaceTerm_Dark("PartInterfaceTerm_Dark"),
Expand Down
17 changes: 11 additions & 6 deletions src/main/java/appeng/container/AEBaseContainer.java
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@
import appeng.client.me.SlotME;
import appeng.container.guisync.GuiSync;
import appeng.container.guisync.SyncData;
import appeng.container.implementations.ContainerCellWorkbench;
import appeng.container.implementations.ContainerUpgradeable;
import appeng.container.slot.AppEngSlot;
import appeng.container.slot.SlotCraftingMatrix;
Expand All @@ -72,7 +73,7 @@
import appeng.helpers.ICustomNameObject;
import appeng.helpers.InventoryAction;
import appeng.items.materials.ItemMultiMaterial;
import appeng.parts.automation.StackUpgradeInventory;
import appeng.parts.automation.UpgradeInventory;
import appeng.util.InventoryAdaptor;
import appeng.util.Platform;
import appeng.util.inv.AdaptorPlayerHand;
Expand Down Expand Up @@ -525,11 +526,15 @@ public ItemStack transferStackInSlot(final EntityPlayer p, final int idx) {
}

// For shift click upgrade card logic
if (ItemMultiMaterial.instance.getType(tis) != null && this instanceof ContainerUpgradeable) {
// Check source or target
if (!((d.inventory instanceof StackUpgradeInventory)
|| (clickSlot.inventory instanceof StackUpgradeInventory))) {
continue;
if (ItemMultiMaterial.instance.getType(tis) != null) {
// Check now container is upgradeable or it's subclass
if (ContainerUpgradeable.class.isAssignableFrom(this.getClass())) {
// Check source or target
if (!((d.inventory instanceof UpgradeInventory)
|| (clickSlot.inventory instanceof UpgradeInventory)
|| (d.inventory instanceof ContainerCellWorkbench.Upgrades))) {
continue;
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,7 @@ private void setCopyMode(final CopyMode copyMode) {
this.copyMode = copyMode;
}

private class Upgrades implements IInventory {
public class Upgrades implements IInventory {

@Override
public int getSizeInventory() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,10 @@

import appeng.api.networking.crafting.ICraftingCPU;
import appeng.api.storage.data.IAEItemStack;
import appeng.util.IWideReadableNumberConverter;
import appeng.util.ItemSorters;
import appeng.util.Platform;
import appeng.util.ReadableNumberConverter;
import appeng.util.item.AEItemStack;
import io.netty.buffer.ByteBuf;

Expand All @@ -24,6 +26,8 @@
*/
public class CraftingCPUStatus implements Comparable<CraftingCPUStatus> {

private static final IWideReadableNumberConverter NUMBER_CONVERTER = ReadableNumberConverter.INSTANCE;

@Nullable
private final ICraftingCPU serverCluster;

Expand Down Expand Up @@ -183,7 +187,8 @@ public String formatCoprocessors() {
}

public String formatShorterCoprocessors() {
return Platform.formatNumberLong(getCoprocessors());
return NUMBER_CONVERTER.toWideReadableForm(getCoprocessors());
// return Platform.formatNumberLong(getCoprocessors());
}

public String formatStorage() {
Expand Down
1 change: 1 addition & 0 deletions src/main/java/appeng/core/Registration.java
Original file line number Diff line number Diff line change
Expand Up @@ -361,6 +361,7 @@ private void assignParts(final Parts target, final IParts source) {
target.partCraftingTerminal = this.converter.of(source.craftingTerminal());
target.partTerminal = this.converter.of(source.terminal());
target.partStorageMonitor = this.converter.of(source.storageMonitor());
target.partThroughputMonitor = this.converter.of(source.throughputMonitor());
target.partConversionMonitor = this.converter.of(source.conversionMonitor());
}

Expand Down
7 changes: 7 additions & 0 deletions src/main/java/appeng/core/api/definitions/ApiParts.java
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ public final class ApiParts implements IParts {
private final IItemDefinition terminal;
private final IItemDefinition storageMonitor;
private final IItemDefinition conversionMonitor;
private final IItemDefinition throughputMonitor;

public ApiParts(final DefinitionConstructor constructor, final IPartHelper partHelper) {
final ItemMultiPart itemMultiPart = new ItemMultiPart(partHelper);
Expand Down Expand Up @@ -119,6 +120,7 @@ public ApiParts(final DefinitionConstructor constructor, final IPartHelper partH
this.terminal = new DamagedItemDefinition(itemMultiPart.createPart(PartType.Terminal));
this.storageMonitor = new DamagedItemDefinition(itemMultiPart.createPart(PartType.StorageMonitor));
this.conversionMonitor = new DamagedItemDefinition(itemMultiPart.createPart(PartType.ConversionMonitor));
this.throughputMonitor = new DamagedItemDefinition(itemMultiPart.createPart(PartType.ThroughputMonitor));
}

@Override
Expand Down Expand Up @@ -344,4 +346,9 @@ public IItemDefinition storageMonitor() {
public IItemDefinition conversionMonitor() {
return this.conversionMonitor;
}

@Override
public IItemDefinition throughputMonitor() {
return this.throughputMonitor;
}
}
1 change: 1 addition & 0 deletions src/main/java/appeng/core/features/AEFeature.java
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ public boolean isVisible() {
ExportBus(Constants.CATEGORY_NETWORK_BUSES),
StorageBus(Constants.CATEGORY_NETWORK_BUSES),
PartConversionMonitor(Constants.CATEGORY_NETWORK_BUSES),
PartThroughputMonitor(Constants.CATEGORY_NETWORK_BUSES),

PortableCell(Constants.CATEGORY_PORTABLE_CELL),

Expand Down
4 changes: 3 additions & 1 deletion src/main/java/appeng/core/settings/TickRates.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,9 @@ public enum TickRates {

OpenComputersTunnel(1, 5),

PressureTunnel(1, 120);
PressureTunnel(1, 120),

ThroughputMonitor(20, 100);

private int min;
private int max;
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/appeng/items/parts/PartType.java
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@
import appeng.parts.reporting.PartSemiDarkPanel;
import appeng.parts.reporting.PartStorageMonitor;
import appeng.parts.reporting.PartTerminal;
import appeng.parts.reporting.PartThroughputMonitor;

public enum PartType {

Expand Down Expand Up @@ -149,6 +150,9 @@ public boolean isCable() {
StorageMonitor(400, EnumSet.of(AEFeature.StorageMonitor), EnumSet.noneOf(IntegrationType.class),
PartStorageMonitor.class),

ThroughputMonitor(410, EnumSet.of(AEFeature.PartThroughputMonitor), EnumSet.noneOf(IntegrationType.class),
PartThroughputMonitor.class),

ConversionMonitor(420, EnumSet.of(AEFeature.PartConversionMonitor), EnumSet.noneOf(IntegrationType.class),
PartConversionMonitor.class),

Expand Down
8 changes: 6 additions & 2 deletions src/main/java/appeng/parts/reporting/AbstractPartMonitor.java
Original file line number Diff line number Diff line change
Expand Up @@ -316,6 +316,12 @@ private void tesrRenderScreen(final Tessellator tess, final IAEItemStack ais) {
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
}

this.tesrRenderItemNumber(ais);

// GL11.glPopAttrib();
}

public void tesrRenderItemNumber(final IAEItemStack ais) {
GL11.glTranslatef(0.0f, 0.14f, -0.24f);
GL11.glScalef(1.0f / 62.0f, 1.0f / 62.0f, 1.0f / 62.0f);

Expand All @@ -326,8 +332,6 @@ private void tesrRenderScreen(final Tessellator tess, final IAEItemStack ais) {
final int width = fr.getStringWidth(renderedStackSize);
GL11.glTranslatef(-0.5f * width, 0.0f, -1.0f);
fr.drawString(renderedStackSize, 0, 0, 0);

// GL11.glPopAttrib();
}

@Override
Expand Down
Loading
Loading