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

Release v2.0.0-milestone.3.14 #580

Merged
merged 57 commits into from
Jun 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
937795a
Merge pull request #568 from refinedmods/main
raoulvdberge Jun 16, 2024
601242e
chore: update translation Russian from crowdin
raoulvdberge Jun 17, 2024
f894fe1
chore: update translation French from crowdin
raoulvdberge Jun 17, 2024
7d70030
chore: update translation Spanish from crowdin
raoulvdberge Jun 17, 2024
98faa45
chore: update translation German from crowdin
raoulvdberge Jun 17, 2024
5712fa4
chore: update translation Hungarian from crowdin
raoulvdberge Jun 17, 2024
a7d84c6
chore: update translation Italian from crowdin
raoulvdberge Jun 17, 2024
08a0346
chore: update translation Japanese from crowdin
raoulvdberge Jun 17, 2024
18bca54
chore: update translation Korean from crowdin
raoulvdberge Jun 17, 2024
f6602f6
chore: update translation Polish from crowdin
raoulvdberge Jun 17, 2024
5ca7808
chore: update translation Chinese Simplified from crowdin
raoulvdberge Jun 17, 2024
de19dd0
chore: update translation Chinese Traditional from crowdin
raoulvdberge Jun 17, 2024
b52222e
chore: update translation Portuguese, Brazilian from crowdin
raoulvdberge Jun 17, 2024
99ece6d
chore: update translation Indonesian from crowdin
raoulvdberge Jun 17, 2024
e8aa702
Merge pull request #569 from refinedmods/crowdin-translations
raoulvdberge Jun 18, 2024
1d8ef4c
chore: update translation Japanese from crowdin
raoulvdberge Jun 20, 2024
83bb3a9
Merge pull request #570 from refinedmods/crowdin-translations
raoulvdberge Jun 20, 2024
ffe57b2
feat: item tag translations
raoulvdberge Jun 20, 2024
f5c8584
Merge pull request #571 from refinedmods/fix/GH-542/emi
raoulvdberge Jun 20, 2024
e23501d
chore: update translation Russian from crowdin
raoulvdberge Jun 21, 2024
ec57ae7
chore: update translation French from crowdin
raoulvdberge Jun 21, 2024
9a40561
chore: update translation Spanish from crowdin
raoulvdberge Jun 21, 2024
b249448
chore: update translation German from crowdin
raoulvdberge Jun 21, 2024
826d317
chore: update translation Hungarian from crowdin
raoulvdberge Jun 21, 2024
fb9ca09
chore: update translation Italian from crowdin
raoulvdberge Jun 21, 2024
212a9b7
chore: update translation Japanese from crowdin
raoulvdberge Jun 21, 2024
50916c6
chore: update translation Korean from crowdin
raoulvdberge Jun 21, 2024
1b657f7
chore: update translation Polish from crowdin
raoulvdberge Jun 21, 2024
3570155
chore: update translation Chinese Simplified from crowdin
raoulvdberge Jun 21, 2024
492e5ed
chore: update translation Chinese Traditional from crowdin
raoulvdberge Jun 21, 2024
2076370
chore: update translation Portuguese, Brazilian from crowdin
raoulvdberge Jun 21, 2024
4ad6bf1
chore: update translation Indonesian from crowdin
raoulvdberge Jun 21, 2024
545021a
Merge pull request #573 from refinedmods/crowdin-translations
raoulvdberge Jun 21, 2024
ac9755c
refactor: unify storage block and disk drive network nodes
raoulvdberge May 19, 2024
96841ec
refactor: introduce common storage container network node
raoulvdberge May 19, 2024
8aeaa1d
feat: storage transfer network node
raoulvdberge May 25, 2024
79ae178
Merge pull request #576 from refinedmods/feat/GH-91/storage-transfer-…
raoulvdberge Jun 22, 2024
b8b69b5
feat: disk interface content
raoulvdberge Jun 23, 2024
a8dfcb1
Merge pull request #577 from refinedmods/feat/GH-91/disk-interface
raoulvdberge Jun 26, 2024
5c0d39e
chore: update translation Russian from crowdin
raoulvdberge Jun 27, 2024
12d7b87
chore: update translation French from crowdin
raoulvdberge Jun 27, 2024
c0d4105
chore: update translation Spanish from crowdin
raoulvdberge Jun 27, 2024
1dafbe7
chore: update translation German from crowdin
raoulvdberge Jun 27, 2024
e51b009
chore: update translation Hungarian from crowdin
raoulvdberge Jun 27, 2024
76651b5
chore: update translation Italian from crowdin
raoulvdberge Jun 27, 2024
8044410
chore: update translation Japanese from crowdin
raoulvdberge Jun 27, 2024
78a4241
chore: update translation Korean from crowdin
raoulvdberge Jun 27, 2024
db0553d
chore: update translation Polish from crowdin
raoulvdberge Jun 27, 2024
904f6ff
chore: update translation Chinese Simplified from crowdin
raoulvdberge Jun 27, 2024
42f3d32
chore: update translation Chinese Traditional from crowdin
raoulvdberge Jun 27, 2024
9d657b5
chore: update translation Portuguese, Brazilian from crowdin
raoulvdberge Jun 27, 2024
e93020e
chore: update translation Indonesian from crowdin
raoulvdberge Jun 27, 2024
c4918d6
Merge pull request #578 from refinedmods/crowdin-translations
raoulvdberge Jun 27, 2024
0f3f9a6
feat: disk interface models
raoulvdberge Jun 27, 2024
a8e41c6
fix: scheduling mode icons
raoulvdberge Jun 27, 2024
cf499c9
Merge pull request #579 from refinedmods/feat/GH-91/disk-interface-mo…
raoulvdberge Jun 27, 2024
91560ff
chore: prepare release v2.0.0-milestone.3.14
raoulvdberge Jun 28, 2024
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
17 changes: 16 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,19 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [2.0.0-milestone.3.14] - 2024-06-28

### Added

- Disk Interface (formerly known as the "Disk Manipulator").
- Item tag translations.

### Fixed

- Relay having no help tooltip.
- Fixed bug where adding more Speed Upgrades would actually slow down the device even more.
- Fixed missing textures for scheduling mode side button.

## [2.0.0-milestone.3.13] - 2024-06-16

## [2.0.0-milestone.3.12] - 2024-06-16
Expand Down Expand Up @@ -606,7 +619,9 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
- The Grid can now use smooth scrolling.
- The Grid now has syntax highlighting for the search query.

[Unreleased]: https://github.com/refinedmods/refinedstorage2/compare/v2.0.0-milestone.3.13...HEAD
[Unreleased]: https://github.com/refinedmods/refinedstorage2/compare/v2.0.0-milestone.3.14...HEAD

[2.0.0-milestone.3.14]: https://github.com/refinedmods/refinedstorage2/compare/v2.0.0-milestone.3.13...v2.0.0-milestone.3.14

[2.0.0-milestone.3.13]: https://github.com/refinedmods/refinedstorage2/compare/v2.0.0-milestone.3.12...v2.0.0-milestone.3.13

Expand Down
2 changes: 1 addition & 1 deletion config/checkstyle/checkstyle.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<property name="ignorePattern" value="^package.*|^import.*|a href|href|http://|https://|ftp://"/>
</module>
<module name="FileLength">
<property name="max" value="700"/>
<property name="max" value="750"/>
</module>
<module name="NewlineAtEndOfFile"/>
<module name="JavadocPackage"/>
Expand Down
2 changes: 2 additions & 0 deletions config/intellij-code-style.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
<code_scheme name="Refined Mods" version="173">
<JavaCodeStyleSettings>
<option name="GENERATE_FINAL_LOCALS" value="true" />
<option name="GENERATE_FINAL_PARAMETERS" value="true" />
<option name="SPACE_INSIDE_ONE_LINE_ENUM_BRACES" value="true" />
<option name="CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND" value="999" />
<option name="NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND" value="999" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,22 @@
import com.refinedmods.refinedstorage2.api.network.impl.node.grid.GridNetworkNode;
import com.refinedmods.refinedstorage2.api.network.impl.node.iface.InterfaceNetworkNode;
import com.refinedmods.refinedstorage2.api.network.impl.node.importer.ImporterNetworkNode;
import com.refinedmods.refinedstorage2.api.network.impl.node.multistorage.MultiStorageNetworkNode;
import com.refinedmods.refinedstorage2.api.network.impl.node.relay.RelayInputNetworkNode;
import com.refinedmods.refinedstorage2.api.network.impl.node.relay.RelayOutputNetworkNode;
import com.refinedmods.refinedstorage2.api.network.impl.node.storage.StorageNetworkNode;
import com.refinedmods.refinedstorage2.api.network.impl.node.storagetransfer.StorageTransferNetworkNode;
import com.refinedmods.refinedstorage2.network.test.nodefactory.ControllerNetworkNodeFactory;
import com.refinedmods.refinedstorage2.network.test.nodefactory.DetectorNetworkNodeFactory;
import com.refinedmods.refinedstorage2.network.test.nodefactory.ExporterNetworkNodeFactory;
import com.refinedmods.refinedstorage2.network.test.nodefactory.ExternalStorageNetworkNodeFactory;
import com.refinedmods.refinedstorage2.network.test.nodefactory.GridNetworkNodeFactory;
import com.refinedmods.refinedstorage2.network.test.nodefactory.ImporterNetworkNodeFactory;
import com.refinedmods.refinedstorage2.network.test.nodefactory.InterfaceNetworkNodeFactory;
import com.refinedmods.refinedstorage2.network.test.nodefactory.MultiStorageNetworkNodeFactory;
import com.refinedmods.refinedstorage2.network.test.nodefactory.RelayInputNetworkNodeFactory;
import com.refinedmods.refinedstorage2.network.test.nodefactory.RelayOutputNetworkNodeFactory;
import com.refinedmods.refinedstorage2.network.test.nodefactory.SimpleNetworkNodeFactory;
import com.refinedmods.refinedstorage2.network.test.nodefactory.StorageNetworkNodeFactory;
import com.refinedmods.refinedstorage2.network.test.nodefactory.StorageTransferNetworkNodeFactory;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
Expand All @@ -36,16 +36,16 @@
@Target(ElementType.TYPE)
@ExtendWith(NetworkTestExtension.class)
@RegisterNetworkNode(value = ControllerNetworkNodeFactory.class, clazz = ControllerNetworkNode.class)
@RegisterNetworkNode(value = MultiStorageNetworkNodeFactory.class, clazz = MultiStorageNetworkNode.class)
@RegisterNetworkNode(value = StorageNetworkNodeFactory.class, clazz = StorageNetworkNode.class)
@RegisterNetworkNode(value = ExporterNetworkNodeFactory.class, clazz = ExporterNetworkNode.class)
@RegisterNetworkNode(value = GridNetworkNodeFactory.class, clazz = GridNetworkNode.class)
@RegisterNetworkNode(value = ImporterNetworkNodeFactory.class, clazz = ImporterNetworkNode.class)
@RegisterNetworkNode(value = SimpleNetworkNodeFactory.class, clazz = SimpleNetworkNode.class)
@RegisterNetworkNode(value = StorageNetworkNodeFactory.class, clazz = StorageNetworkNode.class)
@RegisterNetworkNode(value = InterfaceNetworkNodeFactory.class, clazz = InterfaceNetworkNode.class)
@RegisterNetworkNode(value = ExternalStorageNetworkNodeFactory.class, clazz = ExternalStorageNetworkNode.class)
@RegisterNetworkNode(value = DetectorNetworkNodeFactory.class, clazz = DetectorNetworkNode.class)
@RegisterNetworkNode(value = RelayInputNetworkNodeFactory.class, clazz = RelayInputNetworkNode.class)
@RegisterNetworkNode(value = RelayOutputNetworkNodeFactory.class, clazz = RelayOutputNetworkNode.class)
@RegisterNetworkNode(value = StorageTransferNetworkNodeFactory.class, clazz = StorageTransferNetworkNode.class)
public @interface NetworkTest {
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
import com.refinedmods.refinedstorage2.api.resource.list.ResourceListImpl;
import com.refinedmods.refinedstorage2.network.test.fake.FakePermissions;

import java.util.LinkedHashMap;

public final class NetworkTestFixtures {
public static final ComponentMapFactory<NetworkComponent, Network> NETWORK_COMPONENT_MAP_FACTORY =
new ComponentMapFactory<>();
Expand All @@ -30,7 +32,7 @@ public final class NetworkTestFixtures {
);
NETWORK_COMPONENT_MAP_FACTORY.addFactory(
StorageNetworkComponent.class,
network -> new StorageNetworkComponentImpl(new ResourceListImpl())
network -> new StorageNetworkComponentImpl(new ResourceListImpl(new LinkedHashMap<>()))
);
NETWORK_COMPONENT_MAP_FACTORY.addFactory(
SecurityNetworkComponent.class,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,17 @@
import java.util.Map;

public class StorageNetworkNodeFactory extends AbstractNetworkNodeFactory {
public static final String PROPERTY_ENERGY_USAGE_PER_STORAGE = "energy_usage_per_storage";
public static final String PROPERTY_SIZE = "size";

@Override
protected AbstractNetworkNode innerCreate(final AddNetworkNode ctx, final Map<String, Object> properties) {
return new StorageNetworkNode(getEnergyUsage(properties));
final long energyUsagePerStorage = (long) properties.getOrDefault(PROPERTY_ENERGY_USAGE_PER_STORAGE, 0L);
final int size = (int) properties.getOrDefault(PROPERTY_SIZE, 9);
return new StorageNetworkNode(
getEnergyUsage(properties),
energyUsagePerStorage,
size
);
}
}
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
package com.refinedmods.refinedstorage2.network.test.nodefactory;

import com.refinedmods.refinedstorage2.api.network.impl.node.AbstractNetworkNode;
import com.refinedmods.refinedstorage2.api.network.impl.node.multistorage.MultiStorageNetworkNode;
import com.refinedmods.refinedstorage2.api.network.impl.node.storagetransfer.StorageTransferNetworkNode;
import com.refinedmods.refinedstorage2.network.test.AddNetworkNode;

import java.util.Map;

public class MultiStorageNetworkNodeFactory extends AbstractNetworkNodeFactory {
public class StorageTransferNetworkNodeFactory extends AbstractNetworkNodeFactory {
public static final String PROPERTY_ENERGY_USAGE_PER_STORAGE = "energy_usage_per_storage";
public static final String PROPERTY_SIZE = "size";

@Override
protected AbstractNetworkNode innerCreate(final AddNetworkNode ctx, final Map<String, Object> properties) {
final long energyUsagePerStorage = (long) properties.getOrDefault(PROPERTY_ENERGY_USAGE_PER_STORAGE, 0L);
final int size = (int) properties.getOrDefault(PROPERTY_SIZE, 9);
return new MultiStorageNetworkNode(
final int size = (int) properties.getOrDefault(PROPERTY_SIZE, 6);
return new StorageTransferNetworkNode(
getEnergyUsage(properties),
energyUsagePerStorage,
size
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,10 @@
import com.refinedmods.refinedstorage2.api.network.impl.node.grid.GridNetworkNode;
import com.refinedmods.refinedstorage2.api.network.impl.node.iface.InterfaceNetworkNode;
import com.refinedmods.refinedstorage2.api.network.impl.node.importer.ImporterNetworkNode;
import com.refinedmods.refinedstorage2.api.network.impl.node.multistorage.MultiStorageNetworkNode;
import com.refinedmods.refinedstorage2.api.network.impl.node.relay.RelayInputNetworkNode;
import com.refinedmods.refinedstorage2.api.network.impl.node.relay.RelayOutputNetworkNode;
import com.refinedmods.refinedstorage2.api.network.impl.node.storage.StorageNetworkNode;
import com.refinedmods.refinedstorage2.api.network.impl.node.storagetransfer.StorageTransferNetworkNode;

import org.junit.jupiter.api.Test;

Expand All @@ -21,8 +23,6 @@ class NetworkNodeFactoryTest {
@AddNetworkNode
ControllerNetworkNode controller;
@AddNetworkNode
MultiStorageNetworkNode multiStorage;
@AddNetworkNode
ExporterNetworkNode exporter;
@AddNetworkNode
GridNetworkNode grid;
Expand All @@ -38,6 +38,12 @@ class NetworkNodeFactoryTest {
ExternalStorageNetworkNode externalStorage;
@AddNetworkNode
DetectorNetworkNode detector;
@AddNetworkNode
RelayInputNetworkNode relayInput;
@AddNetworkNode
RelayOutputNetworkNode relayOutput;
@AddNetworkNode
StorageTransferNetworkNode storageTransfer;

@Test
void testInitialization() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,12 @@
import com.refinedmods.refinedstorage2.api.network.Network;
import com.refinedmods.refinedstorage2.api.network.energy.EnergyNetworkComponent;
import com.refinedmods.refinedstorage2.api.network.impl.node.SimpleNetworkNode;
import com.refinedmods.refinedstorage2.api.network.impl.node.multistorage.MultiStorageNetworkNode;
import com.refinedmods.refinedstorage2.api.network.impl.node.storage.StorageNetworkNode;
import com.refinedmods.refinedstorage2.api.network.node.GraphNetworkComponent;
import com.refinedmods.refinedstorage2.api.network.node.container.NetworkNodeContainer;
import com.refinedmods.refinedstorage2.api.network.security.SecurityNetworkComponent;
import com.refinedmods.refinedstorage2.api.network.storage.StorageNetworkComponent;
import com.refinedmods.refinedstorage2.network.test.nodefactory.AbstractNetworkNodeFactory;
import com.refinedmods.refinedstorage2.network.test.nodefactory.MultiStorageNetworkNodeFactory;
import com.refinedmods.refinedstorage2.network.test.nodefactory.SimpleNetworkNodeFactory;
import com.refinedmods.refinedstorage2.network.test.nodefactory.StorageNetworkNodeFactory;

Expand All @@ -23,7 +21,7 @@
@ExtendWith({NetworkTestExtension.class})
@SetupNetwork(id = "a", energyCapacity = 100, energyStored = 50)
@SetupNetwork(id = "b")
@RegisterNetworkNode(value = MultiStorageNetworkNodeFactory.class, clazz = MultiStorageNetworkNode.class)
@RegisterNetworkNode(value = StorageNetworkNodeFactory.class, clazz = StorageNetworkNode.class)
@RegisterNetworkNode(value = StorageNetworkNodeFactory.class, clazz = StorageNetworkNode.class)
@RegisterNetworkNode(value = SimpleNetworkNodeFactory.class, clazz = SimpleNetworkNode.class)
class NetworkTestExtensionTest {
Expand All @@ -41,7 +39,7 @@ class NetworkTestExtensionTest {
@AddNetworkNode(networkId = "b", properties = {
@AddNetworkNode.Property(key = AbstractNetworkNodeFactory.PROPERTY_ACTIVE, boolValue = false)
})
MultiStorageNetworkNode storageInB;
StorageNetworkNode storageInB;

@AddNetworkNode(networkId = "nonexistent")
SimpleNetworkNode nonexistentNetworkNode;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
package com.refinedmods.refinedstorage2.api.network.impl.node;

import com.refinedmods.refinedstorage2.api.storage.StateTrackedStorage;
import com.refinedmods.refinedstorage2.api.storage.Storage;
import com.refinedmods.refinedstorage2.api.storage.StorageState;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import javax.annotation.Nullable;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public abstract class AbstractStorageContainerNetworkNode extends AbstractNetworkNode {
private static final Logger LOGGER = LoggerFactory.getLogger(AbstractStorageContainerNetworkNode.class);

protected final StateTrackedStorage[] storages;

private long energyUsage;
private final long energyUsagePerStorage;

@Nullable
private Provider provider;
@Nullable
private StateTrackedStorage.Listener listener;
private int activeStorages;

protected AbstractStorageContainerNetworkNode(final long energyUsage,
final long energyUsagePerStorage,
final int size) {
this.energyUsage = energyUsage;
this.energyUsagePerStorage = energyUsagePerStorage;
this.storages = new StateTrackedStorage[size];
}

public void setListener(final StateTrackedStorage.Listener listener) {
this.listener = listener;
}

public void setProvider(final Provider provider) {
this.provider = provider;
final List<StorageChange> changes = new ArrayList<>();
for (int i = 0; i < storages.length; ++i) {
changes.addAll(initializeStorage(i));
}
// If we are already initialized, update all the storages to keep the exposed storages in sync.
// If we are not initialized, update nothing as we have to wait for an activeness update.
if (activeStorages > 0) {
changes.forEach(this::onStorageChange);
}
updateActiveStorageCount();
}

public void onStorageChanged(final int index) {
if (index < 0 || index >= storages.length) {
LOGGER.warn("Invalid index {}", index);
return;
}
initializeStorage(index).forEach(this::onStorageChange);
updateActiveStorageCount();
}

protected void onStorageChange(final StorageChange change) {
// no op
}

private Set<StorageChange> initializeStorage(final int index) {
final Set<StorageChange> results = new HashSet<>();
if (storages[index] != null) {
results.add(new StorageChange(true, storages[index]));
}
if (provider != null) {
provider.resolve(index).ifPresentOrElse(resolved -> {
final StateTrackedStorage newStorage = new StateTrackedStorage(resolved, listener);
storages[index] = newStorage;
results.add(new StorageChange(false, newStorage));
}, () -> storages[index] = null);
}
return results;
}

private void updateActiveStorageCount() {
this.activeStorages = (int) Arrays.stream(storages).filter(Objects::nonNull).count();
}

public void setEnergyUsage(final long energyUsage) {
this.energyUsage = energyUsage;
}

@Override
public long getEnergyUsage() {
return energyUsage + (energyUsagePerStorage * activeStorages);
}

public int getSize() {
return storages.length;
}

public StorageState getState(final int index) {
final var storage = storages[index];
if (storage == null) {
return StorageState.NONE;
}
if (!isActive()) {
return StorageState.INACTIVE;
}
return storage.getState();
}

protected record StorageChange(boolean removed, StateTrackedStorage storage) {
}

@FunctionalInterface
public interface Provider {
Optional<Storage> resolve(int index);
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.refinedmods.refinedstorage2.api.network.impl.node.externalstorage;

import com.refinedmods.refinedstorage2.api.network.impl.storage.AbstractStorageNetworkNode;
import com.refinedmods.refinedstorage2.api.network.impl.node.AbstractNetworkNode;
import com.refinedmods.refinedstorage2.api.network.impl.storage.NetworkNodeStorageConfiguration;
import com.refinedmods.refinedstorage2.api.network.impl.storage.StorageConfiguration;
import com.refinedmods.refinedstorage2.api.network.node.externalstorage.ExternalStorageProviderFactory;
import com.refinedmods.refinedstorage2.api.network.storage.StorageProvider;
import com.refinedmods.refinedstorage2.api.storage.Storage;
Expand All @@ -10,15 +12,21 @@
import java.util.function.LongSupplier;
import javax.annotation.Nullable;

public class ExternalStorageNetworkNode extends AbstractStorageNetworkNode implements StorageProvider {
public class ExternalStorageNetworkNode extends AbstractNetworkNode implements StorageProvider {
private final long energyUsage;
private final StorageConfiguration storageConfiguration;
private final ExposedExternalStorage storage;
@Nullable
private ExternalStorage externalStorage;

public ExternalStorageNetworkNode(final long energyUsage, final LongSupplier clock) {
this.energyUsage = energyUsage;
this.storage = new ExposedExternalStorage(this, clock);
this.storageConfiguration = new NetworkNodeStorageConfiguration(this);
this.storage = new ExposedExternalStorage(storageConfiguration, clock);
}

public StorageConfiguration getStorageConfiguration() {
return storageConfiguration;
}

public void setTrackingRepository(final TrackedStorageRepository trackingRepository) {
Expand Down
Loading
Loading