diff --git a/src/main/java/ninjabrainbot/gui/themeeditor/PreviewAllAdvancementsDataState.java b/src/main/java/ninjabrainbot/gui/themeeditor/PreviewAllAdvancementsDataState.java index f2833ede..93d2755d 100644 --- a/src/main/java/ninjabrainbot/gui/themeeditor/PreviewAllAdvancementsDataState.java +++ b/src/main/java/ninjabrainbot/gui/themeeditor/PreviewAllAdvancementsDataState.java @@ -2,52 +2,56 @@ import ninjabrainbot.model.datastate.alladvancements.IAllAdvancementsDataState; import ninjabrainbot.model.datastate.alladvancements.IAllAdvancementsPosition; +import ninjabrainbot.model.datastate.common.DetachedDomainModel; import ninjabrainbot.model.datastate.common.StructureInformation; import ninjabrainbot.model.domainmodel.DataComponent; import ninjabrainbot.model.domainmodel.IDataComponent; +import ninjabrainbot.model.domainmodel.IDomainModel; import ninjabrainbot.model.domainmodel.IDomainModelComponent; import ninjabrainbot.model.domainmodel.InferredComponent; public class PreviewAllAdvancementsDataState implements IAllAdvancementsDataState { + IDomainModel domainModel = new DetachedDomainModel(); + @Override public IDomainModelComponent allAdvancementsModeEnabled() { - return new DataComponent<>(null, false); + return new DataComponent<>("", domainModel, false); } @Override public IDataComponent spawnPosition() { - return new DataComponent<>(null); + return new DataComponent<>("", domainModel); } @Override public IDataComponent outpostPosition() { - return new DataComponent<>(null); + return new DataComponent<>("", domainModel); } @Override public IDataComponent monumentPosition() { - return new DataComponent<>(null); + return new DataComponent<>("", domainModel); } @Override public IDataComponent deepDarkPosition() { - return new DataComponent<>(null); + return new DataComponent<>("", domainModel); } @Override public IDataComponent cityQueryPosition() { - return new DataComponent<>(null); + return new DataComponent<>("", domainModel); } @Override public IDataComponent shulkerTransportPosition() { - return new DataComponent<>(null); + return new DataComponent<>("", domainModel); } @Override public IDataComponent generalLocationPosition() { - return new DataComponent<>(null); + return new DataComponent<>("", domainModel); } @Override diff --git a/src/main/java/ninjabrainbot/gui/themeeditor/PreviewDataState.java b/src/main/java/ninjabrainbot/gui/themeeditor/PreviewDataState.java index c568605d..6ca189db 100644 --- a/src/main/java/ninjabrainbot/gui/themeeditor/PreviewDataState.java +++ b/src/main/java/ninjabrainbot/gui/themeeditor/PreviewDataState.java @@ -7,6 +7,7 @@ import ninjabrainbot.model.datastate.blind.BlindResult; import ninjabrainbot.model.datastate.calculator.ICalculatorResult; import ninjabrainbot.model.datastate.common.IPlayerPosition; +import ninjabrainbot.model.datastate.common.DetachedDomainModel; import ninjabrainbot.model.datastate.common.ResultType; import ninjabrainbot.model.datastate.divine.DivineContext; import ninjabrainbot.model.datastate.divine.DivineResult; @@ -18,6 +19,7 @@ import ninjabrainbot.model.datastate.stronghold.ChunkPrediction; import ninjabrainbot.model.domainmodel.DataComponent; import ninjabrainbot.model.domainmodel.IDataComponent; +import ninjabrainbot.model.domainmodel.IDomainModel; import ninjabrainbot.model.domainmodel.IDomainModelComponent; import ninjabrainbot.model.domainmodel.IListComponent; import ninjabrainbot.model.domainmodel.InferredComponent; @@ -50,15 +52,16 @@ public PreviewDataState(ICalculatorResult result, List eyeThrows } public PreviewDataState() { - divineContext = new DivineContext(null); - throwSet = new ListComponent<>(null, 10); - playerPosition = new DataComponent<>(null); - locked = new DataComponent<>(null, false); - resultType = new DataComponent<>(null, ResultType.NONE); - calculatorResult = new InferredComponent<>(null); - topPrediction = new InferredComponent<>(null); - blindResult = new InferredComponent<>(null); - divineResult = new InferredComponent<>(null); + IDomainModel domainModel = new DetachedDomainModel(); + divineContext = new DivineContext(domainModel); + throwSet = new ListComponent<>("", domainModel, 10); + playerPosition = new DataComponent<>("", domainModel, null); + locked = new DataComponent<>("", domainModel, false); + resultType = new DataComponent<>("", domainModel, ResultType.NONE); + calculatorResult = new InferredComponent<>(domainModel); + topPrediction = new InferredComponent<>(domainModel); + blindResult = new InferredComponent<>(domainModel); + divineResult = new InferredComponent<>(domainModel); boatDataState = new BoatDataState(null); allAdvancementsDataState = new PreviewAllAdvancementsDataState(); diff --git a/src/main/java/ninjabrainbot/model/datastate/DataState.java b/src/main/java/ninjabrainbot/model/datastate/DataState.java index 95ce5b02..f5c7f248 100644 --- a/src/main/java/ninjabrainbot/model/datastate/DataState.java +++ b/src/main/java/ninjabrainbot/model/datastate/DataState.java @@ -48,9 +48,9 @@ public DataState(IDomainModel domainModel, IEnvironmentState environmentState) { public DataState(IDomainModel domainModel, IEnvironmentState environmentState, DefaultBoatType defaultBoatType) { divineContext = disposeHandler.add(new DivineContext(domainModel)); - throwSet = new ListComponent<>(domainModel, 10); - playerPosition = new DataComponent<>(domainModel); - locked = new DataComponent<>(domainModel, false); + throwSet = new ListComponent<>("throw_set", domainModel, 10); + playerPosition = new DataComponent<>("player_position", domainModel); + locked = new DataComponent<>("is_locked", domainModel, false); calculatorManager = disposeHandler.add(new CalculatorManager(domainModel, environmentState, throwSet, playerPosition, divineContext)); allAdvancementsDataState = disposeHandler.add(new AllAdvancementsDataState(calculatorManager.topPrediction(), playerPosition, domainModel, environmentState)); diff --git a/src/main/java/ninjabrainbot/model/datastate/alladvancements/AllAdvancementsDataState.java b/src/main/java/ninjabrainbot/model/datastate/alladvancements/AllAdvancementsDataState.java index 781ba803..9cbb2d2b 100644 --- a/src/main/java/ninjabrainbot/model/datastate/alladvancements/AllAdvancementsDataState.java +++ b/src/main/java/ninjabrainbot/model/datastate/alladvancements/AllAdvancementsDataState.java @@ -43,13 +43,13 @@ public AllAdvancementsDataState(IDomainModelComponent currentSt this.playerPosition = playerPosition; this.environmentState = environmentState; - spawnPosition = new DataComponent<>(domainModel); - outpostPosition = new DataComponent<>(domainModel); - monumentPosition = new DataComponent<>(domainModel); - deepDarkPosition = new DataComponent<>(domainModel); - cityQueryPosition = new DataComponent<>(domainModel); - shulkerTransportPosition = new DataComponent<>(domainModel); - generalLocationPosition = new DataComponent<>(domainModel); + spawnPosition = new DataComponent<>("aa_spawn", domainModel); + outpostPosition = new DataComponent<>("aa_outpost", domainModel); + monumentPosition = new DataComponent<>("aa_monument", domainModel); + deepDarkPosition = new DataComponent<>("aa_deep_dark", domainModel); + cityQueryPosition = new DataComponent<>("aa_city_query", domainModel); + shulkerTransportPosition = new DataComponent<>("aa_shulker_transport", domainModel); + generalLocationPosition = new DataComponent<>("aa_general_location", domainModel); allAdvancementsModeEnabled = new InferredComponent<>(domainModel, false); strongholdInformation = new InferredComponent<>(domainModel); @@ -64,13 +64,13 @@ public AllAdvancementsDataState(IDomainModelComponent currentSt disposeHandler.add(environmentState.allAdvancementsModeEnabled().subscribeInternal(this::updateAllAdvancementsMode)); disposeHandler.add(environmentState.hasEnteredEnd().subscribeInternal(this::updateAllAdvancementsMode)); disposeHandler.add(currentStrongholdPrediction.subscribeInternal(strongholdInformation::set)); - disposeHandler.add(spawnPosition.subscribeInternal(overworldPosition -> updateStructureInformationComponent(spawnInformation, overworldPosition))); - disposeHandler.add(outpostPosition.subscribeInternal(overworldPosition -> updateStructureInformationComponent(outpostInformation, overworldPosition))); - disposeHandler.add(monumentPosition.subscribeInternal(overworldPosition -> updateStructureInformationComponent(monumentInformation, overworldPosition))); - disposeHandler.add(deepDarkPosition.subscribeInternal(overworldPosition -> updateStructureInformationComponent(deepDarkInformation, overworldPosition))); - disposeHandler.add(cityQueryPosition.subscribeInternal(overworldPosition -> updateStructureInformationComponent(cityQueryInformation, overworldPosition))); - disposeHandler.add(shulkerTransportPosition.subscribeInternal(overworldPosition -> updateStructureInformationComponent(shulkerTransportInformation, overworldPosition))); - disposeHandler.add(generalLocationPosition.subscribeInternal(overworldPosition -> updateStructureInformationComponent(generalLocationInformation, overworldPosition))); + disposeHandler.add(spawnPosition.subscribeInternal(position -> updateStructureInformationComponent(spawnInformation, position))); + disposeHandler.add(outpostPosition.subscribeInternal(position -> updateStructureInformationComponent(outpostInformation, position))); + disposeHandler.add(monumentPosition.subscribeInternal(position -> updateStructureInformationComponent(monumentInformation, position))); + disposeHandler.add(deepDarkPosition.subscribeInternal(position -> updateStructureInformationComponent(deepDarkInformation, position))); + disposeHandler.add(cityQueryPosition.subscribeInternal(position -> updateStructureInformationComponent(cityQueryInformation, position))); + disposeHandler.add(shulkerTransportPosition.subscribeInternal(position -> updateStructureInformationComponent(shulkerTransportInformation, position))); + disposeHandler.add(generalLocationPosition.subscribeInternal(position -> updateStructureInformationComponent(generalLocationInformation, position))); } private void updateAllAdvancementsMode() { diff --git a/src/main/java/ninjabrainbot/model/datastate/calibrator/Calibrator.java b/src/main/java/ninjabrainbot/model/datastate/calibrator/Calibrator.java index 50abd801..bb81f4c2 100644 --- a/src/main/java/ninjabrainbot/model/datastate/calibrator/Calibrator.java +++ b/src/main/java/ninjabrainbot/model/datastate/calibrator/Calibrator.java @@ -17,6 +17,7 @@ import ninjabrainbot.model.datastate.calculator.Calculator; import ninjabrainbot.model.datastate.calculator.ICalculator; import ninjabrainbot.model.datastate.calculator.ICalculatorResult; +import ninjabrainbot.model.datastate.common.DetachedDomainModel; import ninjabrainbot.model.datastate.common.IDetailedPlayerPosition; import ninjabrainbot.model.datastate.common.ILimitedPlayerPosition; import ninjabrainbot.model.datastate.common.IPlayerPositionInputSource; @@ -65,7 +66,7 @@ public Calibrator(CalculatorSettings calculatorSettings, IPlayerPositionInputSou } this.preferences = preferences; calculator = new Calculator(calculatorSettings, new StandardDeviationSettings(0.2, 0.2, 0.2, 0.2)); - throwList = new ListComponent<>(null, 100); + throwList = new ListComponent<>("throw_list", new DetachedDomainModel(), 100); disposeHandler.add(playerPositionInputSource.whenNewLimitedPlayerPositionInputted().subscribe(this::onNewLimitedPlayerPositionInputted)); disposeHandler.add(playerPositionInputSource.whenNewDetailedPlayerPositionInputted().subscribe(this::onNewDetailedPlayerPositionInputted)); disposeHandler.add(preferences.hotkeyIncrement.whenTriggered().subscribe(__ -> new ChangeLastAngleAction(throwList, locked, preferences, 1).execute())); diff --git a/src/main/java/ninjabrainbot/model/datastate/common/DetachedDomainModel.java b/src/main/java/ninjabrainbot/model/datastate/common/DetachedDomainModel.java new file mode 100644 index 00000000..ee3dc512 --- /dev/null +++ b/src/main/java/ninjabrainbot/model/datastate/common/DetachedDomainModel.java @@ -0,0 +1,69 @@ +package ninjabrainbot.model.datastate.common; + +import ninjabrainbot.event.ISubscribable; +import ninjabrainbot.event.ObservableProperty; +import ninjabrainbot.model.domainmodel.IDomainModel; +import ninjabrainbot.model.domainmodel.IFundamentalComponent; +import ninjabrainbot.model.domainmodel.IInferredComponent; + +public class DetachedDomainModel implements IDomainModel { + + ISubscribable whenModified = new ObservableProperty<>(); + + @Override + public void registerFundamentalComponent(IFundamentalComponent fundamentalComponent) { + } + + @Override + public void registerInferredComponent(IInferredComponent inferredComponent) { + } + + @Override + public ISubscribable createExternalEventFor(ISubscribable subscribable) { + return subscribable; + } + + @Override + public void checkWriteAccess() { + } + + @Override + public void acquireWriteLock() { + } + + @Override + public void releaseWriteLock() { + } + + @Override + public void reset() { + } + + @Override + public void undoUnderWriteLock() { + } + + @Override + public void redoUnderWriteLock() { + } + + @Override + public boolean isReset() { + return true; + } + + @Override + public boolean isFullyInitialized() { + return false; + } + + @Override + public ISubscribable whenModified() { + return whenModified; + } + + @Override + public Runnable applyWriteLock(Runnable runnable) { + return runnable; + } +} diff --git a/src/main/java/ninjabrainbot/model/datastate/divine/DivineContext.java b/src/main/java/ninjabrainbot/model/datastate/divine/DivineContext.java index df3efcac..361fa372 100644 --- a/src/main/java/ninjabrainbot/model/datastate/divine/DivineContext.java +++ b/src/main/java/ninjabrainbot/model/datastate/divine/DivineContext.java @@ -19,7 +19,7 @@ public class DivineContext implements IDivineContext, IDisposable { private final DisposeHandler disposeHandler = new DisposeHandler(); public DivineContext(IDomainModel domainModel) { - fossil = new DataComponent<>(domainModel); + fossil = new DataComponent<>("fossil", domainModel); discretizedAngularDensity = new DiscretizedDensity(0, 2.0 * Math.PI); disposeHandler.add(fossil.subscribeInternal(this::onFossilChanged)); } diff --git a/src/main/java/ninjabrainbot/model/datastate/highprecision/BoatDataState.java b/src/main/java/ninjabrainbot/model/datastate/highprecision/BoatDataState.java index 080826ae..f3a96935 100644 --- a/src/main/java/ninjabrainbot/model/datastate/highprecision/BoatDataState.java +++ b/src/main/java/ninjabrainbot/model/datastate/highprecision/BoatDataState.java @@ -17,23 +17,23 @@ public BoatDataState(IDomainModel domainModel) { } public BoatDataState(IDomainModel domainModel, DefaultBoatType defaultBoatType) { - reducingModulo360 = new DataComponent<>(domainModel, false); + reducingModulo360 = new DataComponent<>("boat_reducing_mod_360", domainModel, false); switch (defaultBoatType) { case GREEN: - enteringBoat = new DataComponent<>(domainModel, false); - boatAngle = new DataComponent<>(domainModel, 0f); - boatState = new DataComponent<>(domainModel, BoatState.VALID); + enteringBoat = new DataComponent<>("boat_entering", domainModel, false); + boatAngle = new DataComponent<>("boat_angle", domainModel, 0f); + boatState = new DataComponent<>("boat_state", domainModel, BoatState.VALID); break; case BLUE: - enteringBoat = new DataComponent<>(domainModel, true); - boatAngle = new DataComponent<>(domainModel); - boatState = new DataComponent<>(domainModel, BoatState.MEASURING); + enteringBoat = new DataComponent<>("boat_entering", domainModel, true); + boatAngle = new DataComponent<>("boat_angle", domainModel); + boatState = new DataComponent<>("boat_state", domainModel, BoatState.MEASURING); break; default: - enteringBoat = new DataComponent<>(domainModel, false); - boatAngle = new DataComponent<>(domainModel); - boatState = new DataComponent<>(domainModel, BoatState.NONE); + enteringBoat = new DataComponent<>("boat_entering", domainModel, false); + boatAngle = new DataComponent<>("boat_angle", domainModel); + boatState = new DataComponent<>("boat_state", domainModel, BoatState.NONE); } } diff --git a/src/main/java/ninjabrainbot/model/domainmodel/DataComponent.java b/src/main/java/ninjabrainbot/model/domainmodel/DataComponent.java index 0eefc9eb..cafe27a4 100644 --- a/src/main/java/ninjabrainbot/model/domainmodel/DataComponent.java +++ b/src/main/java/ninjabrainbot/model/domainmodel/DataComponent.java @@ -22,18 +22,20 @@ public class DataComponent implements IDataComponent private final ObservableField observableField; private final ISubscribable externalEvent; private final T defaultValue; + private final String uniqueId; - public DataComponent(IDomainModel domainModel) { - this(domainModel, null); + public DataComponent(String uniqueId, IDomainModel domainModel) { + this(uniqueId, domainModel, null); } - public DataComponent(IDomainModel domainModel, T defaultValue) { + public DataComponent(String uniqueId, IDomainModel domainModel, T defaultValue) { + Assert.isNotNull(domainModel, "Domain model cannot be null"); this.domainModel = domainModel; + this.uniqueId = uniqueId; observableField = new ObservableField<>(defaultValue); - externalEvent = domainModel != null ? domainModel.createExternalEventFor(observableField) : observableField; + externalEvent = domainModel.createExternalEventFor(observableField); this.defaultValue = defaultValue; - if (domainModel != null) - domainModel.registerFundamentalComponent(this); + domainModel.registerFundamentalComponent(this); } @Override @@ -83,6 +85,11 @@ public Subscription subscribe(Consumer subscriber) { return externalEvent.subscribe(subscriber); } + @Override + public String uniqueId() { + return uniqueId; + } + @Override public T getAsSerializable() { return get(); diff --git a/src/main/java/ninjabrainbot/model/domainmodel/IFundamentalComponent.java b/src/main/java/ninjabrainbot/model/domainmodel/IFundamentalComponent.java index 362662d4..ece70543 100644 --- a/src/main/java/ninjabrainbot/model/domainmodel/IFundamentalComponent.java +++ b/src/main/java/ninjabrainbot/model/domainmodel/IFundamentalComponent.java @@ -24,7 +24,7 @@ public interface IFundamentalComponent extends IDomai boolean isReset(); -// String uniqueId(); + String uniqueId(); U getAsSerializable(); diff --git a/src/main/java/ninjabrainbot/model/domainmodel/ListComponent.java b/src/main/java/ninjabrainbot/model/domainmodel/ListComponent.java index c5043cc0..db8b7761 100644 --- a/src/main/java/ninjabrainbot/model/domainmodel/ListComponent.java +++ b/src/main/java/ninjabrainbot/model/domainmodel/ListComponent.java @@ -26,14 +26,16 @@ public class ListComponent implements IListComponent private final ObservableList observableList; private final ISubscribable> externalEvent; private final int maxCapacity; + private final String uniqueId; - public ListComponent(IDomainModel domainModel, int maxCapacity) { + public ListComponent(String uniqueId, IDomainModel domainModel, int maxCapacity) { + Assert.isNotNull(domainModel, "Domain model cannot be null"); this.domainModel = domainModel; this.maxCapacity = maxCapacity; observableList = new ObservableList<>(); - externalEvent = domainModel != null ? domainModel.createExternalEventFor(observableList) : observableList; - if (domainModel != null) - domainModel.registerFundamentalComponent(this); + externalEvent = domainModel.createExternalEventFor(observableList); + domainModel.registerFundamentalComponent(this); + this.uniqueId = uniqueId; } @Override @@ -138,6 +140,11 @@ public Subscription subscribe(Consumer> subscriber) { return externalEvent.subscribe(subscriber); } + @Override + public String uniqueId() { + return uniqueId; + } + @Override public ArrayList getAsSerializable() { ArrayList arrayList = new ArrayList<>(); diff --git a/src/test/java/ninjabrainbot/model/domainmodel/DomainModelTests.java b/src/test/java/ninjabrainbot/model/domainmodel/DomainModelTests.java index 88033e04..040fcc61 100644 --- a/src/test/java/ninjabrainbot/model/domainmodel/DomainModelTests.java +++ b/src/test/java/ninjabrainbot/model/domainmodel/DomainModelTests.java @@ -8,7 +8,7 @@ public class DomainModelTests { @Test public void undoRedoWithDataComponent() { DomainModel domainModel = new DomainModel(); - DataComponent integer = new DataComponent<>(domainModel, 0); + DataComponent integer = new DataComponent<>("int", domainModel, 0); domainModel.finishInitialization(); Assertions.assertEquals(0, integer.get()); @@ -41,7 +41,7 @@ public void undoRedoWithDataComponent() { @Test public void undoRedoWithListComponent() { DomainModel domainModel = new DomainModel(); - ListComponent list = new ListComponent<>(domainModel, 10); + ListComponent list = new ListComponent<>("ints", domainModel, 10); domainModel.finishInitialization(); Assertions.assertEquals(0, list.size()); @@ -81,7 +81,7 @@ public void maxNumberOfUndoSteps() { int maxNumberOfUndoSnapshots = 100; DomainModel domainModel = new DomainModel(); - DataComponent integer = new DataComponent<>(domainModel, 0); + DataComponent integer = new DataComponent<>("int", domainModel, 0); domainModel.finishInitialization(); for (int i = 0; i < maxNumberOfUndoSnapshots; i++) { @@ -112,7 +112,7 @@ public void maxNumberOfUndoSteps() { @Test public void duplicateStatesAreNotSavedForUndo() { DomainModel domainModel = new DomainModel(); - DataComponent integer = new DataComponent<>(domainModel, 0); + DataComponent integer = new DataComponent<>("int", domainModel, 0); domainModel.finishInitialization(); domainModel.acquireWriteLock(); @@ -148,7 +148,7 @@ public void duplicateStatesAreNotSavedForUndo() { @Test public void noRaceConditionsDuringAttemptedConcurrentModification() { DomainModel domainModel = new DomainModel(); - DataComponent integer = new DataComponent<>(domainModel, 0); + DataComponent integer = new DataComponent<>("int", domainModel, 0); domainModel.finishInitialization(); Thread thread1 = new Thread(() -> { diff --git a/src/test/java/ninjabrainbot/model/domainmodel/ListComponentTests.java b/src/test/java/ninjabrainbot/model/domainmodel/ListComponentTests.java index f5a90b68..e1149ddb 100644 --- a/src/test/java/ninjabrainbot/model/domainmodel/ListComponentTests.java +++ b/src/test/java/ninjabrainbot/model/domainmodel/ListComponentTests.java @@ -4,6 +4,7 @@ import java.util.Collections; import ninjabrainbot.event.IReadOnlyList; +import ninjabrainbot.model.datastate.common.DetachedDomainModel; import ninjabrainbot.util.TestUtils; import org.junit.jupiter.api.Test; @@ -11,7 +12,7 @@ public class ListComponentTests { @Test public void getAsImmutable() { - ListComponent listComponent = new ListComponent<>(null, 10); + ListComponent listComponent = new ListComponent<>("list", new DetachedDomainModel(), 10); IReadOnlyList snapshot0 = listComponent.getAsImmutable(); listComponent.add(2); diff --git a/src/test/java/ninjabrainbot/model/input/ActiveInstanceInputHandlerTest.java b/src/test/java/ninjabrainbot/model/input/ActiveInstanceInputHandlerTest.java index e377d26b..455c6970 100644 --- a/src/test/java/ninjabrainbot/model/input/ActiveInstanceInputHandlerTest.java +++ b/src/test/java/ninjabrainbot/model/input/ActiveInstanceInputHandlerTest.java @@ -39,7 +39,7 @@ void changingMinecraftWorldExecutesResetAction(boolean preferenceEnabled) { preferences.autoResetWhenChangingInstance.set(preferenceEnabled); Mockito.when(domainModel.isReset()).thenReturn(false); - DataComponent locked = new DataComponent<>(domainModel, false); + DataComponent locked = new DataComponent<>("locked", domainModel, false); Mockito.when(dataState.locked()).thenReturn(locked); FakeActiveInstanceProvider activeInstanceProvider = new FakeActiveInstanceProvider(); @@ -67,7 +67,7 @@ void changingMinecraftWorld_FromNull_DoesNotExecuteResetAction(boolean preferenc preferences.autoResetWhenChangingInstance.set(preferenceEnabled); Mockito.when(domainModel.isReset()).thenReturn(false); - DataComponent locked = new DataComponent<>(domainModel, false); + DataComponent locked = new DataComponent<>("locked", domainModel, false); Mockito.when(dataState.locked()).thenReturn(locked); FakeActiveInstanceProvider activeInstanceProvider = new FakeActiveInstanceProvider(); diff --git a/src/test/java/ninjabrainbot/model/statistics/ApproximatedPriorTests.java b/src/test/java/ninjabrainbot/model/statistics/ApproximatedPriorTests.java index 4422a0bd..1a4c8d5b 100644 --- a/src/test/java/ninjabrainbot/model/statistics/ApproximatedPriorTests.java +++ b/src/test/java/ninjabrainbot/model/statistics/ApproximatedPriorTests.java @@ -5,6 +5,7 @@ import java.util.Map; import java.util.Set; +import ninjabrainbot.model.datastate.common.DetachedDomainModel; import ninjabrainbot.model.datastate.divine.DivineContext; import ninjabrainbot.model.datastate.statistics.ApproximatedPrior; import ninjabrainbot.model.datastate.statistics.IPrior; @@ -27,7 +28,7 @@ class ApproximatedPriorTests { @BeforeEach void setup() { - divineContext = new DivineContext(null); + divineContext = new DivineContext(new DetachedDomainModel()); } @ParameterizedTest diff --git a/src/test/java/ninjabrainbot/model/statistics/PriorTests.java b/src/test/java/ninjabrainbot/model/statistics/PriorTests.java index 347b460a..8db44d5d 100644 --- a/src/test/java/ninjabrainbot/model/statistics/PriorTests.java +++ b/src/test/java/ninjabrainbot/model/statistics/PriorTests.java @@ -3,6 +3,7 @@ import java.util.HashSet; import java.util.Set; +import ninjabrainbot.model.datastate.common.DetachedDomainModel; import ninjabrainbot.model.datastate.divine.DivineContext; import ninjabrainbot.model.datastate.divine.Fossil; import ninjabrainbot.model.datastate.statistics.IPrior; @@ -24,7 +25,7 @@ class PriorTests { @BeforeEach void setup() { - divineContext = new DivineContext(null); + divineContext = new DivineContext(new DetachedDomainModel()); } @ParameterizedTest diff --git a/src/test/java/ninjabrainbot/model/statistics/RayApproximatedPriorTests.java b/src/test/java/ninjabrainbot/model/statistics/RayApproximatedPriorTests.java index bbdbb494..87a9a84e 100644 --- a/src/test/java/ninjabrainbot/model/statistics/RayApproximatedPriorTests.java +++ b/src/test/java/ninjabrainbot/model/statistics/RayApproximatedPriorTests.java @@ -4,6 +4,7 @@ import java.util.Map; import ninjabrainbot.io.preferences.enums.McVersion; +import ninjabrainbot.model.datastate.common.DetachedDomainModel; import ninjabrainbot.model.datastate.divine.DivineContext; import ninjabrainbot.model.datastate.statistics.ApproximatedPrior; import ninjabrainbot.model.datastate.statistics.IPrior; @@ -25,7 +26,7 @@ class RayApproximatedPriorTests { @BeforeAll static void calculateTruePrior() { - divineContext = new DivineContext(null); + divineContext = new DivineContext(new DetachedDomainModel()); Ring ring = Ring.get(1); int radius = (int) Math.ceil(ring.outerRadiusPostSnapping); truePrior = new Prior(0, 0, radius, divineContext); diff --git a/src/test/java/ninjabrainbot/simulations/OneEyeAccuracySimulation.java b/src/test/java/ninjabrainbot/simulations/OneEyeAccuracySimulation.java index 00c5e8ef..c563a307 100644 --- a/src/test/java/ninjabrainbot/simulations/OneEyeAccuracySimulation.java +++ b/src/test/java/ninjabrainbot/simulations/OneEyeAccuracySimulation.java @@ -6,6 +6,7 @@ import ninjabrainbot.io.preferences.enums.McVersion; import ninjabrainbot.model.datastate.calculator.Calculator; import ninjabrainbot.model.datastate.calculator.ICalculatorResult; +import ninjabrainbot.model.datastate.common.DetachedDomainModel; import ninjabrainbot.model.datastate.common.IOverworldPosition; import ninjabrainbot.model.datastate.divine.DivineContext; import ninjabrainbot.model.datastate.divine.IDivineContext; @@ -59,7 +60,7 @@ public static void main(String[] args) { } private static ICalculatorResult calculateOneEye(IEnderEyeThrow eyeThrow) { - IListComponent throwSet = new ListComponent<>(null, 10); + IListComponent throwSet = new ListComponent<>("throw_list", new DetachedDomainModel(), 10); throwSet.add(eyeThrow); return calculator.triangulate(throwSet, new ObservableField<>(eyeThrow.getPlayerPosition()), divineContext); }