mirror of
https://github.com/Pathoschild/SMAPI.git
synced 2026-10-12 02:08:51 +00:00
Merge branch 'develop' into stable
This commit is contained in:
@@ -94,18 +94,6 @@ jobs:
|
||||
path: 'bin/SMAPI-${{env.VERSION}}-installer.zip'
|
||||
if-no-files-found: 'error'
|
||||
|
||||
- name: Create GitHub release
|
||||
uses: ncipollo/release-action@v1
|
||||
if: github.ref_type == 'tag'
|
||||
with:
|
||||
artifacts: 'bin/SMAPI-${{env.VERSION}}-installer.zip'
|
||||
token: '${{secrets.GITHUB_TOKEN}}'
|
||||
tag: '${{github.ref_name}}'
|
||||
name: '${{env.VERSION}}'
|
||||
body: |
|
||||
Draft.
|
||||
draft: true
|
||||
|
||||
- name: Generate artifact attestations
|
||||
uses: actions/attest-build-provenance@v2
|
||||
if: github.ref_type == 'tag'
|
||||
|
||||
@@ -7,7 +7,7 @@ repo. It imports the other MSBuild files as needed.
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<!--set general build properties -->
|
||||
<Version>4.5.1</Version>
|
||||
<Version>4.5.2</Version>
|
||||
<Product>SMAPI</Product>
|
||||
<LangVersion>latest</LangVersion>
|
||||
<AssemblySearchPaths>$(AssemblySearchPaths);{GAC}</AssemblySearchPaths>
|
||||
|
||||
@@ -7,8 +7,6 @@
|
||||
#
|
||||
#
|
||||
|
||||
. "$PSScriptRoot/lib/in-place-regex.ps1"
|
||||
|
||||
|
||||
##########
|
||||
## Read arguments
|
||||
|
||||
+8
-9
@@ -52,26 +52,25 @@ developers and other modders!
|
||||
* [Technical docs](technical/smapi.md)
|
||||
|
||||
## Translating SMAPI
|
||||
SMAPI rarely shows text in-game, so it only has a few translations. Contributions are welcome! See
|
||||
[Modding:Translations](https://stardewvalleywiki.com/Modding:Translations) on the wiki for help
|
||||
contributing translations.
|
||||
Contributions are welcome! See [Modding:Translations](https://stardewvalleywiki.com/Modding:Translations)
|
||||
on the wiki for help contributing translations.
|
||||
|
||||
locale | status
|
||||
----------- | :----------------
|
||||
default | ↻ [partly translated](../src/SMAPI/i18n/default.json)
|
||||
default | ✓ [original text](../src/SMAPI/i18n/default.json)
|
||||
Chinese | ↻ [partly translated](../src/SMAPI/i18n/zh.json)
|
||||
French | ↻ [partly translated](../src/SMAPI/i18n/fr.json)
|
||||
French | ✓ [fully translated](../src/SMAPI/i18n/fr.json)
|
||||
German | ↻ [partly translated](../src/SMAPI/i18n/de.json)
|
||||
Hungarian | ↻ [partly translated](../src/SMAPI/i18n/hu.json)
|
||||
Indonesian | ↻ [partly translated](../src/SMAPI/i18n/id.json)
|
||||
Indonesian | ✓ [fully translated](../src/SMAPI/i18n/id.json)
|
||||
Italian | ↻ [partly translated](../src/SMAPI/i18n/it.json)
|
||||
Japanese | ↻ [partly translated](../src/SMAPI/i18n/ja.json)
|
||||
Korean | ↻ [partly translated](../src/SMAPI/i18n/ko.json)
|
||||
[Polish] | ↻ [partly translated](../src/SMAPI/i18n/pl.json)
|
||||
Portuguese | ✓ [fully translated](../src/SMAPI/i18n/pt.json)
|
||||
Russian | ↻ [partly translated](../src/SMAPI/i18n/ru.json)
|
||||
Spanish | ↻ [partly translated](../src/SMAPI/i18n/es.json)
|
||||
[Thai] | ↻ [partly translated](../src/SMAPI/i18n/th.json)
|
||||
Russian | ✓ [fully translated](../src/SMAPI/i18n/ru.json)
|
||||
Spanish | ✓ [partly translated](../src/SMAPI/i18n/es.json)
|
||||
[Thai] | ✓ [partly translated](../src/SMAPI/i18n/th.json)
|
||||
Turkish | ↻ [partly translated](../src/SMAPI/i18n/tr.json)
|
||||
[Ukrainian] | ↻ [partly translated](../src/SMAPI/i18n/uk.json)
|
||||
|
||||
|
||||
+15
-1
@@ -1,8 +1,22 @@
|
||||
← [README](README.md)
|
||||
|
||||
# Release notes
|
||||
## 4.5.2
|
||||
Released 14 March 2026 for Stardew Valley 1.6.14 or later.
|
||||
|
||||
* For players:
|
||||
* Improved performance a bit.
|
||||
* Fixed the Linux/macOS installer not saving the color scheme correctly in 4.5.0+.
|
||||
* Fixed typo in config UI text (thanks to QuentiumYT!).
|
||||
* Improved translations. Thanks to dekthaiinchina (updated Thai), dewanggatrustha (updated Indonesian), QuentiumYT (updated French), Timur13240
|
||||
(updated Russian), and vlcoo (updated Spanish)!
|
||||
|
||||
* For mod authors:
|
||||
* Fixed input API ignoring controller overrides when there's no controller plugged in (thanks to spacechase0!).
|
||||
* Fixed asset propagation for the farmhouse map not updating the farmhouse fridge position.
|
||||
|
||||
## 4.5.1
|
||||
Released 25 January 2026 for Stardew Valley 1.6.14 or later.
|
||||
Released 25 January 2026 for Stardew Valley 1.6.14 or later. See [build attestation](https://github.com/Pathoschild/SMAPI/attestations/17385144).
|
||||
|
||||
* For players:
|
||||
* Fixed error installing SMAPI 4.5.0 on Linux/macOS.
|
||||
|
||||
@@ -6,6 +6,7 @@ using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using StardewModdingApi.Installer.Enums;
|
||||
using StardewModdingAPI.Installer.Framework;
|
||||
using StardewModdingAPI.Internal.ConsoleWriting;
|
||||
@@ -13,6 +14,7 @@ using StardewModdingAPI.Toolkit;
|
||||
using StardewModdingAPI.Toolkit.Framework;
|
||||
using StardewModdingAPI.Toolkit.Framework.GameScanning;
|
||||
using StardewModdingAPI.Toolkit.Framework.ModScanning;
|
||||
using StardewModdingAPI.Toolkit.Serialization;
|
||||
using StardewModdingAPI.Toolkit.Utilities;
|
||||
|
||||
namespace StardewModdingApi.Installer;
|
||||
@@ -501,10 +503,10 @@ internal class InteractiveInstaller
|
||||
// set SMAPI's color scheme if defined
|
||||
if (scheme != MonitorColorScheme.AutoDetect)
|
||||
{
|
||||
string text = File
|
||||
.ReadAllText(paths.ApiConfigPath)
|
||||
.Replace(@"""UseScheme"": ""AutoDetect""", $@"""UseScheme"": ""{scheme}""");
|
||||
File.WriteAllText(paths.ApiConfigPath, text);
|
||||
this.SaveUserSettings(paths.ApiUserConfigPath, new Dictionary<string, object>
|
||||
{
|
||||
["ConsoleColorScheme"] = scheme.ToString()
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -559,6 +561,33 @@ internal class InteractiveInstaller
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>Save the given options to a SMAPI internal config file.</summary>
|
||||
/// <param name="filePath">The file path to edit.</param>
|
||||
/// <param name="settings">The settings to add or overwrite.</param>
|
||||
[SuppressMessage("Trimming", "IL2026:Members annotated with 'RequiresUnreferencedCodeAttribute' require dynamic access otherwise can break functionality when trimming application code", Justification = "This isn't an issue here, since we're only using JToken and object.")]
|
||||
private void SaveUserSettings(string filePath, Dictionary<string, object> settings)
|
||||
{
|
||||
JsonHelper jsonHelper = new();
|
||||
|
||||
// merge into existing settings
|
||||
Dictionary<string, JToken> saveSettings = settings.ToDictionary(p => p.Key, p => JToken.FromObject(p.Value));
|
||||
try
|
||||
{
|
||||
if (jsonHelper.ReadJsonFileIfExists(filePath, out Dictionary<string, JToken>? fileSettings))
|
||||
{
|
||||
foreach ((string key, JToken value) in fileSettings)
|
||||
saveSettings.TryAdd(key, value);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
this.PrintWarning($"Couldn't parse your SMAPI settings file. Replacing it with a default version.\n\nTechnical details:\n{ex}");
|
||||
}
|
||||
|
||||
// save file
|
||||
jsonHelper.WriteJsonFile(filePath, saveSettings);
|
||||
}
|
||||
|
||||
/// <summary>Print a message without formatting.</summary>
|
||||
/// <param name="text">The text to print.</param>
|
||||
private void PrintPlain(string text)
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"Name": "Console Commands",
|
||||
"Author": "SMAPI",
|
||||
"Version": "4.5.1",
|
||||
"Version": "4.5.2",
|
||||
"Description": "Adds SMAPI console commands that let you manipulate the game.",
|
||||
"UniqueId": "SMAPI.ConsoleCommands",
|
||||
"EntryDll": "ConsoleCommands.dll",
|
||||
"MinimumApiVersion": "4.5.1"
|
||||
"MinimumApiVersion": "4.5.2"
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"Name": "Save Backup",
|
||||
"Author": "SMAPI",
|
||||
"Version": "4.5.1",
|
||||
"Version": "4.5.2",
|
||||
"Description": "Automatically backs up all your saves once per day into its folder.",
|
||||
"UniqueId": "SMAPI.SaveBackup",
|
||||
"EntryDll": "SaveBackup.dll",
|
||||
"MinimumApiVersion": "4.5.1"
|
||||
"MinimumApiVersion": "4.5.2"
|
||||
}
|
||||
|
||||
@@ -49,7 +49,7 @@ internal static class EarlyConstants
|
||||
internal static int? LogScreenId { get; set; }
|
||||
|
||||
/// <summary>SMAPI's current raw semantic version.</summary>
|
||||
internal static string RawApiVersion = "4.5.1";
|
||||
internal static string RawApiVersion = "4.5.2";
|
||||
}
|
||||
|
||||
/// <summary>Contains SMAPI's constants and assumptions.</summary>
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Linq;
|
||||
using Microsoft.Xna.Framework;
|
||||
using Microsoft.Xna.Framework.Input;
|
||||
@@ -22,7 +21,7 @@ internal class GamePadStateBuilder : IInputStateBuilder<GamePadStateBuilder, Gam
|
||||
private GamePadState? State;
|
||||
|
||||
/// <summary>The current button states.</summary>
|
||||
private readonly IDictionary<SButton, ButtonState>? ButtonStates;
|
||||
private readonly Dictionary<SButton, ButtonState> ButtonStates = [];
|
||||
|
||||
/// <summary>The left trigger value.</summary>
|
||||
private float LeftTrigger;
|
||||
@@ -37,62 +36,58 @@ internal class GamePadStateBuilder : IInputStateBuilder<GamePadStateBuilder, Gam
|
||||
private Vector2 RightStickPos;
|
||||
|
||||
|
||||
/*********
|
||||
** Accessors
|
||||
*********/
|
||||
/// <summary>Whether the gamepad is currently connected.</summary>
|
||||
[MemberNotNullWhen(true, nameof(GamePadStateBuilder.ButtonStates))]
|
||||
public bool IsConnected { get; }
|
||||
|
||||
|
||||
/*********
|
||||
** Public methods
|
||||
*********/
|
||||
/// <summary>Construct an instance.</summary>
|
||||
/// <param name="state">The initial state.</param>
|
||||
public GamePadStateBuilder(GamePadState state)
|
||||
/// <inheritdoc />
|
||||
public void Reset(GamePadState state)
|
||||
{
|
||||
this.State = state;
|
||||
this.IsConnected = state.IsConnected;
|
||||
|
||||
if (!this.IsConnected)
|
||||
return;
|
||||
|
||||
GamePadDPad pad = state.DPad;
|
||||
GamePadButtons buttons = state.Buttons;
|
||||
GamePadTriggers triggers = state.Triggers;
|
||||
GamePadThumbSticks sticks = state.ThumbSticks;
|
||||
this.ButtonStates = new Dictionary<SButton, ButtonState>
|
||||
if (state.IsConnected)
|
||||
{
|
||||
[SButton.DPadUp] = pad.Up,
|
||||
[SButton.DPadDown] = pad.Down,
|
||||
[SButton.DPadLeft] = pad.Left,
|
||||
[SButton.DPadRight] = pad.Right,
|
||||
GamePadDPad pad = state.DPad;
|
||||
GamePadButtons buttons = state.Buttons;
|
||||
GamePadTriggers triggers = state.Triggers;
|
||||
GamePadThumbSticks sticks = state.ThumbSticks;
|
||||
|
||||
[SButton.ControllerA] = buttons.A,
|
||||
[SButton.ControllerB] = buttons.B,
|
||||
[SButton.ControllerX] = buttons.X,
|
||||
[SButton.ControllerY] = buttons.Y,
|
||||
[SButton.LeftStick] = buttons.LeftStick,
|
||||
[SButton.RightStick] = buttons.RightStick,
|
||||
[SButton.LeftShoulder] = buttons.LeftShoulder,
|
||||
[SButton.RightShoulder] = buttons.RightShoulder,
|
||||
[SButton.ControllerBack] = buttons.Back,
|
||||
[SButton.ControllerStart] = buttons.Start,
|
||||
[SButton.BigButton] = buttons.BigButton
|
||||
};
|
||||
this.LeftTrigger = triggers.Left;
|
||||
this.RightTrigger = triggers.Right;
|
||||
this.LeftStickPos = sticks.Left;
|
||||
this.RightStickPos = sticks.Right;
|
||||
var states = this.ButtonStates;
|
||||
states.Clear();
|
||||
states[SButton.DPadUp] = pad.Up;
|
||||
states[SButton.DPadDown] = pad.Down;
|
||||
states[SButton.DPadLeft] = pad.Left;
|
||||
states[SButton.DPadRight] = pad.Right;
|
||||
states[SButton.ControllerA] = buttons.A;
|
||||
states[SButton.ControllerB] = buttons.B;
|
||||
states[SButton.ControllerX] = buttons.X;
|
||||
states[SButton.ControllerY] = buttons.Y;
|
||||
states[SButton.LeftStick] = buttons.LeftStick;
|
||||
states[SButton.RightStick] = buttons.RightStick;
|
||||
states[SButton.LeftShoulder] = buttons.LeftShoulder;
|
||||
states[SButton.RightShoulder] = buttons.RightShoulder;
|
||||
states[SButton.ControllerBack] = buttons.Back;
|
||||
states[SButton.ControllerStart] = buttons.Start;
|
||||
states[SButton.BigButton] = buttons.BigButton;
|
||||
|
||||
this.LeftTrigger = triggers.Left;
|
||||
this.RightTrigger = triggers.Right;
|
||||
this.LeftStickPos = sticks.Left;
|
||||
this.RightStickPos = sticks.Right;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.ButtonStates.Clear();
|
||||
|
||||
this.LeftTrigger = 0;
|
||||
this.RightTrigger = 0;
|
||||
this.LeftStickPos = Vector2.Zero;
|
||||
this.RightStickPos = Vector2.Zero;
|
||||
}
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public GamePadStateBuilder OverrideButtons(IDictionary<SButton, SButtonState> overrides)
|
||||
{
|
||||
if (!this.IsConnected)
|
||||
return this;
|
||||
|
||||
foreach (var pair in overrides)
|
||||
{
|
||||
bool changed = true;
|
||||
@@ -138,10 +133,7 @@ internal class GamePadStateBuilder : IInputStateBuilder<GamePadStateBuilder, Gam
|
||||
|
||||
// buttons
|
||||
default:
|
||||
if (this.ButtonStates.ContainsKey(pair.Key))
|
||||
this.ButtonStates[pair.Key] = isDown ? ButtonState.Pressed : ButtonState.Released;
|
||||
else
|
||||
changed = false;
|
||||
this.ButtonStates[pair.Key] = isDown ? ButtonState.Pressed : ButtonState.Released;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -155,9 +147,6 @@ internal class GamePadStateBuilder : IInputStateBuilder<GamePadStateBuilder, Gam
|
||||
/// <inheritdoc />
|
||||
public IEnumerable<SButton> GetPressedButtons()
|
||||
{
|
||||
if (!this.IsConnected)
|
||||
yield break;
|
||||
|
||||
// buttons
|
||||
foreach (Buttons button in this.GetPressedGamePadButtons())
|
||||
yield return button.ToSButton();
|
||||
@@ -213,9 +202,6 @@ internal class GamePadStateBuilder : IInputStateBuilder<GamePadStateBuilder, Gam
|
||||
/// <summary>Get the pressed gamepad buttons.</summary>
|
||||
private IEnumerable<Buttons> GetPressedGamePadButtons()
|
||||
{
|
||||
if (!this.IsConnected)
|
||||
yield break;
|
||||
|
||||
foreach (var pair in this.ButtonStates)
|
||||
{
|
||||
if (pair.Value == ButtonState.Pressed && pair.Key.TryGetController(out Buttons button))
|
||||
|
||||
@@ -12,6 +12,10 @@ internal interface IInputStateBuilder<out THandler, TState>
|
||||
/*********
|
||||
** Methods
|
||||
*********/
|
||||
/// <summary>Reset the state.</summary>
|
||||
/// <param name="state">The initial state before any overrides are applied.</param>
|
||||
void Reset(TState state);
|
||||
|
||||
/// <summary>Override the states for a set of buttons.</summary>
|
||||
/// <param name="overrides">The button state overrides.</param>
|
||||
THandler OverrideButtons(IDictionary<SButton, SButtonState> overrides);
|
||||
|
||||
@@ -20,9 +20,8 @@ internal class KeyboardStateBuilder : IInputStateBuilder<KeyboardStateBuilder, K
|
||||
/*********
|
||||
** Public methods
|
||||
*********/
|
||||
/// <summary>Construct an instance.</summary>
|
||||
/// <param name="state">The initial state.</param>
|
||||
public KeyboardStateBuilder(KeyboardState state)
|
||||
/// <inheritdoc />
|
||||
public void Reset(KeyboardState state)
|
||||
{
|
||||
this.State = state;
|
||||
|
||||
|
||||
@@ -13,39 +13,38 @@ internal class MouseStateBuilder : IInputStateBuilder<MouseStateBuilder, MouseSt
|
||||
private MouseState? State;
|
||||
|
||||
/// <summary>The current button states.</summary>
|
||||
private readonly IDictionary<SButton, ButtonState> ButtonStates;
|
||||
private readonly Dictionary<SButton, ButtonState> ButtonStates = [];
|
||||
|
||||
/// <summary>The mouse wheel scroll value.</summary>
|
||||
private readonly int ScrollWheelValue;
|
||||
private int ScrollWheelValue;
|
||||
|
||||
|
||||
/*********
|
||||
** Accessors
|
||||
*********/
|
||||
/// <summary>The X cursor position.</summary>
|
||||
public int X { get; }
|
||||
public int X { get; private set; }
|
||||
|
||||
/// <summary>The Y cursor position.</summary>
|
||||
public int Y { get; }
|
||||
public int Y { get; private set; }
|
||||
|
||||
|
||||
/*********
|
||||
** Public methods
|
||||
*********/
|
||||
/// <summary>Construct an instance.</summary>
|
||||
/// <param name="state">The initial state.</param>
|
||||
public MouseStateBuilder(MouseState state)
|
||||
/// <inheritdoc />
|
||||
public void Reset(MouseState state)
|
||||
{
|
||||
this.State = state;
|
||||
|
||||
this.ButtonStates = new Dictionary<SButton, ButtonState>
|
||||
{
|
||||
[SButton.MouseLeft] = state.LeftButton,
|
||||
[SButton.MouseMiddle] = state.MiddleButton,
|
||||
[SButton.MouseRight] = state.RightButton,
|
||||
[SButton.MouseX1] = state.XButton1,
|
||||
[SButton.MouseX2] = state.XButton2
|
||||
};
|
||||
var states = this.ButtonStates;
|
||||
states.Clear();
|
||||
states[SButton.MouseLeft] = state.LeftButton;
|
||||
states[SButton.MouseMiddle] = state.MiddleButton;
|
||||
states[SButton.MouseRight] = state.RightButton;
|
||||
states[SButton.MouseX1] = state.XButton1;
|
||||
states[SButton.MouseX2] = state.XButton2;
|
||||
|
||||
this.X = state.X;
|
||||
this.Y = state.Y;
|
||||
this.ScrollWheelValue = state.ScrollWheelValue;
|
||||
|
||||
@@ -29,6 +29,15 @@ internal sealed class SInputState : InputState
|
||||
/// <summary>Whether there are new overrides in <see cref="CustomPressedKeys"/> or <see cref="CustomReleasedKeys"/> that haven't been applied to the previous state.</summary>
|
||||
private bool HasNewOverrides;
|
||||
|
||||
/// <summary>The builder which reads the game pad state and applies overrides.</summary>
|
||||
private readonly GamePadStateBuilder ControllerStateBuilder = new();
|
||||
|
||||
/// <summary>The builder which reads the keyboard state and applies overrides.</summary>
|
||||
private readonly KeyboardStateBuilder KeyboardStateBuilder = new();
|
||||
|
||||
/// <summary>The builder which reads the mouse state and applies overrides.</summary>
|
||||
private readonly MouseStateBuilder MouseStateBuilder = new();
|
||||
|
||||
|
||||
/*********
|
||||
** Accessors
|
||||
@@ -68,10 +77,15 @@ internal sealed class SInputState : InputState
|
||||
{
|
||||
float zoomMultiplier = (1f / Game1.options.zoomLevel);
|
||||
|
||||
// get builders
|
||||
GamePadStateBuilder controller = this.ControllerStateBuilder;
|
||||
KeyboardStateBuilder keyboard = this.KeyboardStateBuilder;
|
||||
MouseStateBuilder mouse = this.MouseStateBuilder;
|
||||
|
||||
// get real values
|
||||
var controller = new GamePadStateBuilder(base.GetGamePadState());
|
||||
var keyboard = new KeyboardStateBuilder(base.GetKeyboardState());
|
||||
var mouse = new MouseStateBuilder(base.GetMouseState());
|
||||
controller.Reset(base.GetGamePadState());
|
||||
keyboard.Reset(base.GetKeyboardState());
|
||||
mouse.Reset(base.GetMouseState());
|
||||
Vector2 cursorAbsolutePos = new((mouse.X * zoomMultiplier) + Game1.viewport.X, (mouse.Y * zoomMultiplier) + Game1.viewport.Y);
|
||||
Vector2? playerTilePos = Context.IsPlayerFree ? Game1.player.Tile : null;
|
||||
HashSet<SButton> reallyDown = new(this.GetPressedButtons(keyboard, mouse, controller));
|
||||
@@ -159,9 +173,13 @@ internal sealed class SInputState : InputState
|
||||
{
|
||||
if (this.HasNewOverrides)
|
||||
{
|
||||
var controller = new GamePadStateBuilder(this.ControllerState);
|
||||
var keyboard = new KeyboardStateBuilder(this.KeyboardState);
|
||||
var mouse = new MouseStateBuilder(this.MouseState);
|
||||
GamePadStateBuilder controller = this.ControllerStateBuilder;
|
||||
KeyboardStateBuilder keyboard = this.KeyboardStateBuilder;
|
||||
MouseStateBuilder mouse = this.MouseStateBuilder;
|
||||
|
||||
controller.Reset(this.ControllerState);
|
||||
keyboard.Reset(this.KeyboardState);
|
||||
mouse.Reset(this.MouseState);
|
||||
|
||||
if (this.ApplyOverrides(pressed: this.CustomPressedKeys, released: this.CustomReleasedKeys, controller, keyboard, mouse))
|
||||
{
|
||||
@@ -238,14 +256,14 @@ internal sealed class SInputState : InputState
|
||||
mouseOverrides[button] = newState;
|
||||
else if (button.TryGetKeyboard(out Keys _))
|
||||
keyboardOverrides[button] = newState;
|
||||
else if (controller.IsConnected && button.TryGetController(out Buttons _))
|
||||
else if (button.TryGetController(out Buttons _))
|
||||
controllerOverrides[button] = newState;
|
||||
}
|
||||
|
||||
// override states
|
||||
if (keyboardOverrides.Any())
|
||||
keyboard.OverrideButtons(keyboardOverrides);
|
||||
if (controller.IsConnected && controllerOverrides.Any())
|
||||
if (controllerOverrides.Any())
|
||||
controller.OverrideButtons(controllerOverrides);
|
||||
if (mouseOverrides.Any())
|
||||
mouse.OverrideButtons(mouseOverrides);
|
||||
|
||||
@@ -60,7 +60,7 @@ internal class JsonSettingsWrapper
|
||||
public void SaveOrDeleteFile()
|
||||
{
|
||||
if (this.Properties.Count == 0)
|
||||
File.Delete(Constants.ApiUserConfigPath);
|
||||
File.Delete(this.FilePath);
|
||||
else
|
||||
{
|
||||
string json = JsonConvert.SerializeObject(this.Properties, Formatting.Indented);
|
||||
|
||||
@@ -705,6 +705,18 @@ internal class CoreAssetPropagator
|
||||
this.Reflection.GetField<bool>(location, "displayingSpouseRoom").SetValue(false);
|
||||
location.MakeMapModifications(force: true);
|
||||
|
||||
// update fridge position
|
||||
switch (location)
|
||||
{
|
||||
case FarmHouse farmhouse:
|
||||
farmhouse.fridgePosition = farmhouse.GetFridgePositionFromMap() ?? Point.Zero;
|
||||
break;
|
||||
|
||||
case IslandFarmHouse farmhouse:
|
||||
farmhouse.fridgePosition = farmhouse.GetFridgePositionFromMap() ?? Point.Zero;
|
||||
break;
|
||||
}
|
||||
|
||||
// reset player position
|
||||
// The game may move the player as part of the map changes, even if they're not in that
|
||||
// location. That's not needed in this case, and it can have weird effects like players
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
"config.section.console-window": "Console window",
|
||||
|
||||
"config.developer-mode.name": "Developer mode",
|
||||
"config.developer-mode.desc": "Whether to show much more info in the SMAPI consoler window, intended for mod developers. Not recommended for most players.",
|
||||
"config.developer-mode.desc": "Whether to show much more info in the SMAPI console window, intended for mod developers. Not recommended for most players.",
|
||||
|
||||
"config.color-scheme.name": "Color scheme",
|
||||
"config.color-scheme.desc": "The color scheme to apply to text in the SMAPI console window. This has no effect on the game, mods, or SMAPI log file.",
|
||||
|
||||
+27
-28
@@ -4,52 +4,51 @@
|
||||
*********/
|
||||
// short date format for SDate
|
||||
// tokens: {{day}} (like 15), {{season}} (like Spring), {{seasonLowercase}} (like spring), {{year}} (like 2)
|
||||
"generic.date": "{{seasonLowercase}} {{day}}",
|
||||
"generic.date-with-year": "{{seasonLowercase}} {{day}} del año {{year}}",
|
||||
"generic.date": "{{day}} de {{season}}",
|
||||
"generic.date-with-year": "{{day}} de {{season}} del año {{year}}",
|
||||
|
||||
|
||||
/*********
|
||||
** Generic Mod Config Menu UI
|
||||
*********/
|
||||
// TODO
|
||||
// 'SMAPI features' section
|
||||
"config.section.features": "SMAPI features",
|
||||
"config.section.features": "Características de SMAPI",
|
||||
|
||||
"config.check-for-updates.name": "Check for updates",
|
||||
"config.check-for-updates.desc": "Whether to automatically check for newer versions of SMAPI and mods when you load the game. If new versions are available, an alert will be shown in the console. This doesn't affect the load time even if your connection is offline or slow, because it happens in the background.",
|
||||
"config.check-for-updates.name": "Comprobar actualizaciones",
|
||||
"config.check-for-updates.desc": "Si se debería comprobar automáticamente si hay nuevas versiones de SMAPI y de mods al cargar el juego. Si existen versiones nuevas, aparecerá un aviso en la consola. Esto no afecta el tiempo de carga si tu conexión a Internet es lenta o inexistente, ya que la comprobación se realiza en el fondo.",
|
||||
|
||||
"config.check-content-integrity.name": "Check content integrity",
|
||||
"config.check-content-integrity.desc": "Whether SMAPI should check whether the game's content files are present and unmodified. This should nearly always be enabled. If disabled, SMAPI will log a warning for visibility when someone helps you troubleshoot game issues.",
|
||||
"config.check-content-integrity.name": "Comprobar integridad del contenido",
|
||||
"config.check-content-integrity.desc": "Si SMAPI debería comprobar si los archivos de contenido del juego están presentes y sin modificar. Esto debería estar activado casi siempte. Si se desactiva, SMAPI guardará en el log un aviso para que, si alguien te ayuda a arreglar algún problema con el juego, lo sepa.",
|
||||
|
||||
"config.read-console-input.name": "Read console input",
|
||||
"config.read-console-input.desc": "Whether SMAPI should listen for console input. Disabling this will prevent you from using console commands. On some specific Linux systems, disabling this may reduce CPU usage.",
|
||||
"config.read-console-input.name": "Leer entrada de consola",
|
||||
"config.read-console-input.desc": "Si SMAPI debería ver qué se introduce por consola. Si se desactiva, no podrás usar comandos de consola. En ciertos sistemas Linux, desactivando esta opción reducirá el uso de la CPU.",
|
||||
|
||||
// 'Console window' section
|
||||
"config.section.console-window": "Console window",
|
||||
"config.section.console-window": "Ventana de consola",
|
||||
|
||||
"config.developer-mode.name": "Developer mode",
|
||||
"config.developer-mode.desc": "Whether to show much more info in the SMAPI consoler window, intended for mod developers. Not recommended for most players.",
|
||||
"config.developer-mode.name": "Modo desarrollador",
|
||||
"config.developer-mode.desc": "Si se debería mostrar mucha más información en la consola de SMAPI, para desarrolladores de mods. No recomendado para la mayoría de jugadores.",
|
||||
|
||||
"config.color-scheme.name": "Color scheme",
|
||||
"config.color-scheme.desc": "The color scheme to apply to text in the SMAPI console window. This has no effect on the game, mods, or SMAPI log file.",
|
||||
"config.color-scheme.options.AutoDetect": "Auto-detect",
|
||||
"config.color-scheme.options.AutoDetect.on-windows": "Auto-detect (recommended)",
|
||||
"config.color-scheme.options.DarkBackground": "Lighter text (for dark backgrounds)",
|
||||
"config.color-scheme.options.LightBackground": "Darker text (for light backgrounds)",
|
||||
"config.color-scheme.options.None": "No colors",
|
||||
"config.color-scheme.name": "Esquema de color",
|
||||
"config.color-scheme.desc": "Qué paleta de colores aplicar al texto en la consola de SMAPI. Esto no tiene ningún efecto sobre el juego, los mods, o el archivo con logs de SMAPI.",
|
||||
"config.color-scheme.options.AutoDetect": "Detectar auto.",
|
||||
"config.color-scheme.options.AutoDetect.on-windows": "Detectar auto. (recomendado)",
|
||||
"config.color-scheme.options.DarkBackground": "Texto más claro (para fondos oscuros)",
|
||||
"config.color-scheme.options.LightBackground": "Texto más oscuro (para fondos claros)",
|
||||
"config.color-scheme.options.None": "Sin colores",
|
||||
|
||||
// 'Verbose logging' section
|
||||
"config.section.verbose-logs": "Verbose logs",
|
||||
"config.section.verbose-logs.explanation": "To help troubleshoot, SMAPI and many mods can send extra info to the SMAPI log (called 'verbose logging'). This may cause performance issues, and should usually be disabled.",
|
||||
"config.section.verbose-logs": "Logs completos",
|
||||
"config.section.verbose-logs.explanation": "Para ayudar con la resolución de problemas, SMAPI y muchos mods pueden mostrar información adicional al log de SMAPI (llamados 'verbose logging'). Esto podría causar problemas de rendimiento, y normalmente debería estar desactivado.",
|
||||
|
||||
"config.enable-for.name": "Enable for",
|
||||
"config.enable-for.desc": "Choose which mods have verbose logging enabled.",
|
||||
"config.enable-for.options.all": "All (not recommended)",
|
||||
"config.enable-for.options.selected": "Mods selected below",
|
||||
"config.enable-for.name": "Activar para",
|
||||
"config.enable-for.desc": "Elige qué mods tienen activados los logs completos.",
|
||||
"config.enable-for.options.all": "Todos (no recomendado)",
|
||||
"config.enable-for.options.selected": "Mods seleccionados",
|
||||
|
||||
"config.enable-for-smapi.name": "SMAPI",
|
||||
"config.enable-for-smapi.desc": "Whether to enable verbose logs for SMAPI itself.",
|
||||
"config.enable-for-smapi.desc": "Si SMAPI debería tener los logs completos activados.",
|
||||
|
||||
"config.enable-for-mod.name": "{{modName}}",
|
||||
"config.enable-for-mod.desc": "Whether to enable verbose logs for the '{{modName}}' mod."
|
||||
"config.enable-for-mod.desc": "Si el mod '{{modName}}' debería tener los logs completos activados."
|
||||
}
|
||||
|
||||
+25
-26
@@ -11,45 +11,44 @@
|
||||
/*********
|
||||
** Generic Mod Config Menu UI
|
||||
*********/
|
||||
// TODO
|
||||
// 'SMAPI features' section
|
||||
"config.section.features": "SMAPI features",
|
||||
"config.section.features": "Fonctionnalités de SMAPI",
|
||||
|
||||
"config.check-for-updates.name": "Check for updates",
|
||||
"config.check-for-updates.desc": "Whether to automatically check for newer versions of SMAPI and mods when you load the game. If new versions are available, an alert will be shown in the console. This doesn't affect the load time even if your connection is offline or slow, because it happens in the background.",
|
||||
"config.check-for-updates.name": "Vérifier les mises à jour",
|
||||
"config.check-for-updates.desc": "Permet de vérifier automatiquement si de nouvelles versions de SMAPI et de mods sont disponibles lorsque vous chargez le jeu. Si de nouvelles versions sont disponibles, une alerte s'affichera dans la console. Cela n'affecte pas le temps de chargement, même si votre connexion est hors ligne ou lente, car cela se produit en arrière-plan.",
|
||||
|
||||
"config.check-content-integrity.name": "Check content integrity",
|
||||
"config.check-content-integrity.desc": "Whether SMAPI should check whether the game's content files are present and unmodified. This should nearly always be enabled. If disabled, SMAPI will log a warning for visibility when someone helps you troubleshoot game issues.",
|
||||
"config.check-content-integrity.name": "Vérifier l'intégrité du contenu",
|
||||
"config.check-content-integrity.desc": "SMAPI doit-il vérifier si les fichiers de contenu du jeu sont présents et n'ont pas été modifiés ? Cette option doit de préférence être activée. Si elle est désactivée, SMAPI écrira un avertissement pour plus de visibilité lorsque quelqu'un vous aidera à résoudre des problèmes liés au jeu.",
|
||||
|
||||
"config.read-console-input.name": "Read console input",
|
||||
"config.read-console-input.desc": "Whether SMAPI should listen for console input. Disabling this will prevent you from using console commands. On some specific Linux systems, disabling this may reduce CPU usage.",
|
||||
"config.read-console-input.name": "Lire les entrées de la console",
|
||||
"config.read-console-input.desc": "Permet à SMAPI de lire les entrées de la console. La désactivation de cette option vous empêchera d'utiliser les commandes de la console. Sur certains systèmes Linux spécifiques, la désactivation de cette option peut réduire l'utilisation du processeur.",
|
||||
|
||||
// 'Console window' section
|
||||
"config.section.console-window": "Console window",
|
||||
"config.section.console-window": "Fenêtre de la console",
|
||||
|
||||
"config.developer-mode.name": "Developer mode",
|
||||
"config.developer-mode.desc": "Whether to show much more info in the SMAPI consoler window, intended for mod developers. Not recommended for most players.",
|
||||
"config.developer-mode.name": "Mode développeur",
|
||||
"config.developer-mode.desc": "Afficher davantage d'informations dans la fenêtre de la console SMAPI, destinée aux développeurs de mods. Non recommandé pour la plupart des joueurs.",
|
||||
|
||||
"config.color-scheme.name": "Color scheme",
|
||||
"config.color-scheme.desc": "The color scheme to apply to text in the SMAPI console window. This has no effect on the game, mods, or SMAPI log file.",
|
||||
"config.color-scheme.options.AutoDetect": "Auto-detect",
|
||||
"config.color-scheme.options.AutoDetect.on-windows": "Auto-detect (recommended)",
|
||||
"config.color-scheme.options.DarkBackground": "Lighter text (for dark backgrounds)",
|
||||
"config.color-scheme.options.LightBackground": "Darker text (for light backgrounds)",
|
||||
"config.color-scheme.options.None": "No colors",
|
||||
"config.color-scheme.name": "Schéma de couleurs",
|
||||
"config.color-scheme.desc": "Le schéma de couleurs à appliquer au texte dans la fenêtre de la console SMAPI. Cela n'a aucun effet sur le jeu, les mods ou le fichier journal SMAPI.",
|
||||
"config.color-scheme.options.AutoDetect": "Détection automatique",
|
||||
"config.color-scheme.options.AutoDetect.on-windows": "Détection automatique (recommandé)",
|
||||
"config.color-scheme.options.DarkBackground": "Texte plus clair (pour les arrière-plans sombres)",
|
||||
"config.color-scheme.options.LightBackground": "Texte plus foncé (pour les arrière-plans clairs)",
|
||||
"config.color-scheme.options.None": "Pas de couleurs",
|
||||
|
||||
// 'Verbose logging' section
|
||||
"config.section.verbose-logs": "Verbose logs",
|
||||
"config.section.verbose-logs.explanation": "To help troubleshoot, SMAPI and many mods can send extra info to the SMAPI log (called 'verbose logging'). This may cause performance issues, and should usually be disabled.",
|
||||
"config.section.verbose-logs": "Journaux détaillés",
|
||||
"config.section.verbose-logs.explanation": "Pour aider à résoudre les problèmes, SMAPI et de nombreux mods peuvent envoyer des informations supplémentaires au journal SMAPI (appelé 'journalisation détaillée'). Cela peut causer des problèmes de performance et devrait généralement être désactivé.",
|
||||
|
||||
"config.enable-for.name": "Enable for",
|
||||
"config.enable-for.desc": "Choose which mods have verbose logging enabled.",
|
||||
"config.enable-for.options.all": "All (not recommended)",
|
||||
"config.enable-for.options.selected": "Mods selected below",
|
||||
"config.enable-for.name": "Activé pour",
|
||||
"config.enable-for.desc": "Choisissez les mods pour lesquels la journalisation détaillée est activée.",
|
||||
"config.enable-for.options.all": "Tous (non recommandé)",
|
||||
"config.enable-for.options.selected": "Mods sélectionnés ci-dessous",
|
||||
|
||||
"config.enable-for-smapi.name": "SMAPI",
|
||||
"config.enable-for-smapi.desc": "Whether to enable verbose logs for SMAPI itself.",
|
||||
"config.enable-for-smapi.desc": "Activer ou non les journaux détaillés pour SMAPI lui-même.",
|
||||
|
||||
"config.enable-for-mod.name": "{{modName}}",
|
||||
"config.enable-for-mod.desc": "Whether to enable verbose logs for the '{{modName}}' mod."
|
||||
"config.enable-for-mod.desc": "Activer ou non les journaux détaillés pour le mod '{{modName}}'."
|
||||
}
|
||||
|
||||
+25
-26
@@ -11,45 +11,44 @@
|
||||
/*********
|
||||
** Generic Mod Config Menu UI
|
||||
*********/
|
||||
// TODO
|
||||
// 'SMAPI features' section
|
||||
"config.section.features": "SMAPI features",
|
||||
"config.section.features": "Fitur SMAPI",
|
||||
|
||||
"config.check-for-updates.name": "Check for updates",
|
||||
"config.check-for-updates.desc": "Whether to automatically check for newer versions of SMAPI and mods when you load the game. If new versions are available, an alert will be shown in the console. This doesn't affect the load time even if your connection is offline or slow, because it happens in the background.",
|
||||
"config.check-for-updates.name": "Periksa pembaruan",
|
||||
"config.check-for-updates.desc": "Menentukan apakah akan memeriksa versi terbaru SMAPI dan mod secara otomatis saat Anda memuat permainan. Jika versi terbaru tersedia, peringatan akan ditampilkan di konsol. Ini tidak memengaruhi waktu pemuatan meskipun koneksi Anda luring atau lambat, karena ini terjadi di latar belakang.",
|
||||
|
||||
"config.check-content-integrity.name": "Check content integrity",
|
||||
"config.check-content-integrity.desc": "Whether SMAPI should check whether the game's content files are present and unmodified. This should nearly always be enabled. If disabled, SMAPI will log a warning for visibility when someone helps you troubleshoot game issues.",
|
||||
"config.check-content-integrity.name": "Periksa integritas konten",
|
||||
"config.check-content-integrity.desc": "Menentukan apakah SMAPI harus memeriksa apakah berkas konten permainan tersedia dan tidak dimodifikasi. Ini hampir selalu harus diaktifkan. Jika dinonaktifkan, SMAPI akan mencatat peringatan agar terlihat saat seseorang membantu Anda memecahkan masalah permainan.",
|
||||
|
||||
"config.read-console-input.name": "Read console input",
|
||||
"config.read-console-input.desc": "Whether SMAPI should listen for console input. Disabling this will prevent you from using console commands. On some specific Linux systems, disabling this may reduce CPU usage.",
|
||||
"config.read-console-input.name": "Baca input konsol",
|
||||
"config.read-console-input.desc": "Menentukan apakah SMAPI harus mendengarkan input konsol. Menonaktifkan ini akan mencegah Anda menggunakan perintah konsol. Pada beberapa sistem Linux tertentu, menonaktifkan ini dapat mengurangi penggunaan CPU.",
|
||||
|
||||
// 'Console window' section
|
||||
"config.section.console-window": "Console window",
|
||||
"config.section.console-window": "Jendela konsol",
|
||||
|
||||
"config.developer-mode.name": "Developer mode",
|
||||
"config.developer-mode.desc": "Whether to show much more info in the SMAPI consoler window, intended for mod developers. Not recommended for most players.",
|
||||
"config.developer-mode.name": "Mode pengembang",
|
||||
"config.developer-mode.desc": "Menentukan apakah akan menampilkan lebih banyak info di jendela konsol SMAPI, ditujukan untuk pengembang mod. Tidak disarankan bagi sebagian besar pemain.",
|
||||
|
||||
"config.color-scheme.name": "Color scheme",
|
||||
"config.color-scheme.desc": "The color scheme to apply to text in the SMAPI console window. This has no effect on the game, mods, or SMAPI log file.",
|
||||
"config.color-scheme.options.AutoDetect": "Auto-detect",
|
||||
"config.color-scheme.options.AutoDetect.on-windows": "Auto-detect (recommended)",
|
||||
"config.color-scheme.options.DarkBackground": "Lighter text (for dark backgrounds)",
|
||||
"config.color-scheme.options.LightBackground": "Darker text (for light backgrounds)",
|
||||
"config.color-scheme.options.None": "No colors",
|
||||
"config.color-scheme.name": "Skema warna",
|
||||
"config.color-scheme.desc": "Skema warna yang diterapkan pada teks di jendela konsol SMAPI. Ini tidak memengaruhi permainan, mod, atau berkas log SMAPI.",
|
||||
"config.color-scheme.options.AutoDetect": "Deteksi otomatis",
|
||||
"config.color-scheme.options.AutoDetect.on-windows": "Deteksi otomatis (disarankan)",
|
||||
"config.color-scheme.options.DarkBackground": "Teks lebih terang (untuk latar belakang gelap)",
|
||||
"config.color-scheme.options.LightBackground": "Teks lebih gelap (untuk latar belakang terang)",
|
||||
"config.color-scheme.options.None": "Tanpa warna",
|
||||
|
||||
// 'Verbose logging' section
|
||||
"config.section.verbose-logs": "Verbose logs",
|
||||
"config.section.verbose-logs.explanation": "To help troubleshoot, SMAPI and many mods can send extra info to the SMAPI log (called 'verbose logging'). This may cause performance issues, and should usually be disabled.",
|
||||
"config.section.verbose-logs": "Log terperinci",
|
||||
"config.section.verbose-logs.explanation": "Untuk membantu pemecahan masalah, SMAPI dan banyak mod dapat mengirimkan info tambahan ke log SMAPI (disebut 'log terperinci'). Ini dapat menyebabkan masalah performa, dan biasanya harus dinonaktifkan.",
|
||||
|
||||
"config.enable-for.name": "Enable for",
|
||||
"config.enable-for.desc": "Choose which mods have verbose logging enabled.",
|
||||
"config.enable-for.options.all": "All (not recommended)",
|
||||
"config.enable-for.options.selected": "Mods selected below",
|
||||
"config.enable-for.name": "Aktifkan untuk",
|
||||
"config.enable-for.desc": "Pilih mod mana yang akan mengaktifkan log terperinci.",
|
||||
"config.enable-for.options.all": "Semua (tidak disarankan)",
|
||||
"config.enable-for.options.selected": "Mod yang dipilih di bawah",
|
||||
|
||||
"config.enable-for-smapi.name": "SMAPI",
|
||||
"config.enable-for-smapi.desc": "Whether to enable verbose logs for SMAPI itself.",
|
||||
"config.enable-for-smapi.desc": "Menentukan apakah akan mengaktifkan log terperinci untuk SMAPI itu sendiri.",
|
||||
|
||||
"config.enable-for-mod.name": "{{modName}}",
|
||||
"config.enable-for-mod.desc": "Whether to enable verbose logs for the '{{modName}}' mod."
|
||||
"config.enable-for-mod.desc": "Menentukan apakah akan mengaktifkan log terperinci untuk mod '{{modName}}'."
|
||||
}
|
||||
|
||||
+25
-26
@@ -11,45 +11,44 @@
|
||||
/*********
|
||||
** Generic Mod Config Menu UI
|
||||
*********/
|
||||
// TODO
|
||||
// 'SMAPI features' section
|
||||
"config.section.features": "SMAPI features",
|
||||
"config.section.features": "Настройки SMAPI",
|
||||
|
||||
"config.check-for-updates.name": "Check for updates",
|
||||
"config.check-for-updates.desc": "Whether to automatically check for newer versions of SMAPI and mods when you load the game. If new versions are available, an alert will be shown in the console. This doesn't affect the load time even if your connection is offline or slow, because it happens in the background.",
|
||||
"config.check-for-updates.name": "Проверять обновления",
|
||||
"config.check-for-updates.desc": "Проверять ли наличие новой версии SMAPI и модов, пока запускается игра. Если будет доступна новая версия, то в консоль будет выведено уведомление. Эта опция никак не должна влиять на скорость запуска игры, так как проверка происходит на фоне, даже если соединение медленное или отсутствует вовсе.",
|
||||
|
||||
"config.check-content-integrity.name": "Check content integrity",
|
||||
"config.check-content-integrity.desc": "Whether SMAPI should check whether the game's content files are present and unmodified. This should nearly always be enabled. If disabled, SMAPI will log a warning for visibility when someone helps you troubleshoot game issues.",
|
||||
"config.check-content-integrity.name": "Проверять целостность файлов игры",
|
||||
"config.check-content-integrity.desc": "Эта настройка определяет будет ли SMAPI проверять наличие и целостность файлов (контента) игры. Желательно, чтобы это опция была всегда включена. Если вдруг с игрой будет что-то не так, то это может помочь решить проблему быстрее. Если эта опция будет выключена, SMAPI запишет в журнал (лог файл) об этом.",
|
||||
|
||||
"config.read-console-input.name": "Read console input",
|
||||
"config.read-console-input.desc": "Whether SMAPI should listen for console input. Disabling this will prevent you from using console commands. On some specific Linux systems, disabling this may reduce CPU usage.",
|
||||
"config.read-console-input.name": "Консольные команды",
|
||||
"config.read-console-input.desc": "Определят, будет ли SMAPI ожидать ввод консольных команд. Если эту настройку отключить, то вводить консольные команды будет нельзя. На некоторых Linux системах отключение этой опции может снизить использование ЦПУ (процессора).",
|
||||
|
||||
// 'Console window' section
|
||||
"config.section.console-window": "Console window",
|
||||
"config.section.console-window": "Окно консоли",
|
||||
|
||||
"config.developer-mode.name": "Developer mode",
|
||||
"config.developer-mode.desc": "Whether to show much more info in the SMAPI consoler window, intended for mod developers. Not recommended for most players.",
|
||||
"config.developer-mode.name": "Режим разработчика",
|
||||
"config.developer-mode.desc": "Показывать ли больше информации в консоли SMAPI, опция предназначена для разработчиков. Не рекомендуется включать большинству игроков.",
|
||||
|
||||
"config.color-scheme.name": "Color scheme",
|
||||
"config.color-scheme.desc": "The color scheme to apply to text in the SMAPI console window. This has no effect on the game, mods, or SMAPI log file.",
|
||||
"config.color-scheme.options.AutoDetect": "Auto-detect",
|
||||
"config.color-scheme.options.AutoDetect.on-windows": "Auto-detect (recommended)",
|
||||
"config.color-scheme.options.DarkBackground": "Lighter text (for dark backgrounds)",
|
||||
"config.color-scheme.options.LightBackground": "Darker text (for light backgrounds)",
|
||||
"config.color-scheme.options.None": "No colors",
|
||||
"config.color-scheme.name": "Цветовая схема",
|
||||
"config.color-scheme.desc": "Цветовая схема, которая будет применена к тексту в консольном окне SMAPI. Никак не влияет на игру, моды или файл журнала (лог файл) SMAPI.",
|
||||
"config.color-scheme.options.AutoDetect": "Автоматически",
|
||||
"config.color-scheme.options.AutoDetect.on-windows": "Автоматически (рекомендуется)",
|
||||
"config.color-scheme.options.DarkBackground": "Светлый текст (для тёмного фона)",
|
||||
"config.color-scheme.options.LightBackground": "Тёмный текст (для светлого фона)",
|
||||
"config.color-scheme.options.None": "Без цвета",
|
||||
|
||||
// 'Verbose logging' section
|
||||
"config.section.verbose-logs": "Verbose logs",
|
||||
"config.section.verbose-logs.explanation": "To help troubleshoot, SMAPI and many mods can send extra info to the SMAPI log (called 'verbose logging'). This may cause performance issues, and should usually be disabled.",
|
||||
"config.section.verbose-logs": "Более подробное журналирование",
|
||||
"config.section.verbose-logs.explanation": "Чтобы было проще решать возникающие проблемы, SMAPI и многим другим модам может потребоваться записать больше информации в журнал (так же известный как лог-файл, эта информация ещё обычно выводится в консоль). Оно может влиять на производительность игры, поэтому обычно не стоит включать это без надобности.",
|
||||
|
||||
"config.enable-for.name": "Enable for",
|
||||
"config.enable-for.desc": "Choose which mods have verbose logging enabled.",
|
||||
"config.enable-for.options.all": "All (not recommended)",
|
||||
"config.enable-for.options.selected": "Mods selected below",
|
||||
"config.enable-for.name": "Включить для",
|
||||
"config.enable-for.desc": "Определяет, для чего будет включено подробное журналирование.",
|
||||
"config.enable-for.options.all": "Всех модов (не рекомендуется)",
|
||||
"config.enable-for.options.selected": "Модов выбранных ниже",
|
||||
|
||||
"config.enable-for-smapi.name": "SMAPI",
|
||||
"config.enable-for-smapi.desc": "Whether to enable verbose logs for SMAPI itself.",
|
||||
"config.enable-for-smapi.desc": "Определяет, включать ли подробное журналирование для самого SMAPI.",
|
||||
|
||||
"config.enable-for-mod.name": "{{modName}}",
|
||||
"config.enable-for-mod.desc": "Whether to enable verbose logs for the '{{modName}}' mod."
|
||||
"config.enable-for-mod.desc": "Определяет, включать ли подробное журналирование для мода '{{modName}}'."
|
||||
}
|
||||
|
||||
+25
-26
@@ -11,45 +11,44 @@
|
||||
/*********
|
||||
** Generic Mod Config Menu UI
|
||||
*********/
|
||||
// TODO
|
||||
// 'SMAPI features' section
|
||||
"config.section.features": "SMAPI features",
|
||||
"config.section.features": "ฟีเจอร์ของ SMAPI",
|
||||
|
||||
"config.check-for-updates.name": "Check for updates",
|
||||
"config.check-for-updates.desc": "Whether to automatically check for newer versions of SMAPI and mods when you load the game. If new versions are available, an alert will be shown in the console. This doesn't affect the load time even if your connection is offline or slow, because it happens in the background.",
|
||||
"config.check-for-updates.name": "ตรวจสอบการอัปเดต",
|
||||
"config.check-for-updates.desc": "กำหนดว่าจะให้ตรวจสอบเวอร์ชันใหม่ของ SMAPI และม็อดโดยอัตโนมัติเมื่อคุณโหลดเกมหรือไม่ หากมีเวอร์ชันใหม่ ระบบจะแสดงการแจ้งเตือนในคอนโซล การตั้งค่านี้จะไม่ส่งผลต่อเวลาในการโหลดเกม แม้ว่าการเชื่อมต่ออินเทอร์เน็ตของคุณจะออฟไลน์หรือช้าก็ตาม เนื่องจากการตรวจสอบจะทำงานอยู่เบื้องหลัง",
|
||||
|
||||
"config.check-content-integrity.name": "Check content integrity",
|
||||
"config.check-content-integrity.desc": "Whether SMAPI should check whether the game's content files are present and unmodified. This should nearly always be enabled. If disabled, SMAPI will log a warning for visibility when someone helps you troubleshoot game issues.",
|
||||
"config.check-content-integrity.name": "ตรวจสอบความสมบูรณ์ของไฟล์เนื้อหา",
|
||||
"config.check-content-integrity.desc": "กำหนดว่า SMAPI ควรตรวจสอบว่าไฟล์เนื้อหาของเกมมีอยู่ครบและไม่ได้ถูกแก้ไขหรือไม่ โดยทั่วไปควรเปิดใช้งานตัวเลือกนี้เกือบตลอดเวลา หากปิดใช้งาน SMAPI จะบันทึกคำเตือนไว้ในบันทึก (log) เพื่อให้มองเห็นได้ชัดเจนเมื่อมีผู้ช่วยคุณแก้ไขปัญหาเกี่ยวกับเกม",
|
||||
|
||||
"config.read-console-input.name": "Read console input",
|
||||
"config.read-console-input.desc": "Whether SMAPI should listen for console input. Disabling this will prevent you from using console commands. On some specific Linux systems, disabling this may reduce CPU usage.",
|
||||
"config.read-console-input.name": "รับคำสั่งจากคอนโซล",
|
||||
"config.read-console-input.desc": "กำหนดว่า SMAPI ควรรับคำสั่งจากคอนโซลหรือไม่ หากปิดใช้งาน คุณจะไม่สามารถใช้คำสั่งในคอนโซลได้ บนระบบ Linux บางประเภท การปิดใช้งานตัวเลือกนี้อาจช่วยลดการใช้ CPU ได้",
|
||||
|
||||
// 'Console window' section
|
||||
"config.section.console-window": "Console window",
|
||||
"config.section.console-window": "หน้าต่างคอนโซล",
|
||||
|
||||
"config.developer-mode.name": "Developer mode",
|
||||
"config.developer-mode.desc": "Whether to show much more info in the SMAPI consoler window, intended for mod developers. Not recommended for most players.",
|
||||
"config.developer-mode.name": "โหมดนักพัฒนา",
|
||||
"config.developer-mode.desc": "กำหนดว่าจะแสดงข้อมูลเพิ่มเติมจำนวนมากในหน้าต่างคอนโซลของ SMAPI หรือไม่ ซึ่งมีไว้สำหรับนักพัฒนาม็อด ไม่แนะนำสำหรับผู้เล่นส่วนใหญ่",
|
||||
|
||||
"config.color-scheme.name": "Color scheme",
|
||||
"config.color-scheme.desc": "The color scheme to apply to text in the SMAPI console window. This has no effect on the game, mods, or SMAPI log file.",
|
||||
"config.color-scheme.options.AutoDetect": "Auto-detect",
|
||||
"config.color-scheme.options.AutoDetect.on-windows": "Auto-detect (recommended)",
|
||||
"config.color-scheme.options.DarkBackground": "Lighter text (for dark backgrounds)",
|
||||
"config.color-scheme.options.LightBackground": "Darker text (for light backgrounds)",
|
||||
"config.color-scheme.options.None": "No colors",
|
||||
"config.color-scheme.name": "ชุดรูปแบบสี",
|
||||
"config.color-scheme.desc": "ชุดรูปแบบสีที่จะใช้กับข้อความในหน้าต่างคอนโซลของ SMAPI การตั้งค่านี้จะไม่มีผลต่อเกม ม็อด หรือไฟล์บันทึก (log) ของ SMAPI",
|
||||
"config.color-scheme.options.AutoDetect": "ตรวจจับอัตโนมัติ",
|
||||
"config.color-scheme.options.AutoDetect.on-windows": "ตรวจจับอัตโนมัติ (แนะนำ)",
|
||||
"config.color-scheme.options.DarkBackground": "ข้อความสีอ่อน (สำหรับพื้นหลังสีเข้ม)",
|
||||
"config.color-scheme.options.LightBackground": "ข้อความสีเข้ม (สำหรับพื้นหลังสีอ่อน)",
|
||||
"config.color-scheme.options.None": "ไม่ใช้สี",
|
||||
|
||||
// 'Verbose logging' section
|
||||
"config.section.verbose-logs": "Verbose logs",
|
||||
"config.section.verbose-logs.explanation": "To help troubleshoot, SMAPI and many mods can send extra info to the SMAPI log (called 'verbose logging'). This may cause performance issues, and should usually be disabled.",
|
||||
"config.section.verbose-logs": "บันทึกข้อมูลแบบละเอียด",
|
||||
"config.section.verbose-logs.explanation": "เพื่อช่วยในการแก้ไขปัญหา SMAPI และม็อดหลายตัวสามารถส่งข้อมูลเพิ่มเติมไปยังบันทึก (log) ของ SMAPI (เรียกว่า “การบันทึกแบบละเอียด” หรือ verbose logging) ได้ การเปิดใช้งานอาจส่งผลต่อประสิทธิภาพการทำงาน และโดยทั่วไปควรปิดไว้",
|
||||
|
||||
"config.enable-for.name": "Enable for",
|
||||
"config.enable-for.desc": "Choose which mods have verbose logging enabled.",
|
||||
"config.enable-for.options.all": "All (not recommended)",
|
||||
"config.enable-for.options.selected": "Mods selected below",
|
||||
"config.enable-for.name": "เปิดใช้งานสำหรับ",
|
||||
"config.enable-for.desc": "เลือกม็อดที่ต้องการเปิดใช้งานการบันทึกแบบละเอียด (verbose logging)",
|
||||
"config.enable-for.options.all": "ทั้งหมด (ไม่แนะนำ)",
|
||||
"config.enable-for.options.selected": "ม็อดที่เลือกด้านล่าง",
|
||||
|
||||
"config.enable-for-smapi.name": "SMAPI",
|
||||
"config.enable-for-smapi.desc": "Whether to enable verbose logs for SMAPI itself.",
|
||||
"config.enable-for-smapi.desc": "กำหนดว่าจะเปิดใช้งานการบันทึกแบบละเอียด (verbose logging) สำหรับตัว SMAPI เองหรือไม่",
|
||||
|
||||
"config.enable-for-mod.name": "{{modName}}",
|
||||
"config.enable-for-mod.desc": "Whether to enable verbose logs for the '{{modName}}' mod."
|
||||
"config.enable-for-mod.desc": "กำหนดว่าจะเปิดใช้งานการบันทึกแบบละเอียด (verbose logging) สำหรับม็อด '{{modName}}' หรือไม่"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user