Skip to content

Commit

Permalink
Merge pull request #178 from boholder/1.19-area-map
Browse files Browse the repository at this point in the history
[WIP] Area Map - Cursor Reset Key, cursor moving and reset narration
  • Loading branch information
khanshoaib3 committed Oct 4, 2023
2 parents a2a426c + e9118f5 commit 4917c21
Show file tree
Hide file tree
Showing 19 changed files with 367 additions and 135 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ public class MainClass {

public static CameraControls cameraControls = null;
public static InventoryControls inventoryControls = null;
public static ReadCrosshair readCrosshair = null;
public static BiomeIndicator biomeIndicator = null;
public static XPIndicator xpIndicator = null;
public static FacingDirection facingDirection = null;
Expand Down Expand Up @@ -57,7 +56,6 @@ public static void init() {

MainClass.cameraControls = new CameraControls();
MainClass.inventoryControls = new InventoryControls();
MainClass.readCrosshair = new ReadCrosshair();
MainClass.biomeIndicator = new BiomeIndicator();
MainClass.xpIndicator = new XPIndicator();
MainClass.facingDirection = new FacingDirection();
Expand Down Expand Up @@ -104,8 +102,7 @@ public static void clientTickEventsMethod(MinecraftClient minecraftClient) {
if (cameraControls != null && CameraControlsConfigMap.getInstance().isEnabled())
cameraControls.update();

if (readCrosshair != null && ReadCrosshairConfigMap.getInstance().isEnabled())
readCrosshair.update();
ReadCrosshair.getInstance().update();

if (biomeIndicator != null && otherConfigsMap.isBiomeIndicatorEnabled())
biomeIndicator.update();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@ public class AreaMapConfigMap {
private static AreaMapConfigMap instance;

@SerializedName("Enabled")
private boolean enabled;
private boolean enabled = true;
@SerializedName("Delay (in milliseconds)")
private int delayInMilliseconds = 150;

private AreaMapConfigMap() {
}
Expand All @@ -24,6 +26,7 @@ public static void setInstance(AreaMapConfigMap map) {
public static AreaMapConfigMap buildDefault() {
AreaMapConfigMap m = new AreaMapConfigMap();
m.enabled = true;
m.delayInMilliseconds = 150;

setInstance(m);
return m;
Expand All @@ -33,8 +36,15 @@ public boolean isEnabled() {
return enabled;
}

public AreaMapConfigMap setEnabled(boolean enabled) {
public void setEnabled(boolean enabled) {
this.enabled = enabled;
return this;
}

public int getDelayInMilliseconds() {
return delayInMilliseconds;
}

public void setDelayInMilliseconds(int delayInMilliseconds) {
this.delayInMilliseconds = delayInMilliseconds;
}
}
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
package com.github.khanshoaib3.minecraft_access.config.config_maps;

import com.github.khanshoaib3.minecraft_access.config.Config;
import com.github.khanshoaib3.minecraft_access.features.PositionNarrator;
import com.google.gson.annotations.SerializedName;

public class OtherConfigsMap {

private static OtherConfigsMap instance;

public static final String DEFAULT_POSITION_FORMAT = "{x}x, {y}y, {z}z";

@SerializedName("Enable Biome Indicator")
private boolean biomeIndicatorEnabled;
@SerializedName("Enable XP Indicator")
Expand Down Expand Up @@ -156,7 +157,7 @@ public static OtherConfigsMap buildDefault() {
defaultOtherConfigsMap.setFacingDirectionEnabled(true);
defaultOtherConfigsMap.setHealthNHungerEnabled(true);
defaultOtherConfigsMap.setPositionNarratorEnabled(true);
defaultOtherConfigsMap.setPositionNarratorFormat(PositionNarrator.defaultFormat);
defaultOtherConfigsMap.setPositionNarratorFormat(DEFAULT_POSITION_FORMAT);
defaultOtherConfigsMap.setUse12HourTimeFormat(false);
defaultOtherConfigsMap.setActionBarEnabled(true);
defaultOtherConfigsMap.setFishingHarvestEnabled(true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,11 @@
import com.github.khanshoaib3.minecraft_access.config.config_maps.AreaMapConfigMap;
import com.github.khanshoaib3.minecraft_access.utils.BaseScreen;
import net.minecraft.client.gui.widget.ButtonWidget;
import net.minecraft.client.resource.language.I18n;
import net.minecraft.text.Text;

import java.util.Objects;

public class AreaMapConfigMenu extends BaseScreen {
public AreaMapConfigMenu(String title, BaseScreen previousScreen) {
super(title, previousScreen);
Expand All @@ -25,5 +28,10 @@ protected void init() {
Config.getInstance().writeJSON();
});
this.addDrawableChild(featureToggleButton);

ButtonWidget delayButton = this.buildButtonWidget(
I18n.translate("minecraft_access.gui.common.button.delay", initMap.getDelayInMilliseconds()),
(button) -> Objects.requireNonNull(this.client).setScreen(new ValueEntryMenu("value_entry_menu", ValueEntryMenu.CONFIG_TYPE.AREA_MAP_DELAY, this)));
this.addDrawableChild(delayButton);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ public enum CONFIG_TYPE {
NARRATOR_MENU_VOLUME,
NARRATOR_MENU_RANGE,
OTHER_POSITION_NARRATOR_FORMAT,
AREA_MAP_DELAY
}

public enum VALUE_TYPE {
Expand Down Expand Up @@ -66,6 +67,7 @@ protected void init() {
final FluidDetectorConfigMap fluidDetectorConfigMap = FluidDetectorConfigMap.getInstance();
final POIBlocksConfigMap poiBlocksConfigMap = POIBlocksConfigMap.getInstance();
final POIEntitiesConfigMap entitiesConfigMap = POIEntitiesConfigMap.getInstance();
final AreaMapConfigMap areaMapConfigMap = AreaMapConfigMap.getInstance();

switch (configType) {
case CAMERA_CONTROLS_NORMAL_ROTATING_ANGLE -> {
Expand Down Expand Up @@ -168,6 +170,10 @@ protected void init() {
this.value = OtherConfigsMap.getInstance().getPositionNarratorFormat();
this.valueType = VALUE_TYPE.STRING;
}
case AREA_MAP_DELAY -> {
this.value = String.valueOf(areaMapConfigMap.getDelayInMilliseconds());
this.valueType = VALUE_TYPE.INT;
}
}

this.previousValue = this.value;
Expand Down Expand Up @@ -212,6 +218,7 @@ private void updateConfig() {
final FluidDetectorConfigMap fluidDetectorConfigMap = FluidDetectorConfigMap.getInstance();
final POIBlocksConfigMap poibBlocksConfigMap = POIBlocksConfigMap.getInstance();
final POIEntitiesConfigMap poiEntitiesConfigMap = POIEntitiesConfigMap.getInstance();
final AreaMapConfigMap areaMapConfigMap = AreaMapConfigMap.getInstance();

switch (configType) {
case CAMERA_CONTROLS_NORMAL_ROTATING_ANGLE ->
Expand Down Expand Up @@ -250,6 +257,7 @@ private void updateConfig() {
case NARRATOR_MENU_VOLUME -> fluidDetectorConfigMap.setVolume(Float.parseFloat(value));
case NARRATOR_MENU_RANGE -> fluidDetectorConfigMap.setRange(Integer.parseInt(value));
case OTHER_POSITION_NARRATOR_FORMAT -> OtherConfigsMap.getInstance().setPositionNarratorFormat(value);
case AREA_MAP_DELAY -> areaMapConfigMap.setDelayInMilliseconds(Integer.parseInt(value));
}

Config.getInstance().writeJSON();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,10 @@
import com.github.khanshoaib3.minecraft_access.utils.KeyBindingsHandler;
import com.github.khanshoaib3.minecraft_access.utils.condition.Keystroke;
import com.github.khanshoaib3.minecraft_access.utils.position.PlayerPositionUtils;
import com.github.khanshoaib3.minecraft_access.utils.position.PositionUtils;
import com.github.khanshoaib3.minecraft_access.utils.system.KeyUtils;
import net.minecraft.client.MinecraftClient;
import org.lwjgl.glfw.GLFW;

import java.util.stream.Stream;

/**
* Adds key bindings to speak the player's position.<br><br>
* Keybindings and combinations:<br>
Expand All @@ -22,7 +19,6 @@
*/
public class PositionNarrator {
private static final PositionNarrator instance;
public static String defaultFormat = "{x}x, {y}y, {z}z";
public static Keystroke KeyX = new Keystroke(() -> KeyUtils.isAnyPressed(GLFW.GLFW_KEY_X));
public static Keystroke KeyC = new Keystroke(() -> KeyUtils.isAnyPressed(GLFW.GLFW_KEY_C));
public static Keystroke KeyZ = new Keystroke(() -> KeyUtils.isAnyPressed(GLFW.GLFW_KEY_Z));
Expand Down Expand Up @@ -52,19 +48,16 @@ public void update() {
boolean isLeftAltPressed = KeyUtils.isLeftAltPressed();
if (isLeftAltPressed) {
if (KeyX.canBeTriggered()) {
MainClass.speakWithNarrator(new PlayerPositionUtils(minecraftClient).getNarratableXPos(), true);
MainClass.speakWithNarrator(PlayerPositionUtils.getNarratableXPos(), true);
} else if (KeyC.canBeTriggered()) {
MainClass.speakWithNarrator(new PlayerPositionUtils(minecraftClient).getNarratableYPos(), true);
MainClass.speakWithNarrator(PlayerPositionUtils.getNarratableYPos(), true);
} else if (KeyZ.canBeTriggered()) {
MainClass.speakWithNarrator(new PlayerPositionUtils(minecraftClient).getNarratableZPos(), true);
MainClass.speakWithNarrator(PlayerPositionUtils.getNarratableZPos(), true);
}
}

if (positionNarrationKey.canBeTriggered()) {
String posX = PositionUtils.getNarratableNumber(new PlayerPositionUtils(minecraftClient).getX());
String posY = PositionUtils.getNarratableNumber(new PlayerPositionUtils(minecraftClient).getY());
String posZ = PositionUtils.getNarratableNumber(new PlayerPositionUtils(minecraftClient).getZ());
MainClass.speakWithNarrator(getNarrationText(posX, posY, posZ), true);
MainClass.speakWithNarrator(PlayerPositionUtils.getI18NPosition(), true);
}

KeyX.updateStateForNextTick();
Expand All @@ -77,14 +70,5 @@ public void update() {
}
}

private String getNarrationText(String posX, String posY, String posZ) {
String format = OtherConfigsMap.getInstance().getPositionNarratorFormat();

// check if configured format is valid
if (!Stream.of("{x}", "{y}", "{z}").allMatch(format::contains)) {
format = defaultFormat;
}

return format.replace("{x}", posX).replace("{y}", posY).replace("{z}", posZ);
}
}
Loading

0 comments on commit 4917c21

Please sign in to comment.