Skip to content

Commit

Permalink
refactor StructurePosition
Browse files Browse the repository at this point in the history
  • Loading branch information
Ninjabrain1 committed Sep 5, 2024
1 parent 84b099b commit c89f28f
Show file tree
Hide file tree
Showing 17 changed files with 253 additions and 138 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,14 @@ public AllAdvancementsPanel(StyleManager styleManager, IButtonInputHandler butto
super(styleManager);
setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
add(new AllAdvancementsHeader(styleManager));
add(new StructurePanel(styleManager, buttonInputHandler, allAdvancementsDataState.strongholdPosition(), strongholdIcon, false, true, true));
add(new StructurePanel(styleManager, buttonInputHandler, allAdvancementsDataState.spawnPosition(), shulkerIcon, true, true, true));
add(new StructurePanel(styleManager, buttonInputHandler, allAdvancementsDataState.outpostPosition(), outpostIcon, true, true, true));
add(new StructurePanel(styleManager, buttonInputHandler, allAdvancementsDataState.monumentPosition(), monumentIcon, true, true, true));
oneDotTwentyPlusPanels.add(new StructurePanel(styleManager, buttonInputHandler, allAdvancementsDataState.deepDarkPosition(), deepDarkIcon, true, true, true));
oneDotTwentyPlusPanels.add(new StructurePanel(styleManager, buttonInputHandler, allAdvancementsDataState.shulkerTransportPosition(), shulkerTransportIcon, true, true, false));
oneDotTwentyPlusPanels.add(new StructurePanel(styleManager, buttonInputHandler, allAdvancementsDataState.cityQueryPosition(), cityQueryIcon, true, true, false));
oneDotTwentyPlusPanels.add(new StructurePanel(styleManager, buttonInputHandler, allAdvancementsDataState.generalLocationPosition(), generalLocationIcon, true, false, false));
add(new StructurePanel(styleManager, buttonInputHandler, allAdvancementsDataState.strongholdInformation(), strongholdIcon, false, true, true));
add(new StructurePanel(styleManager, buttonInputHandler, allAdvancementsDataState.spawnInformation(), shulkerIcon, true, true, true));
add(new StructurePanel(styleManager, buttonInputHandler, allAdvancementsDataState.outpostInformation(), outpostIcon, true, true, true));
add(new StructurePanel(styleManager, buttonInputHandler, allAdvancementsDataState.monumentInformation(), monumentIcon, true, true, true));
oneDotTwentyPlusPanels.add(new StructurePanel(styleManager, buttonInputHandler, allAdvancementsDataState.deepDarkInformation(), deepDarkIcon, true, true, true));
oneDotTwentyPlusPanels.add(new StructurePanel(styleManager, buttonInputHandler, allAdvancementsDataState.shulkerTransportInformation(), shulkerTransportIcon, true, true, false));
oneDotTwentyPlusPanels.add(new StructurePanel(styleManager, buttonInputHandler, allAdvancementsDataState.cityQueryInformation(), cityQueryIcon, true, true, false));
oneDotTwentyPlusPanels.add(new StructurePanel(styleManager, buttonInputHandler, allAdvancementsDataState.generalLocationInformation(), generalLocationIcon, true, false, false));
for (StructurePanel panel : oneDotTwentyPlusPanels) {
add(panel);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@
import ninjabrainbot.event.IObservable;
import ninjabrainbot.gui.buttons.FlatButton;
import ninjabrainbot.gui.style.StyleManager;
import ninjabrainbot.model.datastate.common.StructurePosition;
import ninjabrainbot.model.datastate.common.StructureInformation;
import ninjabrainbot.model.input.IButtonInputHandler;

public class RemoveStructureButton extends FlatButton implements IDisposable {

final DisposeHandler disposeHandler = new DisposeHandler();

public RemoveStructureButton(StyleManager styleManager, IObservable<StructurePosition> structurePosition, IButtonInputHandler buttonInputHandler) {
public RemoveStructureButton(StyleManager styleManager, IObservable<StructureInformation> structurePosition, IButtonInputHandler buttonInputHandler) {
super(styleManager, "-");
setBackgroundColor(styleManager.currentTheme.COLOR_SLIGHTLY_WEAK);
setForegroundColor(styleManager.currentTheme.TEXT_COLOR_NEUTRAL);
Expand All @@ -29,8 +29,8 @@ public RemoveStructureButton(StyleManager styleManager, IObservable<StructurePos
structurePosition.subscribeEDT(this::updateVisibility);
}

private void updateVisibility(StructurePosition structurePosition) {
setVisible(structurePosition != null);
private void updateVisibility(StructureInformation structureInformation) {
setVisible(structureInformation != null);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import ninjabrainbot.gui.style.StyleManager;
import ninjabrainbot.gui.style.theme.ColumnLayout;
import ninjabrainbot.gui.style.theme.WrappedColor;
import ninjabrainbot.model.datastate.common.StructurePosition;
import ninjabrainbot.model.datastate.common.StructureInformation;
import ninjabrainbot.model.input.IButtonInputHandler;

public class StructurePanel extends ThemedPanel implements IDisposable {
Expand All @@ -30,7 +30,7 @@ public class StructurePanel extends ThemedPanel implements IDisposable {
private final DisposeHandler disposeHandler = new DisposeHandler();
private Subscription angleSubscription;

public StructurePanel(StyleManager styleManager, IButtonInputHandler buttonInputHandler, IObservable<StructurePosition> structurePosition, ImageIcon icon, boolean addDeleteButton, boolean showBorder, boolean showNether) {
public StructurePanel(StyleManager styleManager, IButtonInputHandler buttonInputHandler, IObservable<StructureInformation> structurePosition, ImageIcon icon, boolean addDeleteButton, boolean showBorder, boolean showNether) {
super(styleManager);
setOpaque(true);
ThemedLabel iconLabel = new ThemedLabel(styleManager, true);
Expand Down Expand Up @@ -67,19 +67,19 @@ public StructurePanel(StyleManager styleManager, IButtonInputHandler buttonInput
disposeHandler.add(structurePosition.subscribeEDT(this::onStructurePositionUpdated));
}

private RemoveStructureButton createDeleteButton(StyleManager styleManager, IObservable<StructurePosition> structurePosition, IButtonInputHandler buttonInputHandler) {
private RemoveStructureButton createDeleteButton(StyleManager styleManager, IObservable<StructureInformation> structurePosition, IButtonInputHandler buttonInputHandler) {
RemoveStructureButton removeStructureButton = new RemoveStructureButton(styleManager, structurePosition, buttonInputHandler);
removeStructureButton.setForegroundColor(styleManager.currentTheme.TEXT_COLOR_SLIGHTLY_WEAK);
disposeHandler.add(removeStructureButton);
return removeStructureButton;
}

public void onStructurePositionUpdated(StructurePosition structurePosition) {
if (structurePosition != null) {
location.setText(String.format("(%.0f, %.0f)", structurePosition.xInOverworld(), structurePosition.zInOverworld()));
angle.setText(String.format("%.1f", structurePosition.getTravelAngle()));
public void onStructurePositionUpdated(StructureInformation structureInformation) {
if (structureInformation != null) {
location.setText(String.format("(%.0f, %.0f)", structureInformation.xInOverworld(), structureInformation.zInOverworld()));
angle.setText(String.format("%.1f", structureInformation.getTravelAngle()));
if (showNether)
nether.setText(String.format("(%.0f, %.0f)", structurePosition.xInNether(), structurePosition.zInNether()));
nether.setText(String.format("(%.0f, %.0f)", structureInformation.xInNether(), structureInformation.zInNether()));
} else {
location.setText("");
nether.setText("");
Expand All @@ -90,8 +90,8 @@ public void onStructurePositionUpdated(StructurePosition structurePosition) {
angleSubscription.dispose();
angleSubscription = null;
}
if (structurePosition != null)
angleSubscription = structurePosition.whenRelativePlayerPositionChanged().subscribeEDT(this::onStructurePositionUpdated);
if (structureInformation != null)
angleSubscription = structureInformation.whenRelativePlayerPositionChanged().subscribeEDT(this::onStructurePositionUpdated);
}

public String getLocationText() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
package ninjabrainbot.gui.themeeditor;

import ninjabrainbot.model.datastate.alladvancements.IAllAdvancementsDataState;
import ninjabrainbot.model.datastate.common.StructurePosition;
import ninjabrainbot.model.datastate.common.IOverworldPosition;
import ninjabrainbot.model.datastate.common.StructureInformation;
import ninjabrainbot.model.domainmodel.DataComponent;
import ninjabrainbot.model.domainmodel.IDataComponent;
import ninjabrainbot.model.domainmodel.IDomainModelComponent;
Expand All @@ -14,42 +15,77 @@ public IDomainModelComponent<Boolean> allAdvancementsModeEnabled() {
}

@Override
public IDomainModelComponent<StructurePosition> strongholdPosition() {
public IDataComponent<IOverworldPosition> spawnPosition() {
return new DataComponent<>(null);
}

@Override
public IDataComponent<StructurePosition> spawnPosition() {
public IDataComponent<IOverworldPosition> outpostPosition() {
return new DataComponent<>(null);
}

@Override
public IDataComponent<StructurePosition> outpostPosition() {
public IDataComponent<IOverworldPosition> monumentPosition() {
return new DataComponent<>(null);
}

@Override
public IDataComponent<StructurePosition> monumentPosition() {
public IDataComponent<IOverworldPosition> deepDarkPosition() {
return new DataComponent<>(null);
}

@Override
public IDataComponent<StructurePosition> deepDarkPosition() {
public IDataComponent<IOverworldPosition> cityQueryPosition() {
return new DataComponent<>(null);
}

@Override
public IDataComponent<StructurePosition> cityQueryPosition() {
public IDataComponent<IOverworldPosition> shulkerTransportPosition() {
return new DataComponent<>(null);
}

@Override
public IDataComponent<StructurePosition> shulkerTransportPosition() {
public IDataComponent<IOverworldPosition> generalLocationPosition() {
return new DataComponent<>(null);
}

@Override
public IDataComponent<StructurePosition> generalLocationPosition() {
public IDomainModelComponent<StructureInformation> strongholdInformation() {
return new DataComponent<>(null);
}

@Override
public IDomainModelComponent<StructureInformation> spawnInformation() {
return new DataComponent<>(null);
}

@Override
public IDomainModelComponent<StructureInformation> outpostInformation() {
return new DataComponent<>(null);
}

@Override
public IDomainModelComponent<StructureInformation> monumentInformation() {
return new DataComponent<>(null);
}

@Override
public IDomainModelComponent<StructureInformation> deepDarkInformation() {
return new DataComponent<>(null);
}

@Override
public IDomainModelComponent<StructureInformation> cityQueryInformation() {
return new DataComponent<>(null);
}

@Override
public IDomainModelComponent<StructureInformation> shulkerTransportInformation() {
return new DataComponent<>(null);
}

@Override
public IDomainModelComponent<StructureInformation> generalLocationInformation() {
return new DataComponent<>(null);
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package ninjabrainbot.gui.themeeditor;

import ninjabrainbot.model.datastate.common.StructurePosition;
import ninjabrainbot.model.datastate.common.StructureInformation;
import ninjabrainbot.model.datastate.endereye.IEnderEyeThrow;
import ninjabrainbot.model.input.IButtonInputHandler;

Expand All @@ -27,7 +27,7 @@ public void onRemoveThrowButtonPressed(IEnderEyeThrow throwToRemove) {
}

@Override
public void onRemoveAllAdvancementsStructureButtonPressed(StructurePosition structurePosition) {
public void onRemoveAllAdvancementsStructureButtonPressed(StructureInformation structureInformation) {
}

}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package ninjabrainbot.io.api.queries;

import ninjabrainbot.model.datastate.IDataState;
import ninjabrainbot.model.datastate.common.StructurePosition;
import ninjabrainbot.model.datastate.common.StructureInformation;
import org.json.JSONObject;

public class AllAdvancementsQuery implements IQuery {
Expand All @@ -19,10 +19,10 @@ public AllAdvancementsQuery(boolean isPretty) {
public String get(IDataState dataState) {
JSONObject rootObject = new JSONObject();
rootObject.put("isAllAdvancementsModeEnabled", dataState.allAdvancementsDataState().allAdvancementsModeEnabled().get());
rootObject.put("strongholdPosition", convertPosition(dataState.allAdvancementsDataState().strongholdPosition().get()));
rootObject.put("spawnPosition", convertPosition(dataState.allAdvancementsDataState().spawnPosition().get()));
rootObject.put("outpostPosition", convertPosition(dataState.allAdvancementsDataState().outpostPosition().get()));
rootObject.put("monumentPosition", convertPosition(dataState.allAdvancementsDataState().monumentPosition().get()));
rootObject.put("strongholdPosition", convertPosition(dataState.allAdvancementsDataState().strongholdInformation().get()));
rootObject.put("spawnPosition", convertPosition(dataState.allAdvancementsDataState().spawnInformation().get()));
rootObject.put("outpostPosition", convertPosition(dataState.allAdvancementsDataState().outpostInformation().get()));
rootObject.put("monumentPosition", convertPosition(dataState.allAdvancementsDataState().monumentInformation().get()));
return rootObject.toString(isPretty ? 4 : 0);
}

Expand All @@ -31,15 +31,15 @@ public boolean supportsSubscriptions() {
return true;
}

private JSONObject convertPosition(StructurePosition structurePosition) {
private JSONObject convertPosition(StructureInformation structureInformation) {
JSONObject structurePositionObject = new JSONObject();
if (structurePosition == null)
if (structureInformation == null)
return structurePositionObject;

structurePositionObject.put("xInOverworld", structurePosition.xInOverworld());
structurePositionObject.put("zInOverworld", structurePosition.zInOverworld());
structurePositionObject.put("overworldDistance", structurePosition.getOverworldDistance());
structurePositionObject.put("travelAngle", structurePosition.getTravelAngle());
structurePositionObject.put("xInOverworld", structureInformation.xInOverworld());
structurePositionObject.put("zInOverworld", structureInformation.zInOverworld());
structurePositionObject.put("overworldDistance", structureInformation.getOverworldDistance());
structurePositionObject.put("travelAngle", structureInformation.getTravelAngle());
return structurePositionObject;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,49 +2,49 @@

import ninjabrainbot.model.actions.IAction;
import ninjabrainbot.model.datastate.alladvancements.IAllAdvancementsDataState;
import ninjabrainbot.model.datastate.common.StructurePosition;
import ninjabrainbot.model.datastate.common.StructureInformation;

public class RemoveStructureAction implements IAction {

private final IAllAdvancementsDataState allAdvancementsDataState;
private final StructurePosition structurePosition;
private final StructureInformation structureInformation;

public RemoveStructureAction(IAllAdvancementsDataState allAdvancementsDataState, StructurePosition structurePosition) {
public RemoveStructureAction(IAllAdvancementsDataState allAdvancementsDataState, StructureInformation structureInformation) {
this.allAdvancementsDataState = allAdvancementsDataState;
this.structurePosition = structurePosition;
this.structureInformation = structureInformation;
}

@Override
public void execute() {
if (allAdvancementsDataState.spawnPosition().get() == structurePosition) {
if (allAdvancementsDataState.spawnInformation().get() == structureInformation) {
allAdvancementsDataState.spawnPosition().reset();
return;
}
if (allAdvancementsDataState.outpostPosition().get() == structurePosition) {
if (allAdvancementsDataState.outpostInformation().get() == structureInformation) {
allAdvancementsDataState.outpostPosition().reset();
return;
}
if (allAdvancementsDataState.monumentPosition().get() == structurePosition) {
if (allAdvancementsDataState.monumentInformation().get() == structureInformation) {
allAdvancementsDataState.monumentPosition().reset();
return;
}
if (allAdvancementsDataState.shulkerTransportPosition().get() == structurePosition) {
if (allAdvancementsDataState.shulkerTransportInformation().get() == structureInformation) {
allAdvancementsDataState.shulkerTransportPosition().reset();
return;
}
if (allAdvancementsDataState.deepDarkPosition().get() == structurePosition) {
if (allAdvancementsDataState.deepDarkInformation().get() == structureInformation) {
allAdvancementsDataState.deepDarkPosition().reset();
return;
}
if (allAdvancementsDataState.cityQueryPosition().get() == structurePosition) {
if (allAdvancementsDataState.cityQueryInformation().get() == structureInformation) {
allAdvancementsDataState.cityQueryPosition().reset();
return;
}
if (allAdvancementsDataState.generalLocationPosition().get() == structurePosition) {
if (allAdvancementsDataState.generalLocationInformation().get() == structureInformation) {
allAdvancementsDataState.generalLocationPosition().reset();
return;
}
throw new IllegalArgumentException(String.format("Cannot remove structure position %s because it not present in the data state.", structurePosition));
throw new IllegalArgumentException(String.format("Cannot remove structure position %s because it not present in the data state.", structureInformation));
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,22 @@

import ninjabrainbot.model.actions.IAction;
import ninjabrainbot.model.datastate.alladvancements.IAllAdvancementsDataState;
import ninjabrainbot.model.datastate.common.StructurePosition;
import ninjabrainbot.model.datastate.common.OverworldPosition;
import ninjabrainbot.model.datastate.common.StructureInformation;
import ninjabrainbot.model.datastate.endereye.F3IData;

public class SetAllAdvancementsGeneralLocationAction implements IAction {

private final IAllAdvancementsDataState allAdvancementsDataState;
private final StructurePosition structurePosition;
private final OverworldPosition structureInformation;

public SetAllAdvancementsGeneralLocationAction(IAllAdvancementsDataState allAdvancementsDataState, F3IData f3iData) {
this.allAdvancementsDataState = allAdvancementsDataState;
this.structurePosition = new StructurePosition(f3iData.x, f3iData.z);
this.structureInformation = new OverworldPosition(f3iData.x, f3iData.z);
}

@Override
public void execute() {
allAdvancementsDataState.generalLocationPosition().set(structurePosition);
allAdvancementsDataState.generalLocationPosition().set(structureInformation);
}
}
Loading

0 comments on commit c89f28f

Please sign in to comment.