Fix #37, fix some movement bugs, more WIP GUI rework.

This commit is contained in:
LambdAurora
2021-03-16 14:51:50 +01:00
parent b8ec934c10
commit cc0a9aebe2
11 changed files with 67 additions and 69 deletions

View File

@@ -15,5 +15,5 @@ archives_base_name = lambdacontrols
# Dependencies # Dependencies
# currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api # currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api
fabric_version=0.32.0+1.16 fabric_version=0.32.0+1.16
spruceui_version=2.1.1-1.16 spruceui_version=2.1.3-1.16
modmenu_version=1.16.8 modmenu_version=1.16.8

View File

@@ -11,16 +11,16 @@ package dev.lambdaurora.lambdacontrols.client;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
import dev.lambdaurora.lambdacontrols.client.compat.LambdaControlsCompat; import dev.lambdaurora.lambdacontrols.client.compat.LambdaControlsCompat;
import dev.lambdaurora.lambdacontrols.client.mixin.AdvancementsScreenAccessor;
import dev.lambdaurora.lambdacontrols.client.mixin.CreativeInventoryScreenAccessor;
import dev.lambdaurora.lambdacontrols.client.mixin.EntryListWidgetAccessor;
import dev.lambdaurora.lambdacontrols.client.util.HandledScreenAccessor;
import dev.lambdaurora.lambdacontrols.client.util.MouseAccessor;
import dev.lambdaurora.lambdacontrols.client.controller.ButtonBinding; import dev.lambdaurora.lambdacontrols.client.controller.ButtonBinding;
import dev.lambdaurora.lambdacontrols.client.controller.Controller; import dev.lambdaurora.lambdacontrols.client.controller.Controller;
import dev.lambdaurora.lambdacontrols.client.controller.InputManager; import dev.lambdaurora.lambdacontrols.client.controller.InputManager;
import dev.lambdaurora.lambdacontrols.client.gui.TouchscreenOverlay; import dev.lambdaurora.lambdacontrols.client.gui.TouchscreenOverlay;
import dev.lambdaurora.lambdacontrols.client.gui.widget.ControllerControlsWidget; import dev.lambdaurora.lambdacontrols.client.gui.widget.ControllerControlsWidget;
import dev.lambdaurora.lambdacontrols.client.mixin.AdvancementsScreenAccessor;
import dev.lambdaurora.lambdacontrols.client.mixin.CreativeInventoryScreenAccessor;
import dev.lambdaurora.lambdacontrols.client.mixin.EntryListWidgetAccessor;
import dev.lambdaurora.lambdacontrols.client.util.HandledScreenAccessor;
import dev.lambdaurora.lambdacontrols.client.util.MouseAccessor;
import me.lambdaurora.spruceui.navigation.NavigationDirection; import me.lambdaurora.spruceui.navigation.NavigationDirection;
import me.lambdaurora.spruceui.screen.SpruceScreen; import me.lambdaurora.spruceui.screen.SpruceScreen;
import me.lambdaurora.spruceui.widget.AbstractSprucePressableButtonWidget; import me.lambdaurora.spruceui.widget.AbstractSprucePressableButtonWidget;
@@ -193,13 +193,13 @@ public class LambdaInput {
if (player == null) if (player == null)
return; return;
if (this.targetYaw != 0F || this.targetPitch != 0F) { if (this.targetYaw != 0.f || this.targetPitch != 0.f) {
float rotationYaw = (float) (player.prevYaw + (this.targetYaw / 0.10) * tickDelta); float rotationYaw = (float) (player.prevYaw + (this.targetYaw / 0.10) * tickDelta);
float rotationPitch = (float) (player.prevPitch + (this.targetPitch / 0.10) * tickDelta); float rotationPitch = (float) (player.prevPitch + (this.targetPitch / 0.10) * tickDelta);
client.player.yaw = rotationYaw; client.player.yaw = rotationYaw;
client.player.pitch = MathHelper.clamp(rotationPitch, -90.F, 90.F); client.player.pitch = MathHelper.clamp(rotationPitch, -90.f, 90.f);
if (client.player.isRiding()) { if (client.player.isRiding()) {
client.player.getVehicle().copyPositionAndRotation(client.player); client.player.getVehicle().onPassengerLookAround(client.player);
} }
client.getTutorialManager().onUpdateMouse(this.targetPitch, this.targetYaw); client.getTutorialManager().onUpdateMouse(this.targetPitch, this.targetYaw);
} }

View File

@@ -224,7 +224,6 @@ public class ButtonBinding implements Nameable {
return; return;
if (this.hasCooldown && state.isPressed()) { if (this.hasCooldown && state.isPressed()) {
this.cooldown = 5; this.cooldown = 5;
} }
for (int i = this.actions.size() - 1; i >= 0; i--) { for (int i = this.actions.size() - 1; i >= 0; i--) {
if (this.actions.get(i).press(client, this, value, state)) if (this.actions.get(i).press(client, this, value, state))

View File

@@ -21,8 +21,7 @@ import org.jetbrains.annotations.NotNull;
* @version 1.4.0 * @version 1.4.0
* @since 1.4.0 * @since 1.4.0
*/ */
public final class MovementHandler implements PressAction public final class MovementHandler implements PressAction {
{
public static final MovementHandler HANDLER = new MovementHandler(); public static final MovementHandler HANDLER = new MovementHandler();
private boolean shouldOverrideMovement = false; private boolean shouldOverrideMovement = false;
private boolean pressingForward = false; private boolean pressingForward = false;
@@ -32,8 +31,7 @@ public final class MovementHandler implements PressAction
private float movementForward = 0.f; private float movementForward = 0.f;
private float movementSideways = 0.f; private float movementSideways = 0.f;
private MovementHandler() private MovementHandler() {
{
} }
/** /**
@@ -41,8 +39,7 @@ public final class MovementHandler implements PressAction
* *
* @param player The client player. * @param player The client player.
*/ */
public void applyMovement(@NotNull ClientPlayerEntity player) public void applyMovement(@NotNull ClientPlayerEntity player) {
{
if (!this.shouldOverrideMovement) if (!this.shouldOverrideMovement)
return; return;
player.input.pressingForward = this.pressingForward; player.input.pressingForward = this.pressingForward;
@@ -55,8 +52,7 @@ public final class MovementHandler implements PressAction
} }
@Override @Override
public boolean press(@NotNull MinecraftClient client, @NotNull ButtonBinding button, float value, @NotNull ButtonState action) public boolean press(@NotNull MinecraftClient client, @NotNull ButtonBinding button, float value, @NotNull ButtonState action) {
{
if (client.currentScreen != null || client.player == null) if (client.currentScreen != null || client.player == null)
return this.shouldOverrideMovement = false; return this.shouldOverrideMovement = false;
@@ -66,10 +62,10 @@ public final class MovementHandler implements PressAction
else if (button == ButtonBinding.BACK || button == ButtonBinding.RIGHT) else if (button == ButtonBinding.BACK || button == ButtonBinding.RIGHT)
direction = -1; direction = -1;
if (direction == 0) if (action.isUnpressed())
return false; direction = 0;
this.shouldOverrideMovement = true; this.shouldOverrideMovement = direction != 0;
value = (float) Math.pow(value, 2); value = (float) Math.pow(value, 2);
@@ -93,6 +89,6 @@ public final class MovementHandler implements PressAction
this.movementSideways *= 0.3D; this.movementSideways *= 0.3D;
} }
return true; return this.shouldOverrideMovement;
} }
} }

View File

@@ -113,20 +113,20 @@ public class LambdaControlsSettingsScreen extends SpruceScreen {
this.init(client, client.getWindow().getScaledWidth(), client.getWindow().getScaledHeight()); this.init(client, client.getWindow().getScaledWidth(), client.getWindow().getScaledHeight());
}); });
// Gameplay options // Gameplay options
this.autoJumpOption = new SpruceCheckboxBooleanOption("options.autoJump", this.autoJumpOption = new SpruceToggleBooleanOption("options.autoJump",
() -> this.client.options.autoJump, () -> this.client.options.autoJump,
newValue -> this.client.options.autoJump = newValue, newValue -> this.client.options.autoJump = newValue,
null, true); null);
this.fastBlockPlacingOption = new SpruceCheckboxBooleanOption("lambdacontrols.menu.fast_block_placing", this.mod.config::hasFastBlockPlacing, this.fastBlockPlacingOption = new SpruceToggleBooleanOption("lambdacontrols.menu.fast_block_placing", this.mod.config::hasFastBlockPlacing,
this.mod.config::setFastBlockPlacing, new TranslatableText("lambdacontrols.tooltip.fast_block_placing"), true); this.mod.config::setFastBlockPlacing, new TranslatableText("lambdacontrols.tooltip.fast_block_placing"));
this.frontBlockPlacingOption = new SpruceCheckboxBooleanOption("lambdacontrols.menu.reacharound.horizontal", this.mod.config::hasFrontBlockPlacing, this.frontBlockPlacingOption = new SpruceToggleBooleanOption("lambdacontrols.menu.reacharound.horizontal", this.mod.config::hasFrontBlockPlacing,
this.mod.config::setFrontBlockPlacing, new TranslatableText("lambdacontrols.tooltip.reacharound.horizontal"), true); this.mod.config::setFrontBlockPlacing, new TranslatableText("lambdacontrols.tooltip.reacharound.horizontal"));
this.verticalReacharoundOption = new SpruceCheckboxBooleanOption("lambdacontrols.menu.reacharound.vertical", this.mod.config::hasVerticalReacharound, this.verticalReacharoundOption = new SpruceToggleBooleanOption("lambdacontrols.menu.reacharound.vertical", this.mod.config::hasVerticalReacharound,
this.mod.config::setVerticalReacharound, new TranslatableText("lambdacontrols.tooltip.reacharound.vertical"), true); this.mod.config::setVerticalReacharound, new TranslatableText("lambdacontrols.tooltip.reacharound.vertical"));
this.flyDriftingOption = new SpruceCheckboxBooleanOption("lambdacontrols.menu.fly_drifting", this.mod.config::hasFlyDrifting, this.flyDriftingOption = new SpruceToggleBooleanOption("lambdacontrols.menu.fly_drifting", this.mod.config::hasFlyDrifting,
this.mod.config::setFlyDrifting, new TranslatableText("lambdacontrols.tooltip.fly_drifting"), true); this.mod.config::setFlyDrifting, new TranslatableText("lambdacontrols.tooltip.fly_drifting"));
this.flyVerticalDriftingOption = new SpruceCheckboxBooleanOption("lambdacontrols.menu.fly_drifting_vertical", this.mod.config::hasFlyVerticalDrifting, this.flyVerticalDriftingOption = new SpruceToggleBooleanOption("lambdacontrols.menu.fly_drifting_vertical", this.mod.config::hasFlyVerticalDrifting,
this.mod.config::setFlyVerticalDrifting, new TranslatableText("lambdacontrols.tooltip.fly_drifting_vertical"), true); this.mod.config::setFlyVerticalDrifting, new TranslatableText("lambdacontrols.tooltip.fly_drifting_vertical"));
// Controller options // Controller options
this.controllerOption = new SpruceCyclingOption("lambdacontrols.menu.controller", amount -> { this.controllerOption = new SpruceCyclingOption("lambdacontrols.menu.controller", amount -> {
int id = this.mod.config.getController().getId(); int id = this.mod.config.getController().getId();
@@ -283,7 +283,7 @@ public class LambdaControlsSettingsScreen extends SpruceScreen {
public void buildTabs() { public void buildTabs() {
SpruceTabbedWidget tabs = new SpruceTabbedWidget(Position.of(0, 24), this.width, this.height - 32 - 24, SpruceTabbedWidget tabs = new SpruceTabbedWidget(Position.of(0, 24), this.width, this.height - 32 - 24,
null, null,
Math.max(110, this.width / 8), 0); Math.max(116, this.width / 8), 0);
this.addChild(tabs); this.addChild(tabs);
tabs.addSeparatorEntry(new TranslatableText("lambdacontrols.menu.separator.general")); tabs.addSeparatorEntry(new TranslatableText("lambdacontrols.menu.separator.general"));
@@ -291,8 +291,8 @@ public class LambdaControlsSettingsScreen extends SpruceScreen {
this::buildGeneralTab); this::buildGeneralTab);
tabs.addTabEntry(new TranslatableText("lambdacontrols.menu.title.gameplay"), null, tabs.addTabEntry(new TranslatableText("lambdacontrols.menu.title.gameplay"), null,
this::buildGameplayTab); this::buildGameplayTab);
tabs.addTabEntry(new TranslatableText("lambdacontrols.menu.title.hud"), null, tabs.addTabEntry(new TranslatableText("lambdacontrols.menu.title.visual"), null,
this::buildHudTab); this::buildVisualTab);
tabs.addSeparatorEntry(new TranslatableText("options.controls")); tabs.addSeparatorEntry(new TranslatableText("options.controls"));
tabs.addTabEntry(new TranslatableText("lambdacontrols.menu.title.controller_controls"), null, tabs.addTabEntry(new TranslatableText("lambdacontrols.menu.title.controller_controls"), null,
@@ -323,8 +323,10 @@ public class LambdaControlsSettingsScreen extends SpruceScreen {
return list; return list;
} }
public SpruceOptionListWidget buildHudTab(int width, int height) { public SpruceOptionListWidget buildVisualTab(int width, int height) {
SpruceOptionListWidget list = new SpruceOptionListWidget(Position.origin(), width, height); SpruceOptionListWidget list = new SpruceOptionListWidget(Position.origin(), width, height);
list.addSingleOptionEntry(this.controllerTypeOption);
list.addSingleOptionEntry(new SpruceSeparatorOption("lambdacontrols.menu.title.hud", true, null));
list.addSingleOptionEntry(this.hudEnableOption); list.addSingleOptionEntry(this.hudEnableOption);
list.addSingleOptionEntry(this.hudSideOption); list.addSingleOptionEntry(this.hudSideOption);
return list; return list;
@@ -337,16 +339,16 @@ public class LambdaControlsSettingsScreen extends SpruceScreen {
public AbstractSpruceWidget buildControllerTab(int width, int height) { public AbstractSpruceWidget buildControllerTab(int width, int height) {
SpruceContainerWidget root = new SpruceContainerWidget(Position.origin(), width, height); SpruceContainerWidget root = new SpruceContainerWidget(Position.origin(), width, height);
SpruceLabelWidget aboutMappings1 = new SpruceLabelWidget(Position.of(width / 2, 2), SpruceLabelWidget aboutMappings1 = new SpruceLabelWidget(Position.of(0, 2),
new TranslatableText("lambdacontrols.controller.mappings.1", SDL2_GAMEPAD_TOOL), new TranslatableText("lambdacontrols.controller.mappings.1", SDL2_GAMEPAD_TOOL),
width, true); width, true);
SpruceLabelWidget gamepadToolUrlLabel = new SpruceLabelWidget(Position.of(width / 2, aboutMappings1.getHeight() + 4), SpruceLabelWidget gamepadToolUrlLabel = new SpruceLabelWidget(Position.of(0, aboutMappings1.getHeight() + 4),
this.controllerMappingsUrlText, width, this.controllerMappingsUrlText, width,
label -> Util.getOperatingSystem().open(GAMEPAD_TOOL_URL), true); label -> Util.getOperatingSystem().open(GAMEPAD_TOOL_URL), true);
gamepadToolUrlLabel.setTooltip(new TranslatableText("chat.link.open")); gamepadToolUrlLabel.setTooltip(new TranslatableText("chat.link.open"));
SpruceLabelWidget aboutMappings3 = new SpruceLabelWidget(Position.of(width / 2, SpruceLabelWidget aboutMappings3 = new SpruceLabelWidget(Position.of(0,
aboutMappings1.getHeight() + gamepadToolUrlLabel.getHeight() + 6), aboutMappings1.getHeight() + gamepadToolUrlLabel.getHeight() + 6),
new TranslatableText("lambdacontrols.controller.mappings.3", Formatting.GREEN.toString(), Formatting.RESET.toString()), new TranslatableText("lambdacontrols.controller.mappings.3", Formatting.GREEN.toString(), Formatting.RESET.toString()),
width, true); width, true);
@@ -375,7 +377,5 @@ public class LambdaControlsSettingsScreen extends SpruceScreen {
@Override @Override
public void renderTitle(MatrixStack matrices, int mouseX, int mouseY, float delta) { public void renderTitle(MatrixStack matrices, int mouseX, int mouseY, float delta) {
drawCenteredString(matrices, this.textRenderer, I18n.translate("lambdacontrols.menu.title"), this.width / 2, 8, 16777215); drawCenteredString(matrices, this.textRenderer, I18n.translate("lambdacontrols.menu.title"), this.width / 2, 8, 16777215);
// drawCenteredString(matrices, this.textRenderer, I18n.translate("lambdacontrols.controller.mappings.1", Formatting.GREEN.toString(), Formatting.RESET.toString()), this.width / 2, this.height - 29 - (5 + this.textRenderer.fontHeight) * 3, 10526880);
// drawCenteredString(matrices, this.textRenderer, I18n.translate("lambdacontrols.controller.mappings.3", Formatting.GREEN.toString(), Formatting.RESET.toString()), this.width / 2, this.height - 29 - (5 + this.textRenderer.fontHeight), 10526880);
} }
} }

View File

@@ -30,8 +30,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
* Injects the anti fly drifting feature. * Injects the anti fly drifting feature.
*/ */
@Mixin(ClientPlayerEntity.class) @Mixin(ClientPlayerEntity.class)
public abstract class ClientPlayerEntityMixin extends AbstractClientPlayerEntity public abstract class ClientPlayerEntityMixin extends AbstractClientPlayerEntity {
{
private boolean lambdacontrols_driftingPrevented = false; private boolean lambdacontrols_driftingPrevented = false;
@Shadow @Shadow
@@ -47,14 +46,12 @@ public abstract class ClientPlayerEntityMixin extends AbstractClientPlayerEntity
@Shadow @Shadow
protected abstract boolean isCamera(); protected abstract boolean isCamera();
public ClientPlayerEntityMixin(ClientWorld world, GameProfile profile) public ClientPlayerEntityMixin(ClientWorld world, GameProfile profile) {
{
super(world, profile); super(world, profile);
} }
@Inject(method = "move(Lnet/minecraft/entity/MovementType;Lnet/minecraft/util/math/Vec3d;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/AbstractClientPlayerEntity;move(Lnet/minecraft/entity/MovementType;Lnet/minecraft/util/math/Vec3d;)V")) @Inject(method = "move(Lnet/minecraft/entity/MovementType;Lnet/minecraft/util/math/Vec3d;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/AbstractClientPlayerEntity;move(Lnet/minecraft/entity/MovementType;Lnet/minecraft/util/math/Vec3d;)V"))
public void onMove(MovementType type, Vec3d movement, CallbackInfo ci) public void onMove(MovementType type, Vec3d movement, CallbackInfo ci) {
{
LambdaControlsClient mod = LambdaControlsClient.get(); LambdaControlsClient mod = LambdaControlsClient.get();
if (type == MovementType.SELF) { if (type == MovementType.SELF) {
if (this.abilities.flying && (!mod.config.hasFlyDrifting() || !mod.config.hasFlyVerticalDrifting())) { if (this.abilities.flying && (!mod.config.hasFlyDrifting() || !mod.config.hasFlyVerticalDrifting())) {
@@ -71,14 +68,12 @@ public abstract class ClientPlayerEntityMixin extends AbstractClientPlayerEntity
} }
@Inject(method = "tickMovement", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/input/Input;tick(Z)V", shift = At.Shift.AFTER)) @Inject(method = "tickMovement", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/input/Input;tick(Z)V", shift = At.Shift.AFTER))
public void onInputUpdate(CallbackInfo ci) public void onInputUpdate(CallbackInfo ci) {
{
MovementHandler.HANDLER.applyMovement((ClientPlayerEntity) (Object) this); MovementHandler.HANDLER.applyMovement((ClientPlayerEntity) (Object) this);
} }
@Inject(method = "tickMovement", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ClientPlayerEntity;isCamera()Z")) @Inject(method = "tickMovement", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ClientPlayerEntity;isCamera()Z"))
public void onTickMovement(CallbackInfo ci) public void onTickMovement(CallbackInfo ci) {
{
if (this.abilities.flying && this.isCamera()) { if (this.abilities.flying && this.isCamera()) {
if (LambdaControlsClient.get().config.hasFlyVerticalDrifting()) if (LambdaControlsClient.get().config.hasFlyVerticalDrifting())
return; return;

View File

@@ -108,6 +108,7 @@
"lambdacontrols.menu.title.general": "General Options", "lambdacontrols.menu.title.general": "General Options",
"lambdacontrols.menu.title.hud": "HUD Options", "lambdacontrols.menu.title.hud": "HUD Options",
"lambdacontrols.menu.title.mappings.string": "Mappings File Editor", "lambdacontrols.menu.title.mappings.string": "Mappings File Editor",
"lambdacontrols.menu.title.visual": "Appearance Options",
"lambdacontrols.menu.unfocused_input": "Unfocused Input", "lambdacontrols.menu.unfocused_input": "Unfocused Input",
"lambdacontrols.menu.virtual_mouse": "Virtual Mouse", "lambdacontrols.menu.virtual_mouse": "Virtual Mouse",
"lambdacontrols.menu.virtual_mouse.skin": "Virtual Mouse Skin", "lambdacontrols.menu.virtual_mouse.skin": "Virtual Mouse Skin",

View File

@@ -62,7 +62,7 @@
"lambdacontrols.button.unknown": "Desconocido (%d)", "lambdacontrols.button.unknown": "Desconocido (%d)",
"lambdacontrols.controller.connected": "Controlador %d conectado.", "lambdacontrols.controller.connected": "Controlador %d conectado.",
"lambdacontrols.controller.disconnected": "Controlador %d desconectado.", "lambdacontrols.controller.disconnected": "Controlador %d desconectado.",
"lambdacontrols.controller.mappings.1": "Para configurar las asignaciones del controlador, utilice %sSDL2 Gamepad Tool%s", "lambdacontrols.controller.mappings.1": "Para configurar las asignaciones del controlador, utilice %s",
"lambdacontrols.controller.mappings.3": "y poner el mapeo de asignaciones en `%s.minecraft/config/gamecontrollerdb.txt%s`.", "lambdacontrols.controller.mappings.3": "y poner el mapeo de asignaciones en `%s.minecraft/config/gamecontrollerdb.txt%s`.",
"lambdacontrols.controller.mappings.updated": "Mapeo actualizados!", "lambdacontrols.controller.mappings.updated": "Mapeo actualizados!",
"lambdacontrols.controller_type.default": "por defecto", "lambdacontrols.controller_type.default": "por defecto",
@@ -95,12 +95,14 @@
"lambdacontrols.menu.reacharound.vertical": "Alcance vertical", "lambdacontrols.menu.reacharound.vertical": "Alcance vertical",
"lambdacontrols.menu.reload_controller_mappings": "Recargar asignaciones de controlador", "lambdacontrols.menu.reload_controller_mappings": "Recargar asignaciones de controlador",
"lambdacontrols.menu.rotation_speed": "Velocidad de rotación", "lambdacontrols.menu.rotation_speed": "Velocidad de rotación",
"lambdacontrols.menu.separator.controller": "Controlador",
"lambdacontrols.menu.title": "LambdaControls - Configuraciones", "lambdacontrols.menu.title": "LambdaControls - Configuraciones",
"lambdacontrols.menu.title.controller": "Opciones de controlador", "lambdacontrols.menu.title.controller": "Opciones de controlador",
"lambdacontrols.menu.title.controller_controls": "Controles de controlador", "lambdacontrols.menu.title.controller_controls": "Controles de controlador",
"lambdacontrols.menu.title.gameplay": "Opciones de juego", "lambdacontrols.menu.title.gameplay": "Opciones de juego",
"lambdacontrols.menu.title.general": "Opciones generales", "lambdacontrols.menu.title.general": "Opciones generales",
"lambdacontrols.menu.title.hud": "Opciones de HUD", "lambdacontrols.menu.title.hud": "Opciones de HUD",
"lambdacontrols.menu.title.visual": "Opciones de apariencia",
"lambdacontrols.menu.unfocused_input": "Entrada desenfocada", "lambdacontrols.menu.unfocused_input": "Entrada desenfocada",
"lambdacontrols.menu.virtual_mouse": "Ratón virtual", "lambdacontrols.menu.virtual_mouse": "Ratón virtual",
"lambdacontrols.menu.virtual_mouse.skin": "Piel de ratón virtual", "lambdacontrols.menu.virtual_mouse.skin": "Piel de ratón virtual",

View File

@@ -63,8 +63,8 @@
"lambdacontrols.button.unknown": "Inconnu (%d)", "lambdacontrols.button.unknown": "Inconnu (%d)",
"lambdacontrols.controller.connected": "Manette %d connecté.", "lambdacontrols.controller.connected": "Manette %d connecté.",
"lambdacontrols.controller.disconnected": "Manette %d déconnecté.", "lambdacontrols.controller.disconnected": "Manette %d déconnecté.",
"lambdacontrols.controller.mappings.1": "Pour configurer les correspondances de la manette, veuillez utiliser %sSDL2 Gamepad Tool%s", "lambdacontrols.controller.mappings.1": "Pour configurer les correspondances de la manette, veuillez utiliser %s",
"lambdacontrols.controller.mappings.3": "et mettez les correspondances dans le fichier `%s.minecraft/config/gamecontrollerdb.txt%s`.", "lambdacontrols.controller.mappings.3": "et copier/coller les correspondances dans l'éditeur inclut.",
"lambdacontrols.controller.mappings.error": "Une erreur est apparue pendant le chargement des manettes.", "lambdacontrols.controller.mappings.error": "Une erreur est apparue pendant le chargement des manettes.",
"lambdacontrols.controller.mappings.error.write": "Une erreur est apparue pendant l'écriture des manettes au fichier.", "lambdacontrols.controller.mappings.error.write": "Une erreur est apparue pendant l'écriture des manettes au fichier.",
"lambdacontrols.controller.mappings.updated": "Configuration des manettes mise à jour!", "lambdacontrols.controller.mappings.updated": "Configuration des manettes mise à jour!",
@@ -99,12 +99,14 @@
"lambdacontrols.menu.reacharound.vertical": "Placement vertical", "lambdacontrols.menu.reacharound.vertical": "Placement vertical",
"lambdacontrols.menu.reload_controller_mappings": "Recharger les manettes", "lambdacontrols.menu.reload_controller_mappings": "Recharger les manettes",
"lambdacontrols.menu.rotation_speed": "Vitesse de rotation", "lambdacontrols.menu.rotation_speed": "Vitesse de rotation",
"lambdacontrols.menu.separator.general": "Général",
"lambdacontrols.menu.separator.controller": "Manette",
"lambdacontrols.menu.title": "LambdaControls - Paramètres", "lambdacontrols.menu.title": "LambdaControls - Paramètres",
"lambdacontrols.menu.title.controller": "Options de manettes", "lambdacontrols.menu.title.controller": "Options de manettes",
"lambdacontrols.menu.title.controller_controls": "Contrôles de la manette", "lambdacontrols.menu.title.controller_controls": "Contrôles de la manette",
"lambdacontrols.menu.title.gameplay": "Options de Gameplay", "lambdacontrols.menu.title.gameplay": "Options de Gameplay",
"lambdacontrols.menu.title.general": "Options générales", "lambdacontrols.menu.title.general": "Options générales",
"lambdacontrols.menu.title.hud": "Options du HUD", "lambdacontrols.menu.title.visual": "Options d'apparences",
"lambdacontrols.menu.title.mappings.string": "Éditeur du fichier des manettes", "lambdacontrols.menu.title.mappings.string": "Éditeur du fichier des manettes",
"lambdacontrols.menu.unfocused_input": "Entrée en fond", "lambdacontrols.menu.unfocused_input": "Entrée en fond",
"lambdacontrols.menu.virtual_mouse": "Souris virtuelle", "lambdacontrols.menu.virtual_mouse": "Souris virtuelle",

View File

@@ -63,8 +63,8 @@
"lambdacontrols.button.unknown": "Inconnu (%d)", "lambdacontrols.button.unknown": "Inconnu (%d)",
"lambdacontrols.controller.connected": "Manette %d connecté.", "lambdacontrols.controller.connected": "Manette %d connecté.",
"lambdacontrols.controller.disconnected": "Manette %d déconnecté.", "lambdacontrols.controller.disconnected": "Manette %d déconnecté.",
"lambdacontrols.controller.mappings.1": "Pour configurer les correspondances de la manette, veuillez utiliser %sSDL2 Gamepad Tool%s", "lambdacontrols.controller.mappings.1": "Pour configurer les correspondances de la manette, veuillez utiliser %s",
"lambdacontrols.controller.mappings.3": "et mettez les correspondances dans le fichier `%s.minecraft/config/gamecontrollerdb.txt%s`.", "lambdacontrols.controller.mappings.3": "et copier/coller les correspondances dans l'éditeur de manette.",
"lambdacontrols.controller.mappings.error": "Une erreur est apparue pendant le chargement des manettes.", "lambdacontrols.controller.mappings.error": "Une erreur est apparue pendant le chargement des manettes.",
"lambdacontrols.controller.mappings.error.write": "Une erreur est apparue pendant l'écriture des manettes au fichier.", "lambdacontrols.controller.mappings.error.write": "Une erreur est apparue pendant l'écriture des manettes au fichier.",
"lambdacontrols.controller.mappings.updated": "Configuration des manettes mise à jour!", "lambdacontrols.controller.mappings.updated": "Configuration des manettes mise à jour!",
@@ -99,13 +99,16 @@
"lambdacontrols.menu.reacharound.vertical": "Placement vertical", "lambdacontrols.menu.reacharound.vertical": "Placement vertical",
"lambdacontrols.menu.reload_controller_mappings": "Recharger les manettes", "lambdacontrols.menu.reload_controller_mappings": "Recharger les manettes",
"lambdacontrols.menu.rotation_speed": "Vitesse de rotation", "lambdacontrols.menu.rotation_speed": "Vitesse de rotation",
"lambdacontrols.menu.separator.general": "Général",
"lambdacontrols.menu.separator.controller": "Manette",
"lambdacontrols.menu.title": "LambdaControls - Paramètres", "lambdacontrols.menu.title": "LambdaControls - Paramètres",
"lambdacontrols.menu.title.controller": "Options de manettes", "lambdacontrols.menu.title.controller": "Options de manettes",
"lambdacontrols.menu.title.controller_controls": "Contrôles de la manette", "lambdacontrols.menu.title.controller_controls": "Contrôles de la manette",
"lambdacontrols.menu.title.gameplay": "Options de Gameplay", "lambdacontrols.menu.title.gameplay": "Options de Gameplay",
"lambdacontrols.menu.title.general": "Options générales", "lambdacontrols.menu.title.general": "Options générales",
"lambdacontrols.menu.title.hud": "Options du HUD", "lambdacontrols.menu.title.hud": "Options du HUD",
"lambdacontrols.menu.title.mappings.string": "Éditeur du fichier des manettes", "lambdacontrols.menu.title.mappings.string": "Éditeur de manettes",
"lambdacontrols.menu.title.visual": "Options d'apparences",
"lambdacontrols.menu.unfocused_input": "Entrée en fond", "lambdacontrols.menu.unfocused_input": "Entrée en fond",
"lambdacontrols.menu.virtual_mouse": "Souris virtuelle", "lambdacontrols.menu.virtual_mouse": "Souris virtuelle",
"lambdacontrols.menu.virtual_mouse.skin": "Apparence souris virtuelle", "lambdacontrols.menu.virtual_mouse.skin": "Apparence souris virtuelle",

View File

@@ -62,7 +62,7 @@
"lambdacontrols.button.unknown": "未知(%d", "lambdacontrols.button.unknown": "未知(%d",
"lambdacontrols.controller.connected": "手柄%d已连接。", "lambdacontrols.controller.connected": "手柄%d已连接。",
"lambdacontrols.controller.disconnected": "手柄%d已断开。", "lambdacontrols.controller.disconnected": "手柄%d已断开。",
"lambdacontrols.controller.mappings.1": "请使用%sSDL2 Gamepad Tool%s配置手柄键位映射", "lambdacontrols.controller.mappings.1": "请使用%s配置手柄键位映射",
"lambdacontrols.controller.mappings.3": "并将键位映射文件放入此路径:`%s.minecraft/config/gamecontrollerdb.txt%s`。", "lambdacontrols.controller.mappings.3": "并将键位映射文件放入此路径:`%s.minecraft/config/gamecontrollerdb.txt%s`。",
"lambdacontrols.controller.mappings.updated": "键位映射已更新!", "lambdacontrols.controller.mappings.updated": "键位映射已更新!",
"lambdacontrols.controller_type.default": "默认", "lambdacontrols.controller_type.default": "默认",