Advertisement
MaoChessy

Dich

Jul 4th, 2023
810
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.75 KB | Gaming | 0 0
  1. using System;
  2. using Code.Csharp.Systems.CharacterSystems.Ext.SaveData;
  3. using Code.Csharp.Systems.SaverSystem;
  4. using Code.Csharp.Systems.SaverSystem.ProviderData;
  5. using Code.Csharp.Systems.Scenes.App;
  6. using Code.Csharp.Systems.UI.SettingScreen;
  7. using Plugins.MaoUtility.Systems.DILocator.Atr;
  8. using Plugins.MaoUtility.Systems.IoUi.Btns;
  9. using Plugins.MaoUtility.Systems.IoUi.Core;
  10. using UnityEngine;
  11.  
  12. namespace Code.Csharp.Systems.CharacterSystems.Ext.IO
  13. {
  14.     public class CharacterControlSettingKeyboardIoGroupHandler : IoGroupHandler, IUIPanelSetting
  15.     {
  16.         public IoBtnKey Forward;
  17.         public IoBtnKey Back;
  18.         public IoBtnKey Right;
  19.         public IoBtnKey Left;
  20.         public IoBtnKey Jump;
  21.         public IoBtnKey DashAndRun;
  22.         public IoBtnKey Crouch;
  23.         public IoBtnKey Interact;
  24.        
  25.        
  26.         public void SetActivated(bool isActivated)
  27.         {
  28.             if(isActivated) Register<CharacterControlSettingKeyboardIoGroupHandler>();    
  29.             else Unregister<CharacterControlSettingKeyboardIoGroupHandler>();
  30.         }
  31.     }
  32.  
  33.     [DiMark]
  34.     public class CharacterControlSettingKeyboardIoIniter : IoIniter<CharacterControlSettingKeyboardIoGroupHandler>
  35.     {
  36.         [DiInject] private AppEntity _appEntity;
  37.         private CharacterControlMoveSettingKeyboard _data;
  38.  
  39.         [DiInject]
  40.         private void Init()
  41.             => _data = _appEntity.Get<SaveEntity>().Get<ProviderSaveData>().GetData<CharacterControlMoveSettingKeyboard>();
  42.  
  43.         public override void Register(CharacterControlSettingKeyboardIoGroupHandler panel)
  44.         {
  45.             base.Register(panel);
  46.             panel.Back.Init(()=>_data.KeyBack.Value, x=>_data.KeyBack.Value = x);
  47.             panel.Forward.Init(()=>_data.KeyForward.Value, x=>_data.KeyForward.Value = x);
  48.             panel.Right.Init(()=>_data.KeyRight.Value, x=>_data.KeyRight.Value = x);
  49.             panel.Left.Init(()=>_data.KeyLeft.Value, x=>_data.KeyLeft.Value = x);
  50.             panel.Jump.Init(()=>_data.KeyJump.Value, x=>_data.KeyJump.Value = x);
  51.             panel.Crouch.Init(()=>_data.KeyCrouch.Value, x=>_data.KeyCrouch.Value = x);
  52.             panel.DashAndRun.Init(()=>_data.KeyRunAndDash.Value, x=>_data.KeyRunAndDash.Value = x);
  53.             panel.Interact.Init(()=>_data.KeyInteract.Value, x=>_data.KeyInteract.Value = x);
  54.         }
  55.  
  56.         public override void Unregister(CharacterControlSettingKeyboardIoGroupHandler panel)
  57.         {
  58.             base.Unregister(panel);
  59.             panel.Back.Init(()=>default, x=>{});
  60.             panel.Forward.Init(()=>default, x=>{});
  61.             panel.Right.Init(()=>default, x=>{});
  62.             panel.Left.Init(()=>default, x=>{});
  63.             panel.Jump.Init(()=>default, x=>{});
  64.             panel.Crouch.Init(()=>default, x=>{});
  65.             panel.DashAndRun.Init(()=>default, x=>{});
  66.             panel.Interact.Init(()=>default, x=>{});
  67.         }
  68.     }
  69.  
  70.     public class ConnectorCharacterControlSettingKeyboardIoGroupHandlerHandlerAndIniter : ConnectorTypeForIoManager
  71.     {
  72.         public override Type TargetTypeHandler => typeof(CharacterControlSettingKeyboardIoGroupHandler);
  73.         public override Type GetTypeIniter() => typeof(CharacterControlSettingKeyboardIoIniter);
  74.     }
  75.    
  76.     [DiMark]
  77.     public class CharacterControllSettingKeyboardSettingPanel : SettingPanel<CharacterControlMoveSettingKeyboard>
  78.     {
  79.         [DiInject] private AppEntity _appEntity;
  80.         private CharacterControlMoveSettingKeyboard _data;
  81.  
  82.         [DiInject]
  83.         private void Init()
  84.             => _data = _appEntity.Get<SaveEntity>().Get<ProviderSaveData>().GetData<CharacterControlMoveSettingKeyboard>();
  85.  
  86.         protected override CharacterControlMoveSettingKeyboard GetData() => _data;
  87.     }
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement