💥 Lot of breaking changes.

This commit is contained in:
LambdAurora
2020-01-04 15:19:02 +01:00
parent 7c06afb4a4
commit 738d094fb1
59 changed files with 554 additions and 328 deletions

View File

@@ -1,110 +1,35 @@
plugins {
id 'fabric-loom' version '0.2.6-SNAPSHOT'
id 'java-library'
id 'maven-publish'
}
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
allprojects {
group = project.maven_group
version = project.mod_version
archivesBaseName = project.archives_base_name
version = project.mod_version
group = project.maven_group
minecraft {
}
repositories {
mavenLocal()
mavenCentral()
maven { url = 'https://aperlambda.github.io/maven' }
maven {
name = 'CottonMC'
url = 'http://server.bbkr.space:8081/artifactory/libs-snapshot'
}
repositories {
maven { url = "https://jitpack.io" }
mavenLocal()
mavenCentral()
maven { url = 'https://aperlambda.github.io/maven' }
}
// SpruceUI
ivy {
url 'https://github.com/LambdAurora/SpruceUI/releases/download/'
patternLayout {
artifact '[revision]/[module]-[version].[ext]'
}
metadataSources() {
artifact()
}
dependencies {
}
// OkZoomer
ivy {
url 'https://github.com/joaoh1/OkZoomer/releases/download/'
patternLayout {
artifact '[revision]/[module]-[version].[ext]'
}
metadataSources() {
artifact()
}
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}
// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task
// if it is present.
// If you remove this task, sources will not be generated.
task sourcesJar(type: Jar, dependsOn: classes) {
classifier = "sources"
from sourceSets.main.allSource
}
}
dependencies {
//to change the versions see the gradle.properties file
minecraft "com.mojang:minecraft:${project.minecraft_version}"
mappings "net.fabricmc:yarn:${project.yarn_mappings}"
modCompile "net.fabricmc:fabric-loader:${project.loader_version}"
// Fabric API. This is technically optional, but you probably want it anyway.
modApi "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
modCompile "io.github.prospector:modmenu:1.8.0+build.16"
modCompile "me.lambdaurora:spruceui:${project.spruceui_version}"
include "me.lambdaurora:spruceui:${project.spruceui_version}"
//modCompile "io.github.cottonmc:cotton-client-commands:0.4.2+1.14.3-SNAPSHOT"
// Compatibility mods
modCompile "io.github.joaoh1:okzoomer:1.0.3"
implementation "org.jetbrains:annotations:17.0.0"
implementation "org.aperlambda:lambdajcommon:1.7.2"
implementation "com.electronwill.night-config:core:3.5.3"
implementation "com.electronwill.night-config:toml:3.5.3"
include "org.jetbrains:annotations:17.0.0"
include "org.aperlambda:lambdajcommon:1.7.2"
include "com.electronwill.night-config:core:3.5.3"
include "com.electronwill.night-config:toml:3.5.3"
}
processResources {
inputs.property "version", project.version
from(sourceSets.main.resources.srcDirs) {
include "fabric.mod.json"
expand "version": project.version
}
from(sourceSets.main.resources.srcDirs) {
exclude "fabric.mod.json"
}
}
// ensure that the encoding is set to UTF-8, no matter what the system default is
// this fixes some edge cases with special characters not displaying correctly
// see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}
// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task
// if it is present.
// If you remove this task, sources will not be generated.
task sourcesJar(type: Jar, dependsOn: classes) {
classifier = "sources"
from sourceSets.main.allSource
}
jar {
from "LICENSE"
}
/*
// configure the maven publication
publishing {
publications {
@@ -123,4 +48,4 @@ publishing {
repositories {
mavenLocal()
}
}
}*/

15
common/build.gradle Normal file
View File

@@ -0,0 +1,15 @@
plugins {
id 'java-library'
}
dependencies {
api "org.jetbrains:annotations:17.0.0"
api "org.aperlambda:lambdajcommon:1.7.2"
api "com.electronwill.night-config:core:3.5.3"
api "com.electronwill.night-config:toml:3.5.3"
}
java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}

View File

@@ -9,7 +9,6 @@
package me.lambdaurora.lambdacontrols;
import net.minecraft.client.resource.language.I18n;
import org.aperlambda.lambdacommon.utils.Nameable;
import org.jetbrains.annotations.NotNull;
@@ -20,7 +19,7 @@ import java.util.Optional;
* Represents the controls mode.
*
* @author LambdAurora
* @version 1.0.0
* @version 1.1.0
* @since 1.0.0
*/
public enum ControlsMode implements Nameable
@@ -43,13 +42,14 @@ public enum ControlsMode implements Nameable
}
/**
* Gets the translated name of this controls mode.
* Gets the translation key of this controls mode.
*
* @return The translated name of this controls mode.
* @return The translated key of this controls mode.
* @since 1.1.0
*/
public String get_translated_name()
public String get_translation_key()
{
return I18n.translate("lambdacontrols.controls_mode." + this.get_name());
return "lambdacontrols.controls_mode." + this.get_name();
}
@Override

View File

@@ -0,0 +1,22 @@
/*
* Copyright © 2020 LambdAurora <aurora42lambda@gmail.com>
*
* This file is part of LambdaControls.
*
* Licensed under the MIT license. For more information,
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols;
/**
* Represents the constants used by LambdaControls.
*
* @author LambdAurora
* @version 1.1.0
* @since 1.1.0
*/
public class LambdaControlsConstants
{
public static final String NAMESPACE = "lambdacontrols";
}

21
elytra/build.gradle Normal file
View File

@@ -0,0 +1,21 @@
plugins {
id 'java-library'
}
archivesBaseName = project.archives_base_name + "-elytra"
repositories {
maven { url = 'https://hub.spigotmc.org/nexus/content/groups/public/' }
maven { url = 'https://mcelytra.github.io/maven/' }
maven { url = 'https://libraries.minecraft.net/' }
}
dependencies {
api project(":common")
implementation "org.mcelytra:elytra-core:1.0.0-SNAPSHOT"
}
java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}

View File

@@ -0,0 +1,53 @@
/*
* Copyright © 2020 LambdAurora <aurora42lambda@gmail.com>
*
* This file is part of LambdaControls.
*
* Licensed under the MIT license. For more information,
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols.event;
import me.lambdaurora.lambdacontrols.ControlsMode;
import me.lambdaurora.lambdacontrols.LambdaControlsConstants;
import org.aperlambda.lambdacommon.Identifier;
import org.jetbrains.annotations.NotNull;
import org.mcelytra.core.entity.EntityPlayer;
import org.mcelytra.core.event.HandlerList;
import org.mcelytra.core.event.player.PlayerEvent;
/**
* Represents an event which is fired when a player change their controls mode.
*
* @author LambdAurora
* @version 1.1.0
* @since 1.1.0
*/
public class PlayerControlsModeEvent extends PlayerEvent
{
private static final HandlerList HANDLERS = new HandlerList();
private final ControlsMode controls_mode;
public PlayerControlsModeEvent(@NotNull EntityPlayer player, @NotNull ControlsMode controls_mode)
{
super(new Identifier(LambdaControlsConstants.NAMESPACE, "player_controls_mode"), player, true);
this.controls_mode = controls_mode;
}
/**
* Returns the controls mode of the player.
*
* @return The player's controls mode.
*/
public ControlsMode get_controls_mode()
{
return this.controls_mode;
}
@Override
public @NotNull HandlerList get_handlers()
{
return HANDLERS;
}
}

87
fabric/build.gradle Normal file
View File

@@ -0,0 +1,87 @@
plugins {
id 'fabric-loom' version '0.2.6-SNAPSHOT'
id 'java-library'
id 'maven-publish'
}
archivesBaseName = project.archives_base_name + "-fabric"
minecraft {
}
repositories {
maven {
name = 'CottonMC'
url = 'http://server.bbkr.space:8081/artifactory/libs-snapshot'
}
repositories {
maven { url = "https://jitpack.io" }
}
// SpruceUI
ivy {
url 'https://github.com/LambdAurora/SpruceUI/releases/download/'
patternLayout {
artifact '[revision]/[module]-[version].[ext]'
}
metadataSources() {
artifact()
}
}
// OkZoomer
ivy {
url 'https://github.com/joaoh1/OkZoomer/releases/download/'
patternLayout {
artifact '[revision]/[module]-[version].[ext]'
}
metadataSources() {
artifact()
}
}
}
dependencies {
//to change the versions see the gradle.properties file
minecraft "com.mojang:minecraft:${project.minecraft_version}"
mappings "net.fabricmc:yarn:${project.yarn_mappings}"
modCompile "net.fabricmc:fabric-loader:${project.loader_version}"
// Fabric API. This is technically optional, but you probably want it anyway.
modApi "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
modCompile "io.github.prospector:modmenu:1.8.0+build.16"
modCompile "me.lambdaurora:spruceui:${project.spruceui_version}"
include "me.lambdaurora:spruceui:${project.spruceui_version}"
//modCompile "io.github.cottonmc:cotton-client-commands:0.4.2+1.14.3-SNAPSHOT"
// Compatibility mods
modCompile "io.github.joaoh1:okzoomer:1.0.3"
api project(":common")
include project(":common")
include "org.jetbrains:annotations:17.0.0"
include "org.aperlambda:lambdajcommon:1.7.2"
include "com.electronwill.night-config:core:3.5.3"
include "com.electronwill.night-config:toml:3.5.3"
}
processResources {
inputs.property "version", project.version
from(sourceSets.main.resources.srcDirs) {
include "fabric.mod.json"
expand "version": project.version
}
from(sourceSets.main.resources.srcDirs) {
exclude "fabric.mod.json"
}
}
java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
jar {
from "../LICENSE"
}

View File

@@ -0,0 +1,74 @@
/*
* Copyright © 2020 LambdAurora <aurora42lambda@gmail.com>
*
* This file is part of LambdaControls.
*
* Licensed under the MIT license. For more information,
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols;
import me.lambdaurora.lambdacontrols.event.PlayerChangeControlsModeCallback;
import net.fabricmc.api.ModInitializer;
import net.fabricmc.fabric.api.network.ServerSidePacketRegistry;
import net.minecraft.util.Identifier;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
/**
* Represents the LambdaControls mod.
*
* @author LambdAurora
* @version 1.1.0
* @since 1.0.0
*/
public class LambdaControls implements ModInitializer
{
private static LambdaControls INSTANCE;
public static final Identifier CONTROLS_MODE_CHANNEL = new Identifier(LambdaControlsConstants.NAMESPACE, "controls_mode");
public final Logger logger = LogManager.getLogger("LambdaControls");
@Override
public void onInitialize()
{
INSTANCE = this;
this.log("Initializing LambdaControls...");
ServerSidePacketRegistry.INSTANCE.register(CONTROLS_MODE_CHANNEL,
(context, attached_data) -> ControlsMode.by_id(attached_data.readString(32))
.ifPresent(controls_mode -> context.getTaskQueue()
.execute(() -> PlayerChangeControlsModeCallback.EVENT.invoker().apply(context.getPlayer(), controls_mode))));
}
/**
* Prints a message to the terminal.
*
* @param info The message to print.
*/
public void log(String info)
{
this.logger.info("[LambdaControls] " + info);
}
/**
* Prints a warning to the terminal.
*
* @param warning The warning to print.
*/
public void warn(String warning)
{
this.logger.info("[LambdaControls] " + warning);
}
/**
* Gets the LambdaControls instance.
*
* @return The LambdaControls instance.
*/
public static LambdaControls get()
{
return INSTANCE;
}
}

View File

@@ -7,7 +7,7 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols;
package me.lambdaurora.lambdacontrols.client;
/**
* Represents a button state.

View File

@@ -7,7 +7,7 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols;
package me.lambdaurora.lambdacontrols.client;
import net.minecraft.client.resource.language.I18n;
import org.aperlambda.lambdacommon.utils.Nameable;

View File

@@ -7,7 +7,7 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols;
package me.lambdaurora.lambdacontrols.client;
import net.minecraft.client.resource.language.I18n;
import org.aperlambda.lambdacommon.utils.Nameable;

View File

@@ -7,13 +7,16 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols;
package me.lambdaurora.lambdacontrols.client;
import com.mojang.blaze3d.platform.GlStateManager;
import me.lambdaurora.lambdacontrols.compat.LambdaControlsCompat;
import me.lambdaurora.lambdacontrols.controller.ButtonBinding;
import me.lambdaurora.lambdacontrols.controller.Controller;
import me.lambdaurora.lambdacontrols.gui.LambdaControlsHud;
import me.lambdaurora.lambdacontrols.ControlsMode;
import me.lambdaurora.lambdacontrols.LambdaControls;
import me.lambdaurora.lambdacontrols.LambdaControlsConstants;
import me.lambdaurora.lambdacontrols.client.compat.LambdaControlsCompat;
import me.lambdaurora.lambdacontrols.client.controller.ButtonBinding;
import me.lambdaurora.lambdacontrols.client.controller.Controller;
import me.lambdaurora.lambdacontrols.client.gui.LambdaControlsHud;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.client.keybinding.FabricKeyBinding;
import net.fabricmc.fabric.api.client.keybinding.KeyBindingRegistry;
@@ -27,34 +30,30 @@ import net.minecraft.client.util.InputUtil;
import net.minecraft.text.LiteralText;
import net.minecraft.text.TranslatableText;
import net.minecraft.util.Identifier;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.aperlambda.lambdacommon.utils.Pair;
import org.jetbrains.annotations.NotNull;
import org.lwjgl.glfw.GLFW;
/**
* Represents the LambdaControls mod.
* Represents the LambdaControls client mod.
*
* @author LambdAurora
* @version 1.1.0
* @since 1.0.0
* @since 1.1.0
*/
public class LambdaControls implements ClientModInitializer
public class LambdaControlsClient extends LambdaControls implements ClientModInitializer
{
private static LambdaControls INSTANCE;
public static final String MODID = "lambdacontrols";
public static final FabricKeyBinding BINDING_LOOK_UP = FabricKeyBinding.Builder.create(new Identifier(MODID, "look_up"),
private static LambdaControlsClient INSTANCE;
public static final FabricKeyBinding BINDING_LOOK_UP = FabricKeyBinding.Builder.create(new Identifier(LambdaControlsConstants.NAMESPACE, "look_up"),
InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_KP_8, "key.categories.movement").build();
public static final FabricKeyBinding BINDING_LOOK_RIGHT = FabricKeyBinding.Builder.create(new Identifier(MODID, "look_right"),
public static final FabricKeyBinding BINDING_LOOK_RIGHT = FabricKeyBinding.Builder.create(new Identifier(LambdaControlsConstants.NAMESPACE, "look_right"),
InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_KP_6, "key.categories.movement").build();
public static final FabricKeyBinding BINDING_LOOK_DOWN = FabricKeyBinding.Builder.create(new Identifier(MODID, "look_down"),
public static final FabricKeyBinding BINDING_LOOK_DOWN = FabricKeyBinding.Builder.create(new Identifier(LambdaControlsConstants.NAMESPACE, "look_down"),
InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_KP_2, "key.categories.movement").build();
public static final FabricKeyBinding BINDING_LOOK_LEFT = FabricKeyBinding.Builder.create(new Identifier(MODID, "look_left"),
public static final FabricKeyBinding BINDING_LOOK_LEFT = FabricKeyBinding.Builder.create(new Identifier(LambdaControlsConstants.NAMESPACE, "look_left"),
InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_KP_4, "key.categories.movement").build();
public static final Identifier CONTROLLER_BUTTONS = new Identifier(MODID, "textures/gui/controller_buttons.png");
public static final Identifier CONTROLLER_AXIS = new Identifier(MODID, "textures/gui/controller_axis.png");
public final Logger logger = LogManager.getLogger("LambdaControls");
public static final Identifier CONTROLLER_BUTTONS = new Identifier(LambdaControlsConstants.NAMESPACE, "textures/gui/controller_buttons.png");
public static final Identifier CONTROLLER_AXIS = new Identifier(LambdaControlsConstants.NAMESPACE, "textures/gui/controller_axis.png");
public final LambdaControlsConfig config = new LambdaControlsConfig(this);
public final LambdaInput input = new LambdaInput(this);
private LambdaControlsHud hud;
@@ -64,8 +63,6 @@ public class LambdaControls implements ClientModInitializer
public void onInitializeClient()
{
INSTANCE = this;
this.log("Initializing LambdaControls...");
KeyBindingRegistry.INSTANCE.register(BINDING_LOOK_UP);
KeyBindingRegistry.INSTANCE.register(BINDING_LOOK_RIGHT);
KeyBindingRegistry.INSTANCE.register(BINDING_LOOK_DOWN);
@@ -137,31 +134,11 @@ public class LambdaControls implements ClientModInitializer
}
/**
* Prints a message to the terminal.
* Gets the LambdaControls client instance.
*
* @param info The message to print.
* @return The LambdaControls client instance.
*/
public void log(String info)
{
this.logger.info("[LambdaControls] " + info);
}
/**
* Prints a warning to the terminal.
*
* @param warning The warning to print.
*/
public void warn(String warning)
{
this.logger.info("[LambdaControls] " + warning);
}
/**
* Gets the LambdaControls instance.
*
* @return The LambdaControls instance.
*/
public static LambdaControls get()
public static LambdaControlsClient get()
{
return INSTANCE;
}
@@ -267,7 +244,7 @@ public class LambdaControls implements ClientModInitializer
break;
}
client.getTextureManager().bindTexture(axis ? LambdaControls.CONTROLLER_AXIS : LambdaControls.CONTROLLER_BUTTONS);
client.getTextureManager().bindTexture(axis ? LambdaControlsClient.CONTROLLER_AXIS : LambdaControlsClient.CONTROLLER_BUTTONS);
GlStateManager.disableDepthTest();
GlStateManager.color4f(1.0F, second ? 0.0F : 1.0F, 1.0F, 1.0F);

View File

@@ -7,12 +7,13 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols;
package me.lambdaurora.lambdacontrols.client;
import com.electronwill.nightconfig.core.file.FileConfig;
import me.lambdaurora.lambdacontrols.controller.ButtonBinding;
import me.lambdaurora.lambdacontrols.controller.Controller;
import me.lambdaurora.lambdacontrols.controller.InputManager;
import me.lambdaurora.lambdacontrols.ControlsMode;
import me.lambdaurora.lambdacontrols.client.controller.ButtonBinding;
import me.lambdaurora.lambdacontrols.client.controller.Controller;
import me.lambdaurora.lambdacontrols.client.controller.InputManager;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.lwjgl.glfw.GLFW;
@@ -21,6 +22,7 @@ import java.util.Arrays;
import java.util.Optional;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import static org.lwjgl.glfw.GLFW.GLFW_GAMEPAD_AXIS_LEFT_X;
import static org.lwjgl.glfw.GLFW.GLFW_GAMEPAD_AXIS_LEFT_Y;
@@ -30,8 +32,8 @@ import static org.lwjgl.glfw.GLFW.GLFW_GAMEPAD_AXIS_LEFT_Y;
*/
public class LambdaControlsConfig
{
private static final ControlsMode DEFAULT_CONTROLS_MODE = ControlsMode.DEFAULT;
private static final boolean DEFAULT_AUTO_SWITCH_MODE = false;
private static final ControlsMode DEFAULT_CONTROLS_MODE = ControlsMode.DEFAULT;
private static final boolean DEFAULT_AUTO_SWITCH_MODE = false;
private static final boolean DEFAULT_HUD_ENABLE = true;
private static final HudSide DEFAULT_HUD_SIDE = HudSide.LEFT;
private static final ControllerType DEFAULT_CONTROLLER_TYPE = ControllerType.DEFAULT;
@@ -41,19 +43,19 @@ public class LambdaControlsConfig
private static final Pattern BUTTON_BINDING_PATTERN = Pattern.compile("(-?\\d+)\\+?");
private final FileConfig config = FileConfig.builder("config/lambdacontrols.toml").concurrent().defaultResource("/config.toml").build();
private final LambdaControls mod;
private ControlsMode controls_mode;
private ControllerType controller_type;
protected final FileConfig config = FileConfig.builder("config/lambdacontrols.toml").concurrent().defaultResource("/config.toml").build();
private final LambdaControlsClient mod;
private ControlsMode controls_mode;
private ControllerType controller_type;
// HUD settings.
private boolean hud_enable;
private HudSide hud_side;
private boolean hud_enable;
private HudSide hud_side;
// Controller settings
private double dead_zone;
private double rotation_speed;
private double mouse_speed;
private double dead_zone;
private double rotation_speed;
private double mouse_speed;
public LambdaControlsConfig(@NotNull LambdaControls mod)
public LambdaControlsConfig(@NotNull LambdaControlsClient mod)
{
this.mod = mod;
}
@@ -117,7 +119,8 @@ public class LambdaControlsConfig
this.set_rotation_speed(DEFAULT_ROTATION_SPEED);
this.set_mouse_speed(DEFAULT_MOUSE_SPEED);
InputManager.stream_bindings().forEach(binding -> this.set_button_binding(binding, binding.get_default_button()));
// Collect prevents concurrent modification.
InputManager.stream_bindings().collect(Collectors.toList()).forEach(binding -> this.set_button_binding(binding, binding.get_default_button()));
}
/**

View File

@@ -7,10 +7,11 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols;
package me.lambdaurora.lambdacontrols.client;
import io.github.prospector.modmenu.api.ModMenuApi;
import me.lambdaurora.lambdacontrols.gui.LambdaControlsSettingsScreen;
import me.lambdaurora.lambdacontrols.LambdaControlsConstants;
import me.lambdaurora.lambdacontrols.client.gui.LambdaControlsSettingsScreen;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.Screen;
@@ -28,7 +29,7 @@ public class LambdaControlsModMenu implements ModMenuApi
@Override
public String getModId()
{
return LambdaControls.MODID;
return LambdaControlsConstants.NAMESPACE;
}
@Override

View File

@@ -7,16 +7,16 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols;
package me.lambdaurora.lambdacontrols.client;
import me.lambdaurora.lambdacontrols.controller.ButtonBinding;
import me.lambdaurora.lambdacontrols.controller.Controller;
import me.lambdaurora.lambdacontrols.controller.InputManager;
import me.lambdaurora.lambdacontrols.gui.LambdaControlsControlsScreen;
import me.lambdaurora.lambdacontrols.gui.TouchscreenOverlay;
import me.lambdaurora.lambdacontrols.mixin.EntryListWidgetAccessor;
import me.lambdaurora.lambdacontrols.util.AbstractContainerScreenAccessor;
import me.lambdaurora.lambdacontrols.util.MouseAccessor;
import me.lambdaurora.lambdacontrols.client.controller.ButtonBinding;
import me.lambdaurora.lambdacontrols.client.controller.Controller;
import me.lambdaurora.lambdacontrols.client.controller.InputManager;
import me.lambdaurora.lambdacontrols.client.gui.LambdaControlsControlsScreen;
import me.lambdaurora.lambdacontrols.client.gui.TouchscreenOverlay;
import me.lambdaurora.lambdacontrols.client.mixin.EntryListWidgetAccessor;
import me.lambdaurora.lambdacontrols.client.util.AbstractContainerScreenAccessor;
import me.lambdaurora.lambdacontrols.client.util.MouseAccessor;
import me.lambdaurora.spruceui.SpruceLabelWidget;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.Element;
@@ -46,7 +46,7 @@ import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import static me.lambdaurora.lambdacontrols.controller.ButtonBinding.axis_as_button;
import static me.lambdaurora.lambdacontrols.client.controller.ButtonBinding.axis_as_button;
import static org.lwjgl.glfw.GLFW.*;
/**
@@ -77,7 +77,7 @@ public class LambdaInput
private float mouse_speed_x = 0.F;
private float mouse_speed_y = 0.F;
public LambdaInput(@NotNull LambdaControls mod)
public LambdaInput(@NotNull LambdaControlsClient mod)
{
this.config = mod.config;
}
@@ -93,14 +93,14 @@ public class LambdaInput
this.prev_target_pitch = this.target_pitch;
// Handles the key bindings.
if (LambdaControls.BINDING_LOOK_UP.isPressed()) {
if (LambdaControlsClient.BINDING_LOOK_UP.isPressed()) {
this.handle_look(client, GLFW_GAMEPAD_AXIS_RIGHT_Y, 0.8F, 2);
} else if (LambdaControls.BINDING_LOOK_DOWN.isPressed()) {
} else if (LambdaControlsClient.BINDING_LOOK_DOWN.isPressed()) {
this.handle_look(client, GLFW_GAMEPAD_AXIS_RIGHT_Y, 0.8F, 1);
}
if (LambdaControls.BINDING_LOOK_LEFT.isPressed()) {
if (LambdaControlsClient.BINDING_LOOK_LEFT.isPressed()) {
this.handle_look(client, GLFW_GAMEPAD_AXIS_RIGHT_X, 0.8F, 2);
} else if (LambdaControls.BINDING_LOOK_RIGHT.isPressed()) {
} else if (LambdaControlsClient.BINDING_LOOK_RIGHT.isPressed()) {
this.handle_look(client, GLFW_GAMEPAD_AXIS_RIGHT_X, 0.8F, 1);
}
}

View File

@@ -7,9 +7,9 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols.compat;
package me.lambdaurora.lambdacontrols.client.compat;
import me.lambdaurora.lambdacontrols.LambdaControls;
import me.lambdaurora.lambdacontrols.client.LambdaControlsClient;
import org.jetbrains.annotations.NotNull;
/**
@@ -26,5 +26,5 @@ public interface CompatHandler
*
* @param mod This mod instance.
*/
void handle(@NotNull LambdaControls mod);
void handle(@NotNull LambdaControlsClient mod);
}

View File

@@ -7,10 +7,10 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols.compat;
package me.lambdaurora.lambdacontrols.client.compat;
import me.lambdaurora.lambdacontrols.LambdaControls;
import me.lambdaurora.lambdacontrols.controller.InputManager;
import me.lambdaurora.lambdacontrols.client.LambdaControlsClient;
import me.lambdaurora.lambdacontrols.client.controller.InputManager;
import net.fabricmc.loader.api.FabricLoader;
import org.aperlambda.lambdacommon.utils.LambdaReflection;
import org.jetbrains.annotations.NotNull;
@@ -29,7 +29,7 @@ public class LambdaControlsCompat
*
* @param mod The mod instance.
*/
public static void init(@NotNull LambdaControls mod)
public static void init(@NotNull LambdaControlsClient mod)
{
if (FabricLoader.getInstance().isModLoaded("okzoomer") && LambdaReflection.does_class_exist(OkZoomerCompat.OKZOOMER_CLASS_PATH)) {
mod.log("Adding okzoomer compatibility...");

View File

@@ -7,11 +7,11 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols.compat;
package me.lambdaurora.lambdacontrols.client.compat;
import me.lambdaurora.lambdacontrols.LambdaControls;
import me.lambdaurora.lambdacontrols.controller.ButtonBinding;
import me.lambdaurora.lambdacontrols.controller.InputManager;
import me.lambdaurora.lambdacontrols.client.LambdaControlsClient;
import me.lambdaurora.lambdacontrols.client.controller.ButtonBinding;
import me.lambdaurora.lambdacontrols.client.controller.InputManager;
import net.fabricmc.fabric.api.client.keybinding.FabricKeyBinding;
import org.aperlambda.lambdacommon.utils.LambdaReflection;
import org.jetbrains.annotations.NotNull;
@@ -29,7 +29,7 @@ public class OkZoomerCompat implements CompatHandler
public static final String OKZOOMER_CLASS_PATH = "io.github.joaoh1.okzoomer.OkZoomer";
@Override
public void handle(@NotNull LambdaControls mod)
public void handle(@NotNull LambdaControlsClient mod)
{
LambdaReflection.get_first_field_of_type(io.github.joaoh1.okzoomer.OkZoomer.class, FabricKeyBinding.class)
.map(field -> (FabricKeyBinding) LambdaReflection.get_field_value(null, field))

View File

@@ -7,9 +7,9 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols.controller;
package me.lambdaurora.lambdacontrols.client.controller;
import me.lambdaurora.lambdacontrols.ButtonState;
import me.lambdaurora.lambdacontrols.client.ButtonState;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.options.GameOptions;
import net.minecraft.client.options.KeyBinding;
@@ -22,8 +22,8 @@ import org.lwjgl.glfw.GLFW;
import java.util.*;
import java.util.stream.Collectors;
import static me.lambdaurora.lambdacontrols.controller.InputManager.register_binding;
import static me.lambdaurora.lambdacontrols.controller.InputManager.register_default_category;
import static me.lambdaurora.lambdacontrols.client.controller.InputManager.register_binding;
import static me.lambdaurora.lambdacontrols.client.controller.InputManager.register_default_category;
/**
* Represents a button binding.

View File

@@ -7,7 +7,7 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols.controller;
package me.lambdaurora.lambdacontrols.client.controller;
import net.minecraft.client.resource.language.I18n;
import org.aperlambda.lambdacommon.Identifier;

View File

@@ -7,9 +7,9 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols.controller;
package me.lambdaurora.lambdacontrols.client.controller;
import me.lambdaurora.lambdacontrols.LambdaControls;
import me.lambdaurora.lambdacontrols.client.LambdaControlsClient;
import org.aperlambda.lambdacommon.utils.Nameable;
import org.jetbrains.annotations.NotNull;
import org.lwjgl.glfw.GLFW;
@@ -116,7 +116,7 @@ public class Controller implements Nameable
public static @NotNull Controller by_id(int id)
{
if (id > GLFW.GLFW_JOYSTICK_LAST) {
LambdaControls.get().log("Controller '" + id + "' doesn't exist.");
LambdaControlsClient.get().log("Controller '" + id + "' doesn't exist.");
id = GLFW.GLFW_JOYSTICK_LAST;
}
Controller controller;
@@ -170,7 +170,7 @@ public class Controller implements Nameable
File mappings_file = new File("config/gamecontrollerdb.txt");
if (!mappings_file.exists())
return;
LambdaControls.get().log("Updating controller mappings...");
LambdaControlsClient.get().log("Updating controller mappings...");
ByteBuffer buffer = io_resource_to_buffer(mappings_file.getPath(), 1024);
GLFW.glfwUpdateGamepadMappings(buffer);
} catch (IOException e) {

View File

@@ -7,11 +7,11 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols.controller;
package me.lambdaurora.lambdacontrols.client.controller;
import me.lambdaurora.lambdacontrols.ButtonState;
import me.lambdaurora.lambdacontrols.util.CreativeInventoryScreenAccessor;
import me.lambdaurora.lambdacontrols.util.KeyBindingAccessor;
import me.lambdaurora.lambdacontrols.client.ButtonState;
import me.lambdaurora.lambdacontrols.client.util.CreativeInventoryScreenAccessor;
import me.lambdaurora.lambdacontrols.client.util.KeyBindingAccessor;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.ingame.AbstractContainerScreen;
import net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen;

View File

@@ -7,10 +7,10 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols.controller;
package me.lambdaurora.lambdacontrols.client.controller;
import me.lambdaurora.lambdacontrols.ButtonState;
import me.lambdaurora.lambdacontrols.LambdaControlsConfig;
import me.lambdaurora.lambdacontrols.client.ButtonState;
import me.lambdaurora.lambdacontrols.client.LambdaControlsConfig;
import net.minecraft.client.MinecraftClient;
import org.aperlambda.lambdacommon.Identifier;
import org.jetbrains.annotations.NotNull;

View File

@@ -7,10 +7,10 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols.controller;
package me.lambdaurora.lambdacontrols.client.controller;
import me.lambdaurora.lambdacontrols.ButtonState;
import me.lambdaurora.lambdacontrols.util.KeyBindingAccessor;
import me.lambdaurora.lambdacontrols.client.ButtonState;
import me.lambdaurora.lambdacontrols.client.util.KeyBindingAccessor;
import net.minecraft.client.MinecraftClient;
import org.jetbrains.annotations.NotNull;

View File

@@ -7,10 +7,10 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols.gui;
package me.lambdaurora.lambdacontrols.client.gui;
import me.lambdaurora.lambdacontrols.LambdaControls;
import me.lambdaurora.lambdacontrols.controller.ButtonBinding;
import me.lambdaurora.lambdacontrols.client.LambdaControlsClient;
import me.lambdaurora.lambdacontrols.client.controller.ButtonBinding;
import me.lambdaurora.spruceui.AbstractIconButtonWidget;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.resource.language.I18n;
@@ -52,7 +52,7 @@ public class ControllerButtonWidget extends AbstractIconButtonWidget
if (this.binding.get_button().length > 1) {
x += (this.width / 2 - this.icon_width / 2) - 4;
}
Pair<Integer, Integer> size = LambdaControls.draw_button(x, y, this.binding, MinecraftClient.getInstance());
Pair<Integer, Integer> size = LambdaControlsClient.draw_button(x, y, this.binding, MinecraftClient.getInstance());
this.icon_width = size.get_key();
return size.get_value();
}

View File

@@ -7,11 +7,11 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols.gui;
package me.lambdaurora.lambdacontrols.client.gui;
import me.lambdaurora.lambdacontrols.controller.ButtonBinding;
import me.lambdaurora.lambdacontrols.controller.ButtonCategory;
import me.lambdaurora.lambdacontrols.controller.InputManager;
import me.lambdaurora.lambdacontrols.client.controller.ButtonBinding;
import me.lambdaurora.lambdacontrols.client.controller.ButtonCategory;
import me.lambdaurora.lambdacontrols.client.controller.InputManager;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.MinecraftClient;

View File

@@ -7,11 +7,11 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols.gui;
package me.lambdaurora.lambdacontrols.client.gui;
import me.lambdaurora.lambdacontrols.LambdaControls;
import me.lambdaurora.lambdacontrols.controller.ButtonBinding;
import me.lambdaurora.lambdacontrols.controller.InputManager;
import me.lambdaurora.lambdacontrols.client.LambdaControlsClient;
import me.lambdaurora.lambdacontrols.client.controller.ButtonBinding;
import me.lambdaurora.lambdacontrols.client.controller.InputManager;
import me.lambdaurora.spruceui.SpruceButtonWidget;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.screen.options.ControlsOptionsScreen;
@@ -30,9 +30,9 @@ import java.util.function.Predicate;
*/
public class LambdaControlsControlsScreen extends Screen
{
private final Screen parent;
final LambdaControls mod;
private final boolean hide_settings;
private final Screen parent;
final LambdaControlsClient mod;
private final boolean hide_settings;
private ControlsListWidget bindings_list_widget;
private ButtonWidget reset_button;
public ButtonBinding focused_binding;
@@ -43,7 +43,7 @@ public class LambdaControlsControlsScreen extends Screen
{
super(new TranslatableText("lambdacontrols.menu.title.controller_controls"));
this.parent = parent;
this.mod = LambdaControls.get();
this.mod = LambdaControlsClient.get();
this.hide_settings = hide_settings;
}

View File

@@ -7,12 +7,12 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols.gui;
package me.lambdaurora.lambdacontrols.client.gui;
import me.lambdaurora.lambdacontrols.ControlsMode;
import me.lambdaurora.lambdacontrols.HudSide;
import me.lambdaurora.lambdacontrols.LambdaControls;
import me.lambdaurora.lambdacontrols.controller.ButtonBinding;
import me.lambdaurora.lambdacontrols.client.HudSide;
import me.lambdaurora.lambdacontrols.client.LambdaControlsClient;
import me.lambdaurora.lambdacontrols.client.controller.ButtonBinding;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.DrawableHelper;
import net.minecraft.util.hit.HitResult;
@@ -27,12 +27,12 @@ import org.jetbrains.annotations.NotNull;
*/
public class LambdaControlsHud extends DrawableHelper
{
private final MinecraftClient client;
private final LambdaControls mod;
private int width_bottom = 0;
private final MinecraftClient client;
private final LambdaControlsClient mod;
private int width_bottom = 0;
private int width_top = 0;
public LambdaControlsHud(@NotNull MinecraftClient client, @NotNull LambdaControls mod)
public LambdaControlsHud(@NotNull MinecraftClient client, @NotNull LambdaControlsClient mod)
{
this.client = client;
this.mod = mod;
@@ -62,11 +62,11 @@ public class LambdaControlsHud extends DrawableHelper
private int draw_button_tip(int x, int y, @NotNull ButtonBinding button, boolean display)
{
return LambdaControls.draw_button_tip(x, y, button, display, this.client);
return LambdaControlsClient.draw_button_tip(x, y, button, display, this.client);
}
private int draw_button_tip(int x, int y, int[] button, @NotNull String action, boolean display)
{
return LambdaControls.draw_button_tip(x, y, button, action, display, this.client);
return LambdaControlsClient.draw_button_tip(x, y, button, action, display, this.client);
}
}

View File

@@ -7,11 +7,11 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols.gui;
package me.lambdaurora.lambdacontrols.client.gui;
import me.lambdaurora.lambdacontrols.ControlsMode;
import me.lambdaurora.lambdacontrols.LambdaControls;
import me.lambdaurora.lambdacontrols.controller.Controller;
import me.lambdaurora.lambdacontrols.client.LambdaControlsClient;
import me.lambdaurora.lambdacontrols.client.controller.Controller;
import me.lambdaurora.spruceui.SpruceButtonWidget;
import me.lambdaurora.spruceui.SpruceLabelWidget;
import me.lambdaurora.spruceui.Tooltip;
@@ -36,9 +36,9 @@ import org.lwjgl.glfw.GLFW;
*/
public class LambdaControlsSettingsScreen extends Screen
{
public static final String GAMEPAD_TOOL_URL = "http://generalarcade.com/gamepadtool/";
final LambdaControls mod;
private final Screen parent;
public static final String GAMEPAD_TOOL_URL = "http://generalarcade.com/gamepadtool/";
final LambdaControlsClient mod;
private final Screen parent;
private final boolean hide_controls;
// General options
private final Option auto_switch_mode_option;
@@ -62,7 +62,7 @@ public class LambdaControlsSettingsScreen extends Screen
public LambdaControlsSettingsScreen(Screen parent, @NotNull GameOptions options, boolean hide_controls)
{
super(new TranslatableText("lambdacontrols.title.settings"));
this.mod = LambdaControls.get();
this.mod = LambdaControlsClient.get();
this.parent = parent;
this.hide_controls = hide_controls;
// General options
@@ -179,10 +179,10 @@ public class LambdaControlsSettingsScreen extends Screen
super.init();
int button_height = 20;
SpruceButtonWidget controls_mode_btn = new SpruceButtonWidget(this.width / 2 - 155, 18, this.hide_controls ? 310 : 150, button_height,
I18n.translate("lambdacontrols.menu.controls_mode") + ": " + this.mod.config.get_controls_mode().get_translated_name(),
I18n.translate("lambdacontrols.menu.controls_mode") + ": " + I18n.translate(this.mod.config.get_controls_mode().get_translation_key()),
btn -> {
ControlsMode next = this.mod.config.get_controls_mode().next();
btn.setMessage(I18n.translate("lambdacontrols.menu.controls_mode") + ": " + next.get_translated_name());
btn.setMessage(I18n.translate("lambdacontrols.menu.controls_mode") + ": " + I18n.translate(next.get_translation_key()));
this.mod.config.set_controls_mode(next);
this.mod.config.save();
});

View File

@@ -7,9 +7,9 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols.gui;
package me.lambdaurora.lambdacontrols.client.gui;
import me.lambdaurora.lambdacontrols.controller.Controller;
import me.lambdaurora.lambdacontrols.client.controller.Controller;
import me.lambdaurora.spruceui.SpruceButtonWidget;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.widget.AbstractButtonWidget;

View File

@@ -7,11 +7,11 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols.gui;
package me.lambdaurora.lambdacontrols.client.gui;
import me.lambdaurora.lambdacontrols.HudSide;
import me.lambdaurora.lambdacontrols.LambdaControls;
import me.lambdaurora.lambdacontrols.util.KeyBindingAccessor;
import me.lambdaurora.lambdacontrols.client.HudSide;
import me.lambdaurora.lambdacontrols.client.LambdaControlsClient;
import me.lambdaurora.lambdacontrols.client.util.KeyBindingAccessor;
import me.lambdaurora.spruceui.SpruceTexturedButtonWidget;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.gui.screen.GameMenuScreen;
@@ -37,7 +37,7 @@ import static org.lwjgl.glfw.GLFW.GLFW_GAMEPAD_AXIS_RIGHT_Y;
public class TouchscreenOverlay extends Screen
{
public static final Identifier WIDGETS_LOCATION = new Identifier("lambdacontrols", "textures/gui/widgets.png");
private LambdaControls mod;
private LambdaControlsClient mod;
private SpruceTexturedButtonWidget jump_button;
private SpruceTexturedButtonWidget fly_button;
private SpruceTexturedButtonWidget fly_up_button;
@@ -49,7 +49,7 @@ public class TouchscreenOverlay extends Screen
private SpruceTexturedButtonWidget start_sneak_button;
private SpruceTexturedButtonWidget end_sneak_button;
public TouchscreenOverlay(@NotNull LambdaControls mod)
public TouchscreenOverlay(@NotNull LambdaControlsClient mod)
{
super(new LiteralText("Touchscreen overlay"));
this.mod = mod;

View File

@@ -7,7 +7,7 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols.mixin;
package me.lambdaurora.lambdacontrols.client.mixin;
import net.minecraft.client.gui.widget.AbstractButtonWidget;
import org.spongepowered.asm.mixin.Mixin;

View File

@@ -7,11 +7,11 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols.mixin;
package me.lambdaurora.lambdacontrols.client.mixin;
import me.lambdaurora.lambdacontrols.ControlsMode;
import me.lambdaurora.lambdacontrols.LambdaControls;
import me.lambdaurora.lambdacontrols.util.AbstractContainerScreenAccessor;
import me.lambdaurora.lambdacontrols.client.LambdaControlsClient;
import me.lambdaurora.lambdacontrols.client.util.AbstractContainerScreenAccessor;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.ingame.AbstractContainerScreen;
import net.minecraft.container.Slot;
@@ -56,14 +56,14 @@ public abstract class AbstractContainerScreenMixin implements AbstractContainerS
@Inject(method = "render", at = @At("RETURN"))
public void render(int mouseX, int mouseY, float delta, CallbackInfo ci)
{
if (LambdaControls.get().config.get_controls_mode() == ControlsMode.CONTROLLER) {
if (LambdaControlsClient.get().config.get_controls_mode() == ControlsMode.CONTROLLER) {
MinecraftClient client = MinecraftClient.getInstance();
int x = 10, y = client.getWindow().getScaledHeight() - 10 - 15;
x += LambdaControls.draw_button_tip(x, y, new int[]{GLFW.GLFW_GAMEPAD_BUTTON_A}, "lambdacontrols.action.pickup_all", true, client) + 10;
x += LambdaControls.draw_button_tip(x, y, new int[]{GLFW.GLFW_GAMEPAD_BUTTON_B}, "lambdacontrols.action.exit", true, client) + 10;
x += LambdaControls.draw_button_tip(x, y, new int[]{GLFW.GLFW_GAMEPAD_BUTTON_X}, "lambdacontrols.action.pickup", true, client) + 10;
LambdaControls.draw_button_tip(x, y, new int[]{GLFW.GLFW_GAMEPAD_BUTTON_Y}, "lambdacontrols.action.quick_move", true, client);
x += LambdaControlsClient.draw_button_tip(x, y, new int[]{GLFW.GLFW_GAMEPAD_BUTTON_A}, "lambdacontrols.action.pickup_all", true, client) + 10;
x += LambdaControlsClient.draw_button_tip(x, y, new int[]{GLFW.GLFW_GAMEPAD_BUTTON_B}, "lambdacontrols.action.exit", true, client) + 10;
x += LambdaControlsClient.draw_button_tip(x, y, new int[]{GLFW.GLFW_GAMEPAD_BUTTON_X}, "lambdacontrols.action.pickup", true, client) + 10;
LambdaControlsClient.draw_button_tip(x, y, new int[]{GLFW.GLFW_GAMEPAD_BUTTON_Y}, "lambdacontrols.action.quick_move", true, client);
}
}
}

View File

@@ -7,10 +7,10 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols.mixin;
package me.lambdaurora.lambdacontrols.client.mixin;
import me.lambdaurora.lambdacontrols.gui.LambdaControlsControlsScreen;
import me.lambdaurora.lambdacontrols.gui.LambdaControlsSettingsScreen;
import me.lambdaurora.lambdacontrols.client.gui.LambdaControlsControlsScreen;
import me.lambdaurora.lambdacontrols.client.gui.LambdaControlsSettingsScreen;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.screen.options.ControlsOptionsScreen;
import net.minecraft.client.gui.screen.options.GameOptionsScreen;

View File

@@ -7,9 +7,9 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols.mixin;
package me.lambdaurora.lambdacontrols.client.mixin;
import me.lambdaurora.lambdacontrols.util.CreativeInventoryScreenAccessor;
import me.lambdaurora.lambdacontrols.client.util.CreativeInventoryScreenAccessor;
import net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen;
import net.minecraft.item.ItemGroup;
import org.jetbrains.annotations.NotNull;

View File

@@ -7,7 +7,7 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols.mixin;
package me.lambdaurora.lambdacontrols.client.mixin;
import net.minecraft.client.gui.widget.EntryListWidget;
import org.spongepowered.asm.mixin.Mixin;

View File

@@ -7,10 +7,10 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols.mixin;
package me.lambdaurora.lambdacontrols.client.mixin;
import me.lambdaurora.lambdacontrols.ControlsMode;
import me.lambdaurora.lambdacontrols.LambdaControls;
import me.lambdaurora.lambdacontrols.client.LambdaControlsClient;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.GameRenderer;
import org.spongepowered.asm.mixin.Final;
@@ -30,7 +30,7 @@ public class GameRendererMixin
@Inject(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Mouse;getX()D"))
private void on_render(float tick_delta, long start_time, boolean full_render, CallbackInfo ci)
{
if (this.client.currentScreen != null && LambdaControls.get().config.get_controls_mode() == ControlsMode.CONTROLLER)
LambdaControls.get().input.on_pre_render_screen(this.client, this.client.currentScreen);
if (this.client.currentScreen != null && LambdaControlsClient.get().config.get_controls_mode() == ControlsMode.CONTROLLER)
LambdaControlsClient.get().input.on_pre_render_screen(this.client, this.client.currentScreen);
}
}

View File

@@ -7,9 +7,9 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols.mixin;
package me.lambdaurora.lambdacontrols.client.mixin;
import me.lambdaurora.lambdacontrols.util.KeyBindingAccessor;
import me.lambdaurora.lambdacontrols.client.util.KeyBindingAccessor;
import net.minecraft.client.options.KeyBinding;
import net.minecraft.client.util.InputUtil;
import org.jetbrains.annotations.NotNull;

View File

@@ -7,11 +7,11 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols.mixin;
package me.lambdaurora.lambdacontrols.client.mixin;
import me.lambdaurora.lambdacontrols.ControlsMode;
import me.lambdaurora.lambdacontrols.LambdaControls;
import me.lambdaurora.lambdacontrols.gui.TouchscreenOverlay;
import me.lambdaurora.lambdacontrols.client.LambdaControlsClient;
import me.lambdaurora.lambdacontrols.client.gui.TouchscreenOverlay;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.util.Window;
@@ -39,25 +39,25 @@ public abstract class MinecraftClientMixin
@Inject(method = "<init>", at = @At("RETURN"))
private void on_init(CallbackInfo ci)
{
LambdaControls.get().on_mc_init((MinecraftClient) (Object) this);
LambdaControlsClient.get().on_mc_init((MinecraftClient) (Object) this);
}
@Inject(method = "render", at = @At("HEAD"))
private void on_render(boolean full_render, CallbackInfo ci)
{
LambdaControls.get().on_render((MinecraftClient) (Object) (this));
LambdaControlsClient.get().on_render((MinecraftClient) (Object) (this));
}
@Inject(method = "tick", at = @At("HEAD"))
private void on_handle_input_events(CallbackInfo ci)
{
LambdaControls.get().on_tick((MinecraftClient) (Object) this);
LambdaControlsClient.get().on_tick((MinecraftClient) (Object) this);
}
@Inject(method = "openScreen", at = @At("RETURN"))
private void on_open_screen(@Nullable Screen screen, CallbackInfo ci)
{
LambdaControls mod = LambdaControls.get();
LambdaControlsClient mod = LambdaControlsClient.get();
if (screen == null && mod.config.get_controls_mode() == ControlsMode.TOUCHSCREEN) {
screen = new TouchscreenOverlay(mod);
screen.init(((MinecraftClient) (Object) this), this.window.getScaledWidth(), this.window.getScaledHeight());

View File

@@ -7,11 +7,11 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols.mixin;
package me.lambdaurora.lambdacontrols.client.mixin;
import me.lambdaurora.lambdacontrols.ControlsMode;
import me.lambdaurora.lambdacontrols.LambdaControls;
import me.lambdaurora.lambdacontrols.util.MouseAccessor;
import me.lambdaurora.lambdacontrols.client.LambdaControlsClient;
import me.lambdaurora.lambdacontrols.client.util.MouseAccessor;
import net.minecraft.client.Mouse;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
@@ -34,7 +34,7 @@ public abstract class MouseMixin implements MouseAccessor
@Inject(method = "lockCursor", at = @At("HEAD"), cancellable = true)
private void on_mouse_locked(CallbackInfo ci)
{
if (LambdaControls.get().config.get_controls_mode() == ControlsMode.TOUCHSCREEN)
if (LambdaControlsClient.get().config.get_controls_mode() == ControlsMode.TOUCHSCREEN)
ci.cancel();
}

View File

@@ -7,11 +7,11 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols.mixin;
package me.lambdaurora.lambdacontrols.client.mixin;
import me.lambdaurora.lambdacontrols.ControlsMode;
import me.lambdaurora.lambdacontrols.LambdaControls;
import me.lambdaurora.lambdacontrols.gui.LambdaControlsControlsScreen;
import me.lambdaurora.lambdacontrols.client.LambdaControlsClient;
import me.lambdaurora.lambdacontrols.client.gui.LambdaControlsControlsScreen;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.screen.SettingsScreen;
import net.minecraft.client.gui.widget.AbstractButtonWidget;
@@ -35,7 +35,7 @@ public class SettingsScreenMixin extends Screen
@Redirect(method = "init", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/SettingsScreen;addButton(Lnet/minecraft/client/gui/widget/AbstractButtonWidget;)Lnet/minecraft/client/gui/widget/AbstractButtonWidget;", ordinal = 7))
private AbstractButtonWidget on_init(SettingsScreen screen, AbstractButtonWidget btn)
{
if (LambdaControls.get().config.get_controls_mode() == ControlsMode.CONTROLLER) {
if (LambdaControlsClient.get().config.get_controls_mode() == ControlsMode.CONTROLLER) {
return this.addButton(new ButtonWidget(btn.x, btn.y, btn.getWidth(), ((AbstractButtonWidgetAccessor) btn).get_height(), btn.getMessage(),
b -> this.minecraft.openScreen(new LambdaControlsControlsScreen(this, false))));
} else {

View File

@@ -7,7 +7,7 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols.util;
package me.lambdaurora.lambdacontrols.client.util;
import net.minecraft.container.Slot;

View File

@@ -7,7 +7,7 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols.util;
package me.lambdaurora.lambdacontrols.client.util;
import net.minecraft.item.ItemGroup;
import org.jetbrains.annotations.NotNull;

View File

@@ -7,7 +7,7 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols.util;
package me.lambdaurora.lambdacontrols.client.util;
import net.minecraft.client.util.InputUtil;
import org.jetbrains.annotations.NotNull;

View File

@@ -7,7 +7,7 @@
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols.util;
package me.lambdaurora.lambdacontrols.client.util;
/**
* Represents mouse's extra access.

View File

@@ -0,0 +1,35 @@
/*
* Copyright © 2020 LambdAurora <aurora42lambda@gmail.com>
*
* This file is part of LambdaControls.
*
* Licensed under the MIT license. For more information,
* see the LICENSE file.
*/
package me.lambdaurora.lambdacontrols.event;
import me.lambdaurora.lambdacontrols.ControlsMode;
import net.fabricmc.fabric.api.event.Event;
import net.fabricmc.fabric.api.event.EventFactory;
import net.minecraft.entity.player.PlayerEntity;
import org.jetbrains.annotations.NotNull;
/**
* Represents an event callback which is fired when a player changes the controls mode.
*
* @author LambdAurora
* @version 1.1.0
* @since 1.1.0
*/
@FunctionalInterface
public interface PlayerChangeControlsModeCallback
{
Event<PlayerChangeControlsModeCallback> EVENT = EventFactory.createArrayBacked(PlayerChangeControlsModeCallback.class, listeners -> (player, controls_mode) -> {
for (PlayerChangeControlsModeCallback event : listeners) {
event.apply(player, controls_mode);
}
});
void apply(@NotNull PlayerEntity player, @NotNull ControlsMode controls_mode);
}

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

View File

@@ -73,36 +73,39 @@
"lambdacontrols.controls_mode.touchscreen": "Touchscreen",
"lambdacontrols.hud_side.left": "left",
"lambdacontrols.hud_side.right": "right",
"lambdacontrols.menu.auto_switch_mode": "Auto switch mode",
"lambdacontrols.menu.auto_switch_mode": "Auto Switch Mode",
"lambdacontrols.menu.controller": "Controller",
"lambdacontrols.menu.controller2": "Second controller",
"lambdacontrols.menu.controller_type": "Controller type",
"lambdacontrols.menu.controller2": "Second Controller",
"lambdacontrols.menu.controller_type": "Controller Type",
"lambdacontrols.menu.controls_mode": "Mode",
"lambdacontrols.menu.dead_zone": "Dead zone",
"lambdacontrols.menu.dead_zone": "Dead Zone",
"lambdacontrols.menu.front_block_placing": "Front Block Placing",
"lambdacontrols.menu.hud_enable": "Enable HUD",
"lambdacontrols.menu.hud_side": "HUD side",
"lambdacontrols.menu.invert_right_x_axis": "Invert right X",
"lambdacontrols.menu.invert_right_y_axis": "Invert right Y",
"lambdacontrols.menu.keyboard_controls": "Keyboard controls...",
"lambdacontrols.menu.mouse_speed": "Mouse speed",
"lambdacontrols.menu.reload_controller_mappings": "Reload controller mappings",
"lambdacontrols.menu.rotation_speed": "Rotation speed",
"lambdacontrols.menu.hud_side": "HUD Side",
"lambdacontrols.menu.invert_right_x_axis": "Invert Right X",
"lambdacontrols.menu.invert_right_y_axis": "Invert Right Y",
"lambdacontrols.menu.keyboard_controls": "Keyboard Controls...",
"lambdacontrols.menu.mouse_speed": "Mouse Speed",
"lambdacontrols.menu.reload_controller_mappings": "Reload Controller Mappings",
"lambdacontrols.menu.rotation_speed": "Rotation Speed",
"lambdacontrols.menu.title": "LambdaControls - Settings",
"lambdacontrols.menu.title.controller": "Controller options",
"lambdacontrols.menu.title.controller_controls": "Controller controls",
"lambdacontrols.menu.title.general": "General options",
"lambdacontrols.menu.title.hud": "HUD options",
"lambdacontrols.menu.title.controller": "Controller Options",
"lambdacontrols.menu.title.controller_controls": "Controller Controls",
"lambdacontrols.menu.title.gameplay": "Gameplay Options",
"lambdacontrols.menu.title.general": "General Options",
"lambdacontrols.menu.title.hud": "HUD Options",
"lambdacontrols.menu.unbound": "Unbound",
"lambdacontrols.narrator.unbound": "Unbound %s",
"lambdacontrols.not_bound": "Not bound",
"lambdacontrols.tooltip.auto_switch_mode": "Sets whether the controls mode should be switched automatically to Controller if a controller is connected.",
"lambdacontrols.tooltip.controller2": "Defines a second controller to use, which allow Joy-Cons support for example.",
"lambdacontrols.tooltip.controller_type": "Changes the controller type to displays the correct buttons.",
"lambdacontrols.tooltip.controls_mode": "Changes the controls mode.",
"lambdacontrols.tooltip.dead_zone": "Sets the dead zone of the controller's axises.",
"lambdacontrols.tooltip.auto_switch_mode": "If the controls mode should be switched to Controller automatically if one is connected.",
"lambdacontrols.tooltip.controller2": "Second controller to use, which allows Joy-Cons support for example.",
"lambdacontrols.tooltip.controller_type": "The controller type to display the correct buttons.",
"lambdacontrols.tooltip.controls_mode": "The controls mode.",
"lambdacontrols.tooltip.dead_zone": "The dead zone for the controller's analogue sticks.",
"lambdacontrols.tooltip.front_block_placing": "Enable front block placing, §cmight be considered cheating on some servers§r.",
"lambdacontrols.tooltip.hud_enable": "Toggles the on-screen controller button indicator.",
"lambdacontrols.tooltip.hud_side": "Changes the position of the HUD.",
"lambdacontrols.tooltip.mouse_speed": "Changes the emulated mouse speed with a controller.",
"lambdacontrols.tooltip.rotation_speed": "Changes the camera rotation speed in controller mode.",
"lambdacontrols.tooltip.hud_side": "The position of the HUD.",
"lambdacontrols.tooltip.mouse_speed": "The controller's emulated mouse speed.",
"lambdacontrols.tooltip.rotation_speed": "The camera rotation speed in controller mode.",
"lambdacontrols.tooltip.reload_controller_mappings": "Reloads the controller mappings file."
}

View File

@@ -99,7 +99,7 @@
"lambdacontrols.tooltip.controller2": "Défini une deuxième manette, utile dans le cas d'utilisation de Joy-Cons.",
"lambdacontrols.tooltip.controller_type": "Le type de contrôle n'influe que sur les boutons affichés.",
"lambdacontrols.tooltip.controls_mode": "Change le mode de contrôle.",
"lambdacontrols.tooltip.dead_zone": "Détermine la zone morte des axes de la manette.",
"lambdacontrols.tooltip.dead_zone": "Zone morte des axes de la manette.",
"lambdacontrols.tooltip.hud_enable": "Détermine si l'indicateur des buttons de la manette doit être affiché ou non.",
"lambdacontrols.tooltip.hud_side": "Change la position du HUD.",
"lambdacontrols.tooltip.mouse_speed": "Change la vitesse de la souris émulée par la manette.",

View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -11,6 +11,10 @@ auto_switch_mode = false
# Dertermines where the movements buttons are.
side = "left"
# Gameplay settings
[gameplay]
front_block_placing = false
# Controller settings
[controller]
# Controller to use.

View File

@@ -16,11 +16,14 @@
"icon": "assets/lambdacontrols/icon.png",
"environment": "client",
"entrypoints": {
"client": [
"main": [
"me.lambdaurora.lambdacontrols.LambdaControls"
],
"client": [
"me.lambdaurora.lambdacontrols.client.LambdaControlsClient"
],
"modmenu": [
"me.lambdaurora.lambdacontrols.LambdaControlsModMenu"
"me.lambdaurora.lambdacontrols.client.LambdaControlsModMenu"
]
},
"mixins": [

View File

@@ -1,6 +1,6 @@
{
"required": true,
"package": "me.lambdaurora.lambdacontrols.mixin",
"package": "me.lambdaurora.lambdacontrols.client.mixin",
"compatibilityLevel": "JAVA_8",
"client": [
"AbstractButtonWidgetAccessor",

View File

@@ -8,7 +8,7 @@ org.gradle.jvmargs=-Xmx1G
loader_version=0.7.2+build.174
# Mod Properties
mod_version = 1.1.0-test2
mod_version = 1.1.0-test4
maven_group = me.lambdaurora
archives_base_name = lambdacontrols

View File

@@ -8,3 +8,6 @@ pluginManagement {
gradlePluginPortal()
}
}
rootProject.name = 'lambdacontrols'
include 'common', 'fabric', 'elytra'