Логист - латунное кадило: два вида, дух 1/3 из окон, мигание; команды разработки
- Блоки логиста на модели кадила: по центру на подставке (necroCinerariumLogist) и новый вид у стены на кронштейне (necroCinerariumLogistWall/+Skull); выбор вида - R с урной в руке. - Дух логиста втрое меньше, в покое сидит в кадиле, на перевозку вылетает через окно крышки (у стены - не в стену) и возвращается тем же окном. - Застрял (ящик «куда» полон) - урна мигает (CinerariumBlink) вместо почерневшего духа; прежняя зелёная подмена свечения старой модели убрана. - Команды разработки без мыши: necrospawn, necroexit [quit], necrolook, necroaim, necroplace, necrohold, necrobox, necrourn, necroclick. Проверено в игре (test8): перевозка обоими видами, вылет духа, вид у стены от стены. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
b5bd4e4b2c
commit
6693d96d5e
@@ -88,4 +88,65 @@ namespace NecromancerTome
|
||||
SdtdConsole.Instance.Output("снимок: " + path);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>necrospawn - нажать «Появиться» в окне появления (18.10: ассистент сам запускает игру с сейвом
|
||||
/// -LoadSaveGame=true и входит в мир без мыши). То же, что кнопка: XUiC_SpawnSelectionWindow.SpawnButtonPressed.</summary>
|
||||
[Preserve]
|
||||
public class ConsoleCmdNecroSpawn : ConsoleCmdAbstract
|
||||
{
|
||||
public override string[] getCommands() => new[] { "necrospawn" };
|
||||
public override string getDescription() => "NecromancerTome: нажать «Появиться» (разработка, почтовый ящик)";
|
||||
public override bool AllowedInMainMenu => false;
|
||||
|
||||
public override void Execute(List<string> _params, CommandSenderInfo _senderInfo)
|
||||
{
|
||||
foreach (LocalPlayerUI ui in LocalPlayerUI.PlayerUIs)
|
||||
{
|
||||
XUiC_SpawnSelectionWindow w = ui?.xui?.GetWindowByType<XUiC_SpawnSelectionWindow>();
|
||||
if (w != null && w.IsOpen)
|
||||
{
|
||||
w.SpawnButtonPressed(SpawnMethod.Invalid);
|
||||
SdtdConsole.Instance.Output("necrospawn: нажато «Появиться»");
|
||||
return;
|
||||
}
|
||||
}
|
||||
SdtdConsole.Instance.Output("necrospawn: окно появления не открыто");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>necroexit [quit] - выйти из мира с сохранением, как «Выход» в меню паузы (GameManager.Disconnect); с quit -
|
||||
/// затем закрыть игру. Нужно перед сборкой бандлов и заменой DLL (игра держит файлы).</summary>
|
||||
[Preserve]
|
||||
public class ConsoleCmdNecroExit : ConsoleCmdAbstract
|
||||
{
|
||||
public override string[] getCommands() => new[] { "necroexit" };
|
||||
public override string getDescription() => "NecromancerTome: выйти из мира с сохранением [quit - и закрыть игру] (разработка)";
|
||||
public override bool AllowedInMainMenu => true;
|
||||
|
||||
public override void Execute(List<string> _params, CommandSenderInfo _senderInfo)
|
||||
{
|
||||
bool quit = _params.Count > 0 && _params[0] == "quit";
|
||||
SdtdConsole.Instance.Output("necroexit: выход" + (quit ? " и закрытие игры" : " в меню"));
|
||||
ThreadManager.StartCoroutine(ExitCo(quit));
|
||||
}
|
||||
|
||||
static System.Collections.IEnumerator ExitCo(bool _quit)
|
||||
{
|
||||
if (GameManager.Instance.World != null)
|
||||
{
|
||||
GameManager.Instance.Disconnect();
|
||||
while (GameManager.Instance.World != null)
|
||||
{
|
||||
yield return null;
|
||||
}
|
||||
Debug.Log("[NecromancerTome] necroexit: мир сохранён и закрыт");
|
||||
}
|
||||
if (_quit)
|
||||
{
|
||||
yield return new WaitForSecondsRealtime(2f);
|
||||
Debug.Log("[NecromancerTome] necroexit: закрываю игру");
|
||||
Application.Quit();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user