Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 4 additions & 4 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:
run: git lfs ls-files -l | cut -d' ' -f1 | sort > .lfs-assets-id

- name: Restore LFS cache
uses: actions/cache@v4.0.2
uses: actions/cache@v4
id: lfs-cache
with:
path: .git/lfs
Expand All @@ -46,7 +46,7 @@ jobs:
git reset --hard

- name: Restore Library cache
uses: actions/cache@v4.0.2
uses: actions/cache@v4
with:
path: RedCatEngineUnityProject/Library
key: Library-test-project-${{ matrix.targetPlatform }}
Expand All @@ -65,12 +65,12 @@ jobs:
checkName: ${{ matrix.package }} package test results
githubToken: ${{ secrets.GITHUB_TOKEN }}

- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: Test results (${{ matrix.package }})
path: ${{ steps.testRunner.outputs.artifactsPath }}

- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: Coverage results (${{ matrix.package }})
path: ${{ steps.testRunner.outputs.coveragePath }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"name": "ApplicationRunner",
"rootNamespace": "RedCatEngine.ApplicationRunner",
"references": [
"GUID:59778aa9a8cc64c93bbc14b46fb28511",
"GUID:687b69a268bf4402bb854a43d7732d8a",
"GUID:9c545a6a0a353cd479a317c06bb109b1"
],
"includePlatforms": [],
"excludePlatforms": [],
"allowUnsafeCode": false,
"overrideReferences": false,
"precompiledReferences": [],
"autoReferenced": true,
"defineConstraints": [],
"versionDefines": [],
"noEngineReferences": false
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
using RedCatEngine.StateMachine.StateMachines;
using UnityEngine;

namespace RedCatEngine.ApplicationRunner.Infrastructure.States.CheatSettingsStates
{
public abstract class BaseInitializeCheatState : IInitializeCheatState
{
private readonly TypeBasedStateMachine<IState> _gameStateMachine;
private readonly IInitializeCheatPayload _cheatsPayload;

protected BaseInitializeCheatState(
TypeBasedStateMachine<IState> gameStateMachine,
IInitializeCheatPayload cheatsPayload
)
{
_gameStateMachine = gameStateMachine;
_cheatsPayload = cheatsPayload;
}

public void Exit() { }

public void Enter()
{
Debug.Log("Enter to SpawnCheatConsoleState");
Object.Instantiate(_cheatsPayload.ConsolePrefab);

_gameStateMachine
.EnterNextFromQueue();
}

protected abstract void AttachCheats();
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
using UnityEngine;

namespace RedCatEngine.ApplicationRunner.Infrastructure.States.CheatSettingsStates
{
public interface IInitializeCheatPayload
{
GameObject ConsolePrefab { get; }
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
using RedCatEngine.StateMachine.StateMachines;

namespace RedCatEngine.ApplicationRunner.Infrastructure.States.CheatSettingsStates
{
public interface IInitializeCheatState : IState
{

}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
using Localization;
using RedCatEngine.StateMachine.StateMachines;
using UnityEngine;

namespace RedCatEngine.ApplicationRunner.Infrastructure.States.InitializeLocalizationStates
{
public abstract class BaseInitializeLocalizationState : IInitializeLocalizationState
{
private readonly ITypedQueueStateMachine _gameStateMachine;

protected BaseInitializeLocalizationState(ITypedQueueStateMachine gameStateMachine)
{
_gameStateMachine = gameStateMachine;
}

public abstract string GetLanguage();

public void Enter()
{
var currentLanguage = GetLanguage();
switch (currentLanguage)
{
case "ru":
LocalizeSystem.Init(SystemLanguage.Russian);
break;
case "en":
LocalizeSystem.Init(SystemLanguage.English);
break;
case "tr":
LocalizeSystem.Init(SystemLanguage.Turkish);
break;
case "fr":
LocalizeSystem.Init(SystemLanguage.French);
break;
case "de":
LocalizeSystem.Init(SystemLanguage.German);
break;
default:
LocalizeSystem.Init(SystemLanguage.English);
break;
}
_gameStateMachine.EnterNextFromQueue();
}

public void Exit()
{

}
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
using RedCatEngine.DependencyInjection.Containers.Attributes;
using RedCatEngine.StateMachine.StateMachines;

namespace RedCatEngine.ApplicationRunner.Infrastructure.States.InitializeLocalizationStates
{
public class EditorLocalizationState : BaseInitializeLocalizationState
{
private readonly string _language;

[Inject]
public EditorLocalizationState(ITypedQueueStateMachine gameStateMachine, string language = "ru") : base(gameStateMachine)
{
_language = language;
}

public override string GetLanguage()
=> _language;
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
using RedCatEngine.StateMachine.StateMachines;

namespace RedCatEngine.ApplicationRunner.Infrastructure.States.InitializeLocalizationStates
{
public interface IInitializeLocalizationState : IState
{
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#if YANDEX_GAME
using RedCatEngine.DependencyInjection.Containers.Attributes;
using RedCatEngine.StateMachine.StateMachines;
using YG;

namespace RedCatEngine.ApplicationRunner.Infrastructure.States.InitializeLocalizationStates
{
public class YandexInitializeLocalizationState : BaseInitializeLocalizationState
{
[Inject]
public YandexInitializeLocalizationState(ITypedQueueStateMachine gameStateMachine)
: base(gameStateMachine) { }

public override string GetLanguage()
=> YandexGame.EnvironmentData.language;
}
}

#endif

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
using RedCatEngine.StateMachine.StateMachines;

namespace RedCatEngine.ApplicationRunner.Infrastructure.States.LoadModelStates
{
public interface ILoadPlayerModelState : IState
{

}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
using RedCatEngine.ApplicationRunner.Meta.PlayerModels;
using RedCatEngine.ApplicationRunner.Meta.PlayerModels.ModelLoaders;
using RedCatEngine.ApplicationRunner.Meta.PlayerModels.SaveTriggers;
using RedCatEngine.DependencyInjection.Containers.Attributes;
using RedCatEngine.DependencyInjection.Containers.Interfaces.Unity;
using RedCatEngine.StateMachine.StateMachines;

namespace RedCatEngine.ApplicationRunner.Infrastructure.States.LoadModelStates
{
public class LoadPlayerModelState<TModelData, TModelLoader> : ILoadPlayerModelState
where TModelData : class, new()
where TModelLoader : IModelLoader<TModelData>
{
private readonly IUnityGameContainer _applicationContainer;
private readonly ITypedQueueStateMachine _stateMachine;
private IPlayerModelContainer<TModelData> _playerModelContainer;

[Inject]
public LoadPlayerModelState(
IUnityGameContainer applicationContainer,
ITypedQueueStateMachine stateMachine
)
{
_applicationContainer = applicationContainer;
_stateMachine = stateMachine;
}

public void Enter()
{
_applicationContainer.BindType<IModelLoader<TModelData>, TModelLoader>();
_applicationContainer.BindType<IPlayerModelSaveTrigger, PlayerModelSaveTrigger>();
_playerModelContainer = _applicationContainer
.BindType<IPlayerModelContainer<TModelData>, PlayerModelContainer<TModelData>>();
_playerModelContainer.Load();
if (!_playerModelContainer.IsReady)
_playerModelContainer.ReadyEvent += OnReady;
else
OnSaveLoad();
}

private void OnReady()
{
_playerModelContainer.ReadyEvent -= OnReady;
OnSaveLoad();
}

private void OnSaveLoad()
{
_applicationContainer.BindAsSingle(_playerModelContainer.Model);
_stateMachine.EnterNextFromQueue();
}

public void Exit() { }
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading