💥 Lot of breaking changes.
119
build.gradle
@@ -1,110 +1,35 @@
|
|||||||
plugins {
|
plugins {
|
||||||
id 'fabric-loom' version '0.2.6-SNAPSHOT'
|
id 'java-library'
|
||||||
id 'maven-publish'
|
id 'maven-publish'
|
||||||
}
|
}
|
||||||
|
|
||||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
allprojects {
|
||||||
targetCompatibility = JavaVersion.VERSION_1_8
|
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 {
|
repositories {
|
||||||
maven { url = "https://jitpack.io" }
|
mavenLocal()
|
||||||
|
mavenCentral()
|
||||||
|
maven { url = 'https://aperlambda.github.io/maven' }
|
||||||
}
|
}
|
||||||
// SpruceUI
|
|
||||||
ivy {
|
dependencies {
|
||||||
url 'https://github.com/LambdAurora/SpruceUI/releases/download/'
|
|
||||||
patternLayout {
|
|
||||||
artifact '[revision]/[module]-[version].[ext]'
|
|
||||||
}
|
|
||||||
metadataSources() {
|
|
||||||
artifact()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// OkZoomer
|
|
||||||
ivy {
|
tasks.withType(JavaCompile) {
|
||||||
url 'https://github.com/joaoh1/OkZoomer/releases/download/'
|
options.encoding = "UTF-8"
|
||||||
patternLayout {
|
}
|
||||||
artifact '[revision]/[module]-[version].[ext]'
|
|
||||||
}
|
// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task
|
||||||
metadataSources() {
|
// if it is present.
|
||||||
artifact()
|
// 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
|
// configure the maven publication
|
||||||
publishing {
|
publishing {
|
||||||
publications {
|
publications {
|
||||||
@@ -123,4 +48,4 @@ publishing {
|
|||||||
repositories {
|
repositories {
|
||||||
mavenLocal()
|
mavenLocal()
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
|
|||||||
15
common/build.gradle
Normal 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
|
||||||
|
}
|
||||||
@@ -9,7 +9,6 @@
|
|||||||
|
|
||||||
package me.lambdaurora.lambdacontrols;
|
package me.lambdaurora.lambdacontrols;
|
||||||
|
|
||||||
import net.minecraft.client.resource.language.I18n;
|
|
||||||
import org.aperlambda.lambdacommon.utils.Nameable;
|
import org.aperlambda.lambdacommon.utils.Nameable;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
@@ -20,7 +19,7 @@ import java.util.Optional;
|
|||||||
* Represents the controls mode.
|
* Represents the controls mode.
|
||||||
*
|
*
|
||||||
* @author LambdAurora
|
* @author LambdAurora
|
||||||
* @version 1.0.0
|
* @version 1.1.0
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
public enum ControlsMode implements Nameable
|
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
|
@Override
|
||||||
@@ -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
@@ -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
|
||||||
|
}
|
||||||
@@ -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
@@ -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"
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
* see the LICENSE file.
|
* see the LICENSE file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package me.lambdaurora.lambdacontrols;
|
package me.lambdaurora.lambdacontrols.client;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a button state.
|
* Represents a button state.
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
* see the LICENSE file.
|
* see the LICENSE file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package me.lambdaurora.lambdacontrols;
|
package me.lambdaurora.lambdacontrols.client;
|
||||||
|
|
||||||
import net.minecraft.client.resource.language.I18n;
|
import net.minecraft.client.resource.language.I18n;
|
||||||
import org.aperlambda.lambdacommon.utils.Nameable;
|
import org.aperlambda.lambdacommon.utils.Nameable;
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
* see the LICENSE file.
|
* see the LICENSE file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package me.lambdaurora.lambdacontrols;
|
package me.lambdaurora.lambdacontrols.client;
|
||||||
|
|
||||||
import net.minecraft.client.resource.language.I18n;
|
import net.minecraft.client.resource.language.I18n;
|
||||||
import org.aperlambda.lambdacommon.utils.Nameable;
|
import org.aperlambda.lambdacommon.utils.Nameable;
|
||||||
@@ -7,13 +7,16 @@
|
|||||||
* see the LICENSE file.
|
* see the LICENSE file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package me.lambdaurora.lambdacontrols;
|
package me.lambdaurora.lambdacontrols.client;
|
||||||
|
|
||||||
import com.mojang.blaze3d.platform.GlStateManager;
|
import com.mojang.blaze3d.platform.GlStateManager;
|
||||||
import me.lambdaurora.lambdacontrols.compat.LambdaControlsCompat;
|
import me.lambdaurora.lambdacontrols.ControlsMode;
|
||||||
import me.lambdaurora.lambdacontrols.controller.ButtonBinding;
|
import me.lambdaurora.lambdacontrols.LambdaControls;
|
||||||
import me.lambdaurora.lambdacontrols.controller.Controller;
|
import me.lambdaurora.lambdacontrols.LambdaControlsConstants;
|
||||||
import me.lambdaurora.lambdacontrols.gui.LambdaControlsHud;
|
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.api.ClientModInitializer;
|
||||||
import net.fabricmc.fabric.api.client.keybinding.FabricKeyBinding;
|
import net.fabricmc.fabric.api.client.keybinding.FabricKeyBinding;
|
||||||
import net.fabricmc.fabric.api.client.keybinding.KeyBindingRegistry;
|
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.LiteralText;
|
||||||
import net.minecraft.text.TranslatableText;
|
import net.minecraft.text.TranslatableText;
|
||||||
import net.minecraft.util.Identifier;
|
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.aperlambda.lambdacommon.utils.Pair;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.lwjgl.glfw.GLFW;
|
import org.lwjgl.glfw.GLFW;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents the LambdaControls mod.
|
* Represents the LambdaControls client mod.
|
||||||
*
|
*
|
||||||
* @author LambdAurora
|
* @author LambdAurora
|
||||||
* @version 1.1.0
|
* @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;
|
private static LambdaControlsClient INSTANCE;
|
||||||
public static final String MODID = "lambdacontrols";
|
public static final FabricKeyBinding BINDING_LOOK_UP = FabricKeyBinding.Builder.create(new Identifier(LambdaControlsConstants.NAMESPACE, "look_up"),
|
||||||
public static final FabricKeyBinding BINDING_LOOK_UP = FabricKeyBinding.Builder.create(new Identifier(MODID, "look_up"),
|
|
||||||
InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_KP_8, "key.categories.movement").build();
|
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();
|
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();
|
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();
|
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_BUTTONS = new Identifier(LambdaControlsConstants.NAMESPACE, "textures/gui/controller_buttons.png");
|
||||||
public static final Identifier CONTROLLER_AXIS = new Identifier(MODID, "textures/gui/controller_axis.png");
|
public static final Identifier CONTROLLER_AXIS = new Identifier(LambdaControlsConstants.NAMESPACE, "textures/gui/controller_axis.png");
|
||||||
public final Logger logger = LogManager.getLogger("LambdaControls");
|
|
||||||
public final LambdaControlsConfig config = new LambdaControlsConfig(this);
|
public final LambdaControlsConfig config = new LambdaControlsConfig(this);
|
||||||
public final LambdaInput input = new LambdaInput(this);
|
public final LambdaInput input = new LambdaInput(this);
|
||||||
private LambdaControlsHud hud;
|
private LambdaControlsHud hud;
|
||||||
@@ -64,8 +63,6 @@ public class LambdaControls implements ClientModInitializer
|
|||||||
public void onInitializeClient()
|
public void onInitializeClient()
|
||||||
{
|
{
|
||||||
INSTANCE = this;
|
INSTANCE = this;
|
||||||
this.log("Initializing LambdaControls...");
|
|
||||||
|
|
||||||
KeyBindingRegistry.INSTANCE.register(BINDING_LOOK_UP);
|
KeyBindingRegistry.INSTANCE.register(BINDING_LOOK_UP);
|
||||||
KeyBindingRegistry.INSTANCE.register(BINDING_LOOK_RIGHT);
|
KeyBindingRegistry.INSTANCE.register(BINDING_LOOK_RIGHT);
|
||||||
KeyBindingRegistry.INSTANCE.register(BINDING_LOOK_DOWN);
|
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)
|
public static LambdaControlsClient get()
|
||||||
{
|
|
||||||
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;
|
return INSTANCE;
|
||||||
}
|
}
|
||||||
@@ -267,7 +244,7 @@ public class LambdaControls implements ClientModInitializer
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
client.getTextureManager().bindTexture(axis ? LambdaControls.CONTROLLER_AXIS : LambdaControls.CONTROLLER_BUTTONS);
|
client.getTextureManager().bindTexture(axis ? LambdaControlsClient.CONTROLLER_AXIS : LambdaControlsClient.CONTROLLER_BUTTONS);
|
||||||
GlStateManager.disableDepthTest();
|
GlStateManager.disableDepthTest();
|
||||||
|
|
||||||
GlStateManager.color4f(1.0F, second ? 0.0F : 1.0F, 1.0F, 1.0F);
|
GlStateManager.color4f(1.0F, second ? 0.0F : 1.0F, 1.0F, 1.0F);
|
||||||
@@ -7,12 +7,13 @@
|
|||||||
* see the LICENSE file.
|
* see the LICENSE file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package me.lambdaurora.lambdacontrols;
|
package me.lambdaurora.lambdacontrols.client;
|
||||||
|
|
||||||
import com.electronwill.nightconfig.core.file.FileConfig;
|
import com.electronwill.nightconfig.core.file.FileConfig;
|
||||||
import me.lambdaurora.lambdacontrols.controller.ButtonBinding;
|
import me.lambdaurora.lambdacontrols.ControlsMode;
|
||||||
import me.lambdaurora.lambdacontrols.controller.Controller;
|
import me.lambdaurora.lambdacontrols.client.controller.ButtonBinding;
|
||||||
import me.lambdaurora.lambdacontrols.controller.InputManager;
|
import me.lambdaurora.lambdacontrols.client.controller.Controller;
|
||||||
|
import me.lambdaurora.lambdacontrols.client.controller.InputManager;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.lwjgl.glfw.GLFW;
|
import org.lwjgl.glfw.GLFW;
|
||||||
@@ -21,6 +22,7 @@ import java.util.Arrays;
|
|||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
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_X;
|
||||||
import static org.lwjgl.glfw.GLFW.GLFW_GAMEPAD_AXIS_LEFT_Y;
|
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
|
public class LambdaControlsConfig
|
||||||
{
|
{
|
||||||
private static final ControlsMode DEFAULT_CONTROLS_MODE = ControlsMode.DEFAULT;
|
private static final ControlsMode DEFAULT_CONTROLS_MODE = ControlsMode.DEFAULT;
|
||||||
private static final boolean DEFAULT_AUTO_SWITCH_MODE = false;
|
private static final boolean DEFAULT_AUTO_SWITCH_MODE = false;
|
||||||
private static final boolean DEFAULT_HUD_ENABLE = true;
|
private static final boolean DEFAULT_HUD_ENABLE = true;
|
||||||
private static final HudSide DEFAULT_HUD_SIDE = HudSide.LEFT;
|
private static final HudSide DEFAULT_HUD_SIDE = HudSide.LEFT;
|
||||||
private static final ControllerType DEFAULT_CONTROLLER_TYPE = ControllerType.DEFAULT;
|
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 static final Pattern BUTTON_BINDING_PATTERN = Pattern.compile("(-?\\d+)\\+?");
|
||||||
|
|
||||||
private final FileConfig config = FileConfig.builder("config/lambdacontrols.toml").concurrent().defaultResource("/config.toml").build();
|
protected final FileConfig config = FileConfig.builder("config/lambdacontrols.toml").concurrent().defaultResource("/config.toml").build();
|
||||||
private final LambdaControls mod;
|
private final LambdaControlsClient mod;
|
||||||
private ControlsMode controls_mode;
|
private ControlsMode controls_mode;
|
||||||
private ControllerType controller_type;
|
private ControllerType controller_type;
|
||||||
// HUD settings.
|
// HUD settings.
|
||||||
private boolean hud_enable;
|
private boolean hud_enable;
|
||||||
private HudSide hud_side;
|
private HudSide hud_side;
|
||||||
// Controller settings
|
// Controller settings
|
||||||
private double dead_zone;
|
private double dead_zone;
|
||||||
private double rotation_speed;
|
private double rotation_speed;
|
||||||
private double mouse_speed;
|
private double mouse_speed;
|
||||||
|
|
||||||
public LambdaControlsConfig(@NotNull LambdaControls mod)
|
public LambdaControlsConfig(@NotNull LambdaControlsClient mod)
|
||||||
{
|
{
|
||||||
this.mod = mod;
|
this.mod = mod;
|
||||||
}
|
}
|
||||||
@@ -117,7 +119,8 @@ public class LambdaControlsConfig
|
|||||||
this.set_rotation_speed(DEFAULT_ROTATION_SPEED);
|
this.set_rotation_speed(DEFAULT_ROTATION_SPEED);
|
||||||
this.set_mouse_speed(DEFAULT_MOUSE_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()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -7,10 +7,11 @@
|
|||||||
* see the LICENSE file.
|
* see the LICENSE file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package me.lambdaurora.lambdacontrols;
|
package me.lambdaurora.lambdacontrols.client;
|
||||||
|
|
||||||
import io.github.prospector.modmenu.api.ModMenuApi;
|
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.MinecraftClient;
|
||||||
import net.minecraft.client.gui.screen.Screen;
|
import net.minecraft.client.gui.screen.Screen;
|
||||||
|
|
||||||
@@ -28,7 +29,7 @@ public class LambdaControlsModMenu implements ModMenuApi
|
|||||||
@Override
|
@Override
|
||||||
public String getModId()
|
public String getModId()
|
||||||
{
|
{
|
||||||
return LambdaControls.MODID;
|
return LambdaControlsConstants.NAMESPACE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -7,16 +7,16 @@
|
|||||||
* see the LICENSE file.
|
* see the LICENSE file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package me.lambdaurora.lambdacontrols;
|
package me.lambdaurora.lambdacontrols.client;
|
||||||
|
|
||||||
import me.lambdaurora.lambdacontrols.controller.ButtonBinding;
|
import me.lambdaurora.lambdacontrols.client.controller.ButtonBinding;
|
||||||
import me.lambdaurora.lambdacontrols.controller.Controller;
|
import me.lambdaurora.lambdacontrols.client.controller.Controller;
|
||||||
import me.lambdaurora.lambdacontrols.controller.InputManager;
|
import me.lambdaurora.lambdacontrols.client.controller.InputManager;
|
||||||
import me.lambdaurora.lambdacontrols.gui.LambdaControlsControlsScreen;
|
import me.lambdaurora.lambdacontrols.client.gui.LambdaControlsControlsScreen;
|
||||||
import me.lambdaurora.lambdacontrols.gui.TouchscreenOverlay;
|
import me.lambdaurora.lambdacontrols.client.gui.TouchscreenOverlay;
|
||||||
import me.lambdaurora.lambdacontrols.mixin.EntryListWidgetAccessor;
|
import me.lambdaurora.lambdacontrols.client.mixin.EntryListWidgetAccessor;
|
||||||
import me.lambdaurora.lambdacontrols.util.AbstractContainerScreenAccessor;
|
import me.lambdaurora.lambdacontrols.client.util.AbstractContainerScreenAccessor;
|
||||||
import me.lambdaurora.lambdacontrols.util.MouseAccessor;
|
import me.lambdaurora.lambdacontrols.client.util.MouseAccessor;
|
||||||
import me.lambdaurora.spruceui.SpruceLabelWidget;
|
import me.lambdaurora.spruceui.SpruceLabelWidget;
|
||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
import net.minecraft.client.gui.Element;
|
import net.minecraft.client.gui.Element;
|
||||||
@@ -46,7 +46,7 @@ import java.util.HashMap;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
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.*;
|
import static org.lwjgl.glfw.GLFW.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -77,7 +77,7 @@ public class LambdaInput
|
|||||||
private float mouse_speed_x = 0.F;
|
private float mouse_speed_x = 0.F;
|
||||||
private float mouse_speed_y = 0.F;
|
private float mouse_speed_y = 0.F;
|
||||||
|
|
||||||
public LambdaInput(@NotNull LambdaControls mod)
|
public LambdaInput(@NotNull LambdaControlsClient mod)
|
||||||
{
|
{
|
||||||
this.config = mod.config;
|
this.config = mod.config;
|
||||||
}
|
}
|
||||||
@@ -93,14 +93,14 @@ public class LambdaInput
|
|||||||
this.prev_target_pitch = this.target_pitch;
|
this.prev_target_pitch = this.target_pitch;
|
||||||
|
|
||||||
// Handles the key bindings.
|
// 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);
|
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);
|
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);
|
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);
|
this.handle_look(client, GLFW_GAMEPAD_AXIS_RIGHT_X, 0.8F, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,9 @@
|
|||||||
* see the LICENSE file.
|
* 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;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -26,5 +26,5 @@ public interface CompatHandler
|
|||||||
*
|
*
|
||||||
* @param mod This mod instance.
|
* @param mod This mod instance.
|
||||||
*/
|
*/
|
||||||
void handle(@NotNull LambdaControls mod);
|
void handle(@NotNull LambdaControlsClient mod);
|
||||||
}
|
}
|
||||||
@@ -7,10 +7,10 @@
|
|||||||
* see the LICENSE file.
|
* 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 me.lambdaurora.lambdacontrols.controller.InputManager;
|
import me.lambdaurora.lambdacontrols.client.controller.InputManager;
|
||||||
import net.fabricmc.loader.api.FabricLoader;
|
import net.fabricmc.loader.api.FabricLoader;
|
||||||
import org.aperlambda.lambdacommon.utils.LambdaReflection;
|
import org.aperlambda.lambdacommon.utils.LambdaReflection;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@@ -29,7 +29,7 @@ public class LambdaControlsCompat
|
|||||||
*
|
*
|
||||||
* @param mod The mod instance.
|
* @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)) {
|
if (FabricLoader.getInstance().isModLoaded("okzoomer") && LambdaReflection.does_class_exist(OkZoomerCompat.OKZOOMER_CLASS_PATH)) {
|
||||||
mod.log("Adding okzoomer compatibility...");
|
mod.log("Adding okzoomer compatibility...");
|
||||||
@@ -7,11 +7,11 @@
|
|||||||
* see the LICENSE file.
|
* 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 me.lambdaurora.lambdacontrols.controller.ButtonBinding;
|
import me.lambdaurora.lambdacontrols.client.controller.ButtonBinding;
|
||||||
import me.lambdaurora.lambdacontrols.controller.InputManager;
|
import me.lambdaurora.lambdacontrols.client.controller.InputManager;
|
||||||
import net.fabricmc.fabric.api.client.keybinding.FabricKeyBinding;
|
import net.fabricmc.fabric.api.client.keybinding.FabricKeyBinding;
|
||||||
import org.aperlambda.lambdacommon.utils.LambdaReflection;
|
import org.aperlambda.lambdacommon.utils.LambdaReflection;
|
||||||
import org.jetbrains.annotations.NotNull;
|
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";
|
public static final String OKZOOMER_CLASS_PATH = "io.github.joaoh1.okzoomer.OkZoomer";
|
||||||
|
|
||||||
@Override
|
@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)
|
LambdaReflection.get_first_field_of_type(io.github.joaoh1.okzoomer.OkZoomer.class, FabricKeyBinding.class)
|
||||||
.map(field -> (FabricKeyBinding) LambdaReflection.get_field_value(null, field))
|
.map(field -> (FabricKeyBinding) LambdaReflection.get_field_value(null, field))
|
||||||
@@ -7,9 +7,9 @@
|
|||||||
* see the LICENSE file.
|
* 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.MinecraftClient;
|
||||||
import net.minecraft.client.options.GameOptions;
|
import net.minecraft.client.options.GameOptions;
|
||||||
import net.minecraft.client.options.KeyBinding;
|
import net.minecraft.client.options.KeyBinding;
|
||||||
@@ -22,8 +22,8 @@ import org.lwjgl.glfw.GLFW;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static me.lambdaurora.lambdacontrols.controller.InputManager.register_binding;
|
import static me.lambdaurora.lambdacontrols.client.controller.InputManager.register_binding;
|
||||||
import static me.lambdaurora.lambdacontrols.controller.InputManager.register_default_category;
|
import static me.lambdaurora.lambdacontrols.client.controller.InputManager.register_default_category;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a button binding.
|
* Represents a button binding.
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
* see the LICENSE file.
|
* see the LICENSE file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package me.lambdaurora.lambdacontrols.controller;
|
package me.lambdaurora.lambdacontrols.client.controller;
|
||||||
|
|
||||||
import net.minecraft.client.resource.language.I18n;
|
import net.minecraft.client.resource.language.I18n;
|
||||||
import org.aperlambda.lambdacommon.Identifier;
|
import org.aperlambda.lambdacommon.Identifier;
|
||||||
@@ -7,9 +7,9 @@
|
|||||||
* see the LICENSE file.
|
* 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.aperlambda.lambdacommon.utils.Nameable;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.lwjgl.glfw.GLFW;
|
import org.lwjgl.glfw.GLFW;
|
||||||
@@ -116,7 +116,7 @@ public class Controller implements Nameable
|
|||||||
public static @NotNull Controller by_id(int id)
|
public static @NotNull Controller by_id(int id)
|
||||||
{
|
{
|
||||||
if (id > GLFW.GLFW_JOYSTICK_LAST) {
|
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;
|
id = GLFW.GLFW_JOYSTICK_LAST;
|
||||||
}
|
}
|
||||||
Controller controller;
|
Controller controller;
|
||||||
@@ -170,7 +170,7 @@ public class Controller implements Nameable
|
|||||||
File mappings_file = new File("config/gamecontrollerdb.txt");
|
File mappings_file = new File("config/gamecontrollerdb.txt");
|
||||||
if (!mappings_file.exists())
|
if (!mappings_file.exists())
|
||||||
return;
|
return;
|
||||||
LambdaControls.get().log("Updating controller mappings...");
|
LambdaControlsClient.get().log("Updating controller mappings...");
|
||||||
ByteBuffer buffer = io_resource_to_buffer(mappings_file.getPath(), 1024);
|
ByteBuffer buffer = io_resource_to_buffer(mappings_file.getPath(), 1024);
|
||||||
GLFW.glfwUpdateGamepadMappings(buffer);
|
GLFW.glfwUpdateGamepadMappings(buffer);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
@@ -7,11 +7,11 @@
|
|||||||
* see the LICENSE file.
|
* 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 me.lambdaurora.lambdacontrols.util.CreativeInventoryScreenAccessor;
|
import me.lambdaurora.lambdacontrols.client.util.CreativeInventoryScreenAccessor;
|
||||||
import me.lambdaurora.lambdacontrols.util.KeyBindingAccessor;
|
import me.lambdaurora.lambdacontrols.client.util.KeyBindingAccessor;
|
||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
import net.minecraft.client.gui.screen.ingame.AbstractContainerScreen;
|
import net.minecraft.client.gui.screen.ingame.AbstractContainerScreen;
|
||||||
import net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen;
|
import net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen;
|
||||||
@@ -7,10 +7,10 @@
|
|||||||
* see the LICENSE file.
|
* 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 me.lambdaurora.lambdacontrols.LambdaControlsConfig;
|
import me.lambdaurora.lambdacontrols.client.LambdaControlsConfig;
|
||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
import org.aperlambda.lambdacommon.Identifier;
|
import org.aperlambda.lambdacommon.Identifier;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@@ -7,10 +7,10 @@
|
|||||||
* see the LICENSE file.
|
* 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 me.lambdaurora.lambdacontrols.util.KeyBindingAccessor;
|
import me.lambdaurora.lambdacontrols.client.util.KeyBindingAccessor;
|
||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
@@ -7,10 +7,10 @@
|
|||||||
* see the LICENSE file.
|
* see the LICENSE file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package me.lambdaurora.lambdacontrols.gui;
|
package me.lambdaurora.lambdacontrols.client.gui;
|
||||||
|
|
||||||
import me.lambdaurora.lambdacontrols.LambdaControls;
|
import me.lambdaurora.lambdacontrols.client.LambdaControlsClient;
|
||||||
import me.lambdaurora.lambdacontrols.controller.ButtonBinding;
|
import me.lambdaurora.lambdacontrols.client.controller.ButtonBinding;
|
||||||
import me.lambdaurora.spruceui.AbstractIconButtonWidget;
|
import me.lambdaurora.spruceui.AbstractIconButtonWidget;
|
||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
import net.minecraft.client.resource.language.I18n;
|
import net.minecraft.client.resource.language.I18n;
|
||||||
@@ -52,7 +52,7 @@ public class ControllerButtonWidget extends AbstractIconButtonWidget
|
|||||||
if (this.binding.get_button().length > 1) {
|
if (this.binding.get_button().length > 1) {
|
||||||
x += (this.width / 2 - this.icon_width / 2) - 4;
|
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();
|
this.icon_width = size.get_key();
|
||||||
return size.get_value();
|
return size.get_value();
|
||||||
}
|
}
|
||||||
@@ -7,11 +7,11 @@
|
|||||||
* see the LICENSE file.
|
* 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.client.controller.ButtonBinding;
|
||||||
import me.lambdaurora.lambdacontrols.controller.ButtonCategory;
|
import me.lambdaurora.lambdacontrols.client.controller.ButtonCategory;
|
||||||
import me.lambdaurora.lambdacontrols.controller.InputManager;
|
import me.lambdaurora.lambdacontrols.client.controller.InputManager;
|
||||||
import net.fabricmc.api.EnvType;
|
import net.fabricmc.api.EnvType;
|
||||||
import net.fabricmc.api.Environment;
|
import net.fabricmc.api.Environment;
|
||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
@@ -7,11 +7,11 @@
|
|||||||
* see the LICENSE file.
|
* see the LICENSE file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package me.lambdaurora.lambdacontrols.gui;
|
package me.lambdaurora.lambdacontrols.client.gui;
|
||||||
|
|
||||||
import me.lambdaurora.lambdacontrols.LambdaControls;
|
import me.lambdaurora.lambdacontrols.client.LambdaControlsClient;
|
||||||
import me.lambdaurora.lambdacontrols.controller.ButtonBinding;
|
import me.lambdaurora.lambdacontrols.client.controller.ButtonBinding;
|
||||||
import me.lambdaurora.lambdacontrols.controller.InputManager;
|
import me.lambdaurora.lambdacontrols.client.controller.InputManager;
|
||||||
import me.lambdaurora.spruceui.SpruceButtonWidget;
|
import me.lambdaurora.spruceui.SpruceButtonWidget;
|
||||||
import net.minecraft.client.gui.screen.Screen;
|
import net.minecraft.client.gui.screen.Screen;
|
||||||
import net.minecraft.client.gui.screen.options.ControlsOptionsScreen;
|
import net.minecraft.client.gui.screen.options.ControlsOptionsScreen;
|
||||||
@@ -30,9 +30,9 @@ import java.util.function.Predicate;
|
|||||||
*/
|
*/
|
||||||
public class LambdaControlsControlsScreen extends Screen
|
public class LambdaControlsControlsScreen extends Screen
|
||||||
{
|
{
|
||||||
private final Screen parent;
|
private final Screen parent;
|
||||||
final LambdaControls mod;
|
final LambdaControlsClient mod;
|
||||||
private final boolean hide_settings;
|
private final boolean hide_settings;
|
||||||
private ControlsListWidget bindings_list_widget;
|
private ControlsListWidget bindings_list_widget;
|
||||||
private ButtonWidget reset_button;
|
private ButtonWidget reset_button;
|
||||||
public ButtonBinding focused_binding;
|
public ButtonBinding focused_binding;
|
||||||
@@ -43,7 +43,7 @@ public class LambdaControlsControlsScreen extends Screen
|
|||||||
{
|
{
|
||||||
super(new TranslatableText("lambdacontrols.menu.title.controller_controls"));
|
super(new TranslatableText("lambdacontrols.menu.title.controller_controls"));
|
||||||
this.parent = parent;
|
this.parent = parent;
|
||||||
this.mod = LambdaControls.get();
|
this.mod = LambdaControlsClient.get();
|
||||||
this.hide_settings = hide_settings;
|
this.hide_settings = hide_settings;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -7,12 +7,12 @@
|
|||||||
* see the LICENSE file.
|
* see the LICENSE file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package me.lambdaurora.lambdacontrols.gui;
|
package me.lambdaurora.lambdacontrols.client.gui;
|
||||||
|
|
||||||
import me.lambdaurora.lambdacontrols.ControlsMode;
|
import me.lambdaurora.lambdacontrols.ControlsMode;
|
||||||
import me.lambdaurora.lambdacontrols.HudSide;
|
import me.lambdaurora.lambdacontrols.client.HudSide;
|
||||||
import me.lambdaurora.lambdacontrols.LambdaControls;
|
import me.lambdaurora.lambdacontrols.client.LambdaControlsClient;
|
||||||
import me.lambdaurora.lambdacontrols.controller.ButtonBinding;
|
import me.lambdaurora.lambdacontrols.client.controller.ButtonBinding;
|
||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
import net.minecraft.client.gui.DrawableHelper;
|
import net.minecraft.client.gui.DrawableHelper;
|
||||||
import net.minecraft.util.hit.HitResult;
|
import net.minecraft.util.hit.HitResult;
|
||||||
@@ -27,12 +27,12 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
*/
|
*/
|
||||||
public class LambdaControlsHud extends DrawableHelper
|
public class LambdaControlsHud extends DrawableHelper
|
||||||
{
|
{
|
||||||
private final MinecraftClient client;
|
private final MinecraftClient client;
|
||||||
private final LambdaControls mod;
|
private final LambdaControlsClient mod;
|
||||||
private int width_bottom = 0;
|
private int width_bottom = 0;
|
||||||
private int width_top = 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.client = client;
|
||||||
this.mod = mod;
|
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)
|
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)
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,11 +7,11 @@
|
|||||||
* see the LICENSE file.
|
* see the LICENSE file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package me.lambdaurora.lambdacontrols.gui;
|
package me.lambdaurora.lambdacontrols.client.gui;
|
||||||
|
|
||||||
import me.lambdaurora.lambdacontrols.ControlsMode;
|
import me.lambdaurora.lambdacontrols.ControlsMode;
|
||||||
import me.lambdaurora.lambdacontrols.LambdaControls;
|
import me.lambdaurora.lambdacontrols.client.LambdaControlsClient;
|
||||||
import me.lambdaurora.lambdacontrols.controller.Controller;
|
import me.lambdaurora.lambdacontrols.client.controller.Controller;
|
||||||
import me.lambdaurora.spruceui.SpruceButtonWidget;
|
import me.lambdaurora.spruceui.SpruceButtonWidget;
|
||||||
import me.lambdaurora.spruceui.SpruceLabelWidget;
|
import me.lambdaurora.spruceui.SpruceLabelWidget;
|
||||||
import me.lambdaurora.spruceui.Tooltip;
|
import me.lambdaurora.spruceui.Tooltip;
|
||||||
@@ -36,9 +36,9 @@ import org.lwjgl.glfw.GLFW;
|
|||||||
*/
|
*/
|
||||||
public class LambdaControlsSettingsScreen extends Screen
|
public class LambdaControlsSettingsScreen extends Screen
|
||||||
{
|
{
|
||||||
public static final String GAMEPAD_TOOL_URL = "http://generalarcade.com/gamepadtool/";
|
public static final String GAMEPAD_TOOL_URL = "http://generalarcade.com/gamepadtool/";
|
||||||
final LambdaControls mod;
|
final LambdaControlsClient mod;
|
||||||
private final Screen parent;
|
private final Screen parent;
|
||||||
private final boolean hide_controls;
|
private final boolean hide_controls;
|
||||||
// General options
|
// General options
|
||||||
private final Option auto_switch_mode_option;
|
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)
|
public LambdaControlsSettingsScreen(Screen parent, @NotNull GameOptions options, boolean hide_controls)
|
||||||
{
|
{
|
||||||
super(new TranslatableText("lambdacontrols.title.settings"));
|
super(new TranslatableText("lambdacontrols.title.settings"));
|
||||||
this.mod = LambdaControls.get();
|
this.mod = LambdaControlsClient.get();
|
||||||
this.parent = parent;
|
this.parent = parent;
|
||||||
this.hide_controls = hide_controls;
|
this.hide_controls = hide_controls;
|
||||||
// General options
|
// General options
|
||||||
@@ -179,10 +179,10 @@ public class LambdaControlsSettingsScreen extends Screen
|
|||||||
super.init();
|
super.init();
|
||||||
int button_height = 20;
|
int button_height = 20;
|
||||||
SpruceButtonWidget controls_mode_btn = new SpruceButtonWidget(this.width / 2 - 155, 18, this.hide_controls ? 310 : 150, button_height,
|
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 -> {
|
btn -> {
|
||||||
ControlsMode next = this.mod.config.get_controls_mode().next();
|
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.set_controls_mode(next);
|
||||||
this.mod.config.save();
|
this.mod.config.save();
|
||||||
});
|
});
|
||||||
@@ -7,9 +7,9 @@
|
|||||||
* see the LICENSE file.
|
* 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 me.lambdaurora.spruceui.SpruceButtonWidget;
|
||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
import net.minecraft.client.gui.widget.AbstractButtonWidget;
|
import net.minecraft.client.gui.widget.AbstractButtonWidget;
|
||||||
@@ -7,11 +7,11 @@
|
|||||||
* see the LICENSE file.
|
* see the LICENSE file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package me.lambdaurora.lambdacontrols.gui;
|
package me.lambdaurora.lambdacontrols.client.gui;
|
||||||
|
|
||||||
import me.lambdaurora.lambdacontrols.HudSide;
|
import me.lambdaurora.lambdacontrols.client.HudSide;
|
||||||
import me.lambdaurora.lambdacontrols.LambdaControls;
|
import me.lambdaurora.lambdacontrols.client.LambdaControlsClient;
|
||||||
import me.lambdaurora.lambdacontrols.util.KeyBindingAccessor;
|
import me.lambdaurora.lambdacontrols.client.util.KeyBindingAccessor;
|
||||||
import me.lambdaurora.spruceui.SpruceTexturedButtonWidget;
|
import me.lambdaurora.spruceui.SpruceTexturedButtonWidget;
|
||||||
import net.minecraft.client.gui.screen.ChatScreen;
|
import net.minecraft.client.gui.screen.ChatScreen;
|
||||||
import net.minecraft.client.gui.screen.GameMenuScreen;
|
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 class TouchscreenOverlay extends Screen
|
||||||
{
|
{
|
||||||
public static final Identifier WIDGETS_LOCATION = new Identifier("lambdacontrols", "textures/gui/widgets.png");
|
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 jump_button;
|
||||||
private SpruceTexturedButtonWidget fly_button;
|
private SpruceTexturedButtonWidget fly_button;
|
||||||
private SpruceTexturedButtonWidget fly_up_button;
|
private SpruceTexturedButtonWidget fly_up_button;
|
||||||
@@ -49,7 +49,7 @@ public class TouchscreenOverlay extends Screen
|
|||||||
private SpruceTexturedButtonWidget start_sneak_button;
|
private SpruceTexturedButtonWidget start_sneak_button;
|
||||||
private SpruceTexturedButtonWidget end_sneak_button;
|
private SpruceTexturedButtonWidget end_sneak_button;
|
||||||
|
|
||||||
public TouchscreenOverlay(@NotNull LambdaControls mod)
|
public TouchscreenOverlay(@NotNull LambdaControlsClient mod)
|
||||||
{
|
{
|
||||||
super(new LiteralText("Touchscreen overlay"));
|
super(new LiteralText("Touchscreen overlay"));
|
||||||
this.mod = mod;
|
this.mod = mod;
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
* see the LICENSE file.
|
* see the LICENSE file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package me.lambdaurora.lambdacontrols.mixin;
|
package me.lambdaurora.lambdacontrols.client.mixin;
|
||||||
|
|
||||||
import net.minecraft.client.gui.widget.AbstractButtonWidget;
|
import net.minecraft.client.gui.widget.AbstractButtonWidget;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
@@ -7,11 +7,11 @@
|
|||||||
* see the LICENSE file.
|
* see the LICENSE file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package me.lambdaurora.lambdacontrols.mixin;
|
package me.lambdaurora.lambdacontrols.client.mixin;
|
||||||
|
|
||||||
import me.lambdaurora.lambdacontrols.ControlsMode;
|
import me.lambdaurora.lambdacontrols.ControlsMode;
|
||||||
import me.lambdaurora.lambdacontrols.LambdaControls;
|
import me.lambdaurora.lambdacontrols.client.LambdaControlsClient;
|
||||||
import me.lambdaurora.lambdacontrols.util.AbstractContainerScreenAccessor;
|
import me.lambdaurora.lambdacontrols.client.util.AbstractContainerScreenAccessor;
|
||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
import net.minecraft.client.gui.screen.ingame.AbstractContainerScreen;
|
import net.minecraft.client.gui.screen.ingame.AbstractContainerScreen;
|
||||||
import net.minecraft.container.Slot;
|
import net.minecraft.container.Slot;
|
||||||
@@ -56,14 +56,14 @@ public abstract class AbstractContainerScreenMixin implements AbstractContainerS
|
|||||||
@Inject(method = "render", at = @At("RETURN"))
|
@Inject(method = "render", at = @At("RETURN"))
|
||||||
public void render(int mouseX, int mouseY, float delta, CallbackInfo ci)
|
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();
|
MinecraftClient client = MinecraftClient.getInstance();
|
||||||
int x = 10, y = client.getWindow().getScaledHeight() - 10 - 15;
|
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 += LambdaControlsClient.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 += LambdaControlsClient.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;
|
x += LambdaControlsClient.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);
|
LambdaControlsClient.draw_button_tip(x, y, new int[]{GLFW.GLFW_GAMEPAD_BUTTON_Y}, "lambdacontrols.action.quick_move", true, client);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,10 +7,10 @@
|
|||||||
* see the LICENSE file.
|
* 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.client.gui.LambdaControlsControlsScreen;
|
||||||
import me.lambdaurora.lambdacontrols.gui.LambdaControlsSettingsScreen;
|
import me.lambdaurora.lambdacontrols.client.gui.LambdaControlsSettingsScreen;
|
||||||
import net.minecraft.client.gui.screen.Screen;
|
import net.minecraft.client.gui.screen.Screen;
|
||||||
import net.minecraft.client.gui.screen.options.ControlsOptionsScreen;
|
import net.minecraft.client.gui.screen.options.ControlsOptionsScreen;
|
||||||
import net.minecraft.client.gui.screen.options.GameOptionsScreen;
|
import net.minecraft.client.gui.screen.options.GameOptionsScreen;
|
||||||
@@ -7,9 +7,9 @@
|
|||||||
* see the LICENSE file.
|
* 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.client.gui.screen.ingame.CreativeInventoryScreen;
|
||||||
import net.minecraft.item.ItemGroup;
|
import net.minecraft.item.ItemGroup;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
* see the LICENSE file.
|
* see the LICENSE file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package me.lambdaurora.lambdacontrols.mixin;
|
package me.lambdaurora.lambdacontrols.client.mixin;
|
||||||
|
|
||||||
import net.minecraft.client.gui.widget.EntryListWidget;
|
import net.minecraft.client.gui.widget.EntryListWidget;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
@@ -7,10 +7,10 @@
|
|||||||
* see the LICENSE file.
|
* see the LICENSE file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package me.lambdaurora.lambdacontrols.mixin;
|
package me.lambdaurora.lambdacontrols.client.mixin;
|
||||||
|
|
||||||
import me.lambdaurora.lambdacontrols.ControlsMode;
|
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.MinecraftClient;
|
||||||
import net.minecraft.client.render.GameRenderer;
|
import net.minecraft.client.render.GameRenderer;
|
||||||
import org.spongepowered.asm.mixin.Final;
|
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"))
|
@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)
|
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)
|
if (this.client.currentScreen != null && LambdaControlsClient.get().config.get_controls_mode() == ControlsMode.CONTROLLER)
|
||||||
LambdaControls.get().input.on_pre_render_screen(this.client, this.client.currentScreen);
|
LambdaControlsClient.get().input.on_pre_render_screen(this.client, this.client.currentScreen);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,9 @@
|
|||||||
* see the LICENSE file.
|
* 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.options.KeyBinding;
|
||||||
import net.minecraft.client.util.InputUtil;
|
import net.minecraft.client.util.InputUtil;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@@ -7,11 +7,11 @@
|
|||||||
* see the LICENSE file.
|
* see the LICENSE file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package me.lambdaurora.lambdacontrols.mixin;
|
package me.lambdaurora.lambdacontrols.client.mixin;
|
||||||
|
|
||||||
import me.lambdaurora.lambdacontrols.ControlsMode;
|
import me.lambdaurora.lambdacontrols.ControlsMode;
|
||||||
import me.lambdaurora.lambdacontrols.LambdaControls;
|
import me.lambdaurora.lambdacontrols.client.LambdaControlsClient;
|
||||||
import me.lambdaurora.lambdacontrols.gui.TouchscreenOverlay;
|
import me.lambdaurora.lambdacontrols.client.gui.TouchscreenOverlay;
|
||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
import net.minecraft.client.gui.screen.Screen;
|
import net.minecraft.client.gui.screen.Screen;
|
||||||
import net.minecraft.client.util.Window;
|
import net.minecraft.client.util.Window;
|
||||||
@@ -39,25 +39,25 @@ public abstract class MinecraftClientMixin
|
|||||||
@Inject(method = "<init>", at = @At("RETURN"))
|
@Inject(method = "<init>", at = @At("RETURN"))
|
||||||
private void on_init(CallbackInfo ci)
|
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"))
|
@Inject(method = "render", at = @At("HEAD"))
|
||||||
private void on_render(boolean full_render, CallbackInfo ci)
|
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"))
|
@Inject(method = "tick", at = @At("HEAD"))
|
||||||
private void on_handle_input_events(CallbackInfo ci)
|
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"))
|
@Inject(method = "openScreen", at = @At("RETURN"))
|
||||||
private void on_open_screen(@Nullable Screen screen, CallbackInfo ci)
|
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) {
|
if (screen == null && mod.config.get_controls_mode() == ControlsMode.TOUCHSCREEN) {
|
||||||
screen = new TouchscreenOverlay(mod);
|
screen = new TouchscreenOverlay(mod);
|
||||||
screen.init(((MinecraftClient) (Object) this), this.window.getScaledWidth(), this.window.getScaledHeight());
|
screen.init(((MinecraftClient) (Object) this), this.window.getScaledWidth(), this.window.getScaledHeight());
|
||||||
@@ -7,11 +7,11 @@
|
|||||||
* see the LICENSE file.
|
* see the LICENSE file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package me.lambdaurora.lambdacontrols.mixin;
|
package me.lambdaurora.lambdacontrols.client.mixin;
|
||||||
|
|
||||||
import me.lambdaurora.lambdacontrols.ControlsMode;
|
import me.lambdaurora.lambdacontrols.ControlsMode;
|
||||||
import me.lambdaurora.lambdacontrols.LambdaControls;
|
import me.lambdaurora.lambdacontrols.client.LambdaControlsClient;
|
||||||
import me.lambdaurora.lambdacontrols.util.MouseAccessor;
|
import me.lambdaurora.lambdacontrols.client.util.MouseAccessor;
|
||||||
import net.minecraft.client.Mouse;
|
import net.minecraft.client.Mouse;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.Shadow;
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
@@ -34,7 +34,7 @@ public abstract class MouseMixin implements MouseAccessor
|
|||||||
@Inject(method = "lockCursor", at = @At("HEAD"), cancellable = true)
|
@Inject(method = "lockCursor", at = @At("HEAD"), cancellable = true)
|
||||||
private void on_mouse_locked(CallbackInfo ci)
|
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();
|
ci.cancel();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -7,11 +7,11 @@
|
|||||||
* see the LICENSE file.
|
* see the LICENSE file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package me.lambdaurora.lambdacontrols.mixin;
|
package me.lambdaurora.lambdacontrols.client.mixin;
|
||||||
|
|
||||||
import me.lambdaurora.lambdacontrols.ControlsMode;
|
import me.lambdaurora.lambdacontrols.ControlsMode;
|
||||||
import me.lambdaurora.lambdacontrols.LambdaControls;
|
import me.lambdaurora.lambdacontrols.client.LambdaControlsClient;
|
||||||
import me.lambdaurora.lambdacontrols.gui.LambdaControlsControlsScreen;
|
import me.lambdaurora.lambdacontrols.client.gui.LambdaControlsControlsScreen;
|
||||||
import net.minecraft.client.gui.screen.Screen;
|
import net.minecraft.client.gui.screen.Screen;
|
||||||
import net.minecraft.client.gui.screen.SettingsScreen;
|
import net.minecraft.client.gui.screen.SettingsScreen;
|
||||||
import net.minecraft.client.gui.widget.AbstractButtonWidget;
|
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))
|
@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)
|
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(),
|
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))));
|
b -> this.minecraft.openScreen(new LambdaControlsControlsScreen(this, false))));
|
||||||
} else {
|
} else {
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
* see the LICENSE file.
|
* see the LICENSE file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package me.lambdaurora.lambdacontrols.util;
|
package me.lambdaurora.lambdacontrols.client.util;
|
||||||
|
|
||||||
import net.minecraft.container.Slot;
|
import net.minecraft.container.Slot;
|
||||||
|
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
* see the LICENSE file.
|
* see the LICENSE file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package me.lambdaurora.lambdacontrols.util;
|
package me.lambdaurora.lambdacontrols.client.util;
|
||||||
|
|
||||||
import net.minecraft.item.ItemGroup;
|
import net.minecraft.item.ItemGroup;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
* see the LICENSE file.
|
* see the LICENSE file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package me.lambdaurora.lambdacontrols.util;
|
package me.lambdaurora.lambdacontrols.client.util;
|
||||||
|
|
||||||
import net.minecraft.client.util.InputUtil;
|
import net.minecraft.client.util.InputUtil;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
* see the LICENSE file.
|
* see the LICENSE file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package me.lambdaurora.lambdacontrols.util;
|
package me.lambdaurora.lambdacontrols.client.util;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents mouse's extra access.
|
* Represents mouse's extra access.
|
||||||
@@ -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);
|
||||||
|
}
|
||||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB |
@@ -73,36 +73,39 @@
|
|||||||
"lambdacontrols.controls_mode.touchscreen": "Touchscreen",
|
"lambdacontrols.controls_mode.touchscreen": "Touchscreen",
|
||||||
"lambdacontrols.hud_side.left": "left",
|
"lambdacontrols.hud_side.left": "left",
|
||||||
"lambdacontrols.hud_side.right": "right",
|
"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.controller": "Controller",
|
||||||
"lambdacontrols.menu.controller2": "Second controller",
|
"lambdacontrols.menu.controller2": "Second Controller",
|
||||||
"lambdacontrols.menu.controller_type": "Controller type",
|
"lambdacontrols.menu.controller_type": "Controller Type",
|
||||||
"lambdacontrols.menu.controls_mode": "Mode",
|
"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_enable": "Enable HUD",
|
||||||
"lambdacontrols.menu.hud_side": "HUD side",
|
"lambdacontrols.menu.hud_side": "HUD Side",
|
||||||
"lambdacontrols.menu.invert_right_x_axis": "Invert right X",
|
"lambdacontrols.menu.invert_right_x_axis": "Invert Right X",
|
||||||
"lambdacontrols.menu.invert_right_y_axis": "Invert right Y",
|
"lambdacontrols.menu.invert_right_y_axis": "Invert Right Y",
|
||||||
"lambdacontrols.menu.keyboard_controls": "Keyboard controls...",
|
"lambdacontrols.menu.keyboard_controls": "Keyboard Controls...",
|
||||||
"lambdacontrols.menu.mouse_speed": "Mouse speed",
|
"lambdacontrols.menu.mouse_speed": "Mouse Speed",
|
||||||
"lambdacontrols.menu.reload_controller_mappings": "Reload controller mappings",
|
"lambdacontrols.menu.reload_controller_mappings": "Reload Controller Mappings",
|
||||||
"lambdacontrols.menu.rotation_speed": "Rotation speed",
|
"lambdacontrols.menu.rotation_speed": "Rotation Speed",
|
||||||
"lambdacontrols.menu.title": "LambdaControls - Settings",
|
"lambdacontrols.menu.title": "LambdaControls - Settings",
|
||||||
"lambdacontrols.menu.title.controller": "Controller options",
|
"lambdacontrols.menu.title.controller": "Controller Options",
|
||||||
"lambdacontrols.menu.title.controller_controls": "Controller controls",
|
"lambdacontrols.menu.title.controller_controls": "Controller Controls",
|
||||||
"lambdacontrols.menu.title.general": "General options",
|
"lambdacontrols.menu.title.gameplay": "Gameplay Options",
|
||||||
"lambdacontrols.menu.title.hud": "HUD options",
|
"lambdacontrols.menu.title.general": "General Options",
|
||||||
|
"lambdacontrols.menu.title.hud": "HUD Options",
|
||||||
"lambdacontrols.menu.unbound": "Unbound",
|
"lambdacontrols.menu.unbound": "Unbound",
|
||||||
"lambdacontrols.narrator.unbound": "Unbound %s",
|
"lambdacontrols.narrator.unbound": "Unbound %s",
|
||||||
"lambdacontrols.not_bound": "Not bound",
|
"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.auto_switch_mode": "If the controls mode should be switched to Controller automatically if one is connected.",
|
||||||
"lambdacontrols.tooltip.controller2": "Defines a second controller to use, which allow Joy-Cons support for example.",
|
"lambdacontrols.tooltip.controller2": "Second controller to use, which allows Joy-Cons support for example.",
|
||||||
"lambdacontrols.tooltip.controller_type": "Changes the controller type to displays the correct buttons.",
|
"lambdacontrols.tooltip.controller_type": "The controller type to display the correct buttons.",
|
||||||
"lambdacontrols.tooltip.controls_mode": "Changes the controls mode.",
|
"lambdacontrols.tooltip.controls_mode": "The controls mode.",
|
||||||
"lambdacontrols.tooltip.dead_zone": "Sets the dead zone of the controller's axises.",
|
"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_enable": "Toggles the on-screen controller button indicator.",
|
||||||
"lambdacontrols.tooltip.hud_side": "Changes the position of the HUD.",
|
"lambdacontrols.tooltip.hud_side": "The position of the HUD.",
|
||||||
"lambdacontrols.tooltip.mouse_speed": "Changes the emulated mouse speed with a controller.",
|
"lambdacontrols.tooltip.mouse_speed": "The controller's emulated mouse speed.",
|
||||||
"lambdacontrols.tooltip.rotation_speed": "Changes the camera rotation speed in controller mode.",
|
"lambdacontrols.tooltip.rotation_speed": "The camera rotation speed in controller mode.",
|
||||||
"lambdacontrols.tooltip.reload_controller_mappings": "Reloads the controller mappings file."
|
"lambdacontrols.tooltip.reload_controller_mappings": "Reloads the controller mappings 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.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.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.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_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.hud_side": "Change la position du HUD.",
|
||||||
"lambdacontrols.tooltip.mouse_speed": "Change la vitesse de la souris émulée par la manette.",
|
"lambdacontrols.tooltip.mouse_speed": "Change la vitesse de la souris émulée par la manette.",
|
||||||
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 8.6 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
@@ -11,6 +11,10 @@ auto_switch_mode = false
|
|||||||
# Dertermines where the movements buttons are.
|
# Dertermines where the movements buttons are.
|
||||||
side = "left"
|
side = "left"
|
||||||
|
|
||||||
|
# Gameplay settings
|
||||||
|
[gameplay]
|
||||||
|
front_block_placing = false
|
||||||
|
|
||||||
# Controller settings
|
# Controller settings
|
||||||
[controller]
|
[controller]
|
||||||
# Controller to use.
|
# Controller to use.
|
||||||
@@ -16,11 +16,14 @@
|
|||||||
"icon": "assets/lambdacontrols/icon.png",
|
"icon": "assets/lambdacontrols/icon.png",
|
||||||
"environment": "client",
|
"environment": "client",
|
||||||
"entrypoints": {
|
"entrypoints": {
|
||||||
"client": [
|
"main": [
|
||||||
"me.lambdaurora.lambdacontrols.LambdaControls"
|
"me.lambdaurora.lambdacontrols.LambdaControls"
|
||||||
],
|
],
|
||||||
|
"client": [
|
||||||
|
"me.lambdaurora.lambdacontrols.client.LambdaControlsClient"
|
||||||
|
],
|
||||||
"modmenu": [
|
"modmenu": [
|
||||||
"me.lambdaurora.lambdacontrols.LambdaControlsModMenu"
|
"me.lambdaurora.lambdacontrols.client.LambdaControlsModMenu"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"mixins": [
|
"mixins": [
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"required": true,
|
"required": true,
|
||||||
"package": "me.lambdaurora.lambdacontrols.mixin",
|
"package": "me.lambdaurora.lambdacontrols.client.mixin",
|
||||||
"compatibilityLevel": "JAVA_8",
|
"compatibilityLevel": "JAVA_8",
|
||||||
"client": [
|
"client": [
|
||||||
"AbstractButtonWidgetAccessor",
|
"AbstractButtonWidgetAccessor",
|
||||||
@@ -8,7 +8,7 @@ org.gradle.jvmargs=-Xmx1G
|
|||||||
loader_version=0.7.2+build.174
|
loader_version=0.7.2+build.174
|
||||||
|
|
||||||
# Mod Properties
|
# Mod Properties
|
||||||
mod_version = 1.1.0-test2
|
mod_version = 1.1.0-test4
|
||||||
maven_group = me.lambdaurora
|
maven_group = me.lambdaurora
|
||||||
archives_base_name = lambdacontrols
|
archives_base_name = lambdacontrols
|
||||||
|
|
||||||
|
|||||||
@@ -8,3 +8,6 @@ pluginManagement {
|
|||||||
gradlePluginPortal()
|
gradlePluginPortal()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rootProject.name = 'lambdacontrols'
|
||||||
|
include 'common', 'fabric', 'elytra'
|
||||||
|
|||||||