public ViewModelOptions(InventoryItemInstance itemInstance, EquipSlot slot, PlayerWeaponComponent weaponComponent, WeaponViewShakeScript shakeComponent, WeaponMovebobComponent movebobComponent) { var wim = itemInstance.ItemModel as WeaponItemModel; UseShake = wim.CheckFlag(ItemFlag.WeaponShake); UseMovebob = !wim.CheckFlag(ItemFlag.WeaponNoMovebob); UseCrosshair = wim.CheckFlag(ItemFlag.WeaponUseCrosshair); AdsCrosshair = wim.CheckFlag(ItemFlag.WeaponCrosshairInADS); UseCharge = wim.CheckFlag(ItemFlag.WeaponHasCharge); UseRecock = wim.CheckFlag(ItemFlag.WeaponHasRecock); switch (slot) { case EquipSlot.LeftWeapon: Side = ViewModelSide.Left; break; case EquipSlot.RightWeapon: Side = ViewModelSide.Right; break; default: Side = ViewModelSide.Undefined; break; } WeaponItemInstance = itemInstance; WeaponComponent = weaponComponent; ShakeComponent = shakeComponent; MovebobComponent = movebobComponent; }
private void Start() { if (MovementComponent == null) { MovementComponent = GetComponentInParent <PlayerMovementComponent>(); } if (MovementComponent == null) { Debug.LogError($"{nameof(WeaponMovebobComponent)} on {name} can't find {nameof(PlayerMovementComponent)}"); enabled = false; return; } if (WeaponComponent == null) { WeaponComponent = GetComponentInParent <PlayerWeaponComponent>(); } if (WeaponComponent == null) { Debug.LogError($"{nameof(WeaponMovebobComponent)} on {name} can't find {nameof(PlayerWeaponComponent)}"); enabled = false; return; } WasInADS = WeaponComponent.IsADS; }
public override void Start() { base.Start(); Debug.Log("Player controller start"); if (!CameraRoot) { CameraRoot = transform.Find("CameraRoot"); } if (!ModelRoot) { ModelRoot = transform.GetChild(0).gameObject; } if (!MovementComponent) { MovementComponent = GetComponent <PlayerMovementComponent>(); } if (!WeaponComponent) { WeaponComponent = GetComponentInChildren <PlayerWeaponComponent>(); } if (!CameraZoomComponent) { CameraZoomComponent = GetComponentInChildren <PlayerCameraZoomComponent>(true); } if (!DeathComponent) { DeathComponent = GetComponentInChildren <PlayerDeathComponent>(); } if (!HUDScript) { HUDScript = (RpgHUDController)BaseHUDController.Current; //I would not recommend this cast } if (!HUDScript && AutoinitHud) { Instantiate <GameObject>(CoreUtils.LoadResource <GameObject>("UI/DefaultWorldHUD"), CoreUtils.GetUIRoot()); if (EventSystem.current == null) { Instantiate(CoreUtils.LoadResource <GameObject>("UI/DefaultEventSystem")); } HUDScript = (RpgHUDController)BaseHUDController.Current; } MessageInterface = new QdmsMessageInterface(gameObject); LockPauseModule.CaptureMouse = true; SetDefaultPlayerView(); SetInitialViewModels(); }
public void Initialize(PlayerWeaponComponent inWeaponComponent) { _weaponComponent = inWeaponComponent; if (_weaponComponent.heldWeapon) { UpdateText(); } else { Hide(); } StopAndHideReloadAnimation(); SubscribeEvents(); }
public void TriggerSpawnBullet(PlayerWeaponComponent weapon, Vector3 position, Vector3 rotation) { if (weapon.HasAmmo()) { weapon.SpentAmmo(); var bullet = Singleton.Get <BulletComponent>(); if (bullet == null) { Singleton.Push(Instantiate(Singleton.bulletPrefab, position, Quaternion.Euler(rotation))); } else { bullet.transform.position = position; bullet.transform.rotation = Quaternion.Euler(rotation); } } }
public override void OnAddedToScene() { base.OnAddedToScene(); var mainScene = (Scene as MainScene); truck = mainScene.truck; playerWeapon = truck.GetComponent <PlayerWeaponComponent>(); playerWeapon.OnWeaponCycle += UpdateWeaponIcons; playerMove = truck.GetComponent <PlayerMovementComponent>(); playerHealth = truck.GetComponent <HealthComponent>(); playerHealth.OnHealthChanged += (h) => UpdateHealth(h); playerAmmo = truck.GetComponent <AmmoComponent>(); playerAmmo.OnAmmoChanged += a => UpdateAmmo(a); playerState = truck.GetComponent <PlayerStateMachine>(); SetUpUI(); }
public static void SpawnBullet(PlayerWeaponComponent weapon, Vector3 position, Vector3 rotation) { Singleton.InvokeServerRpc(Singleton.TriggerSpawnBullet, weapon, position, rotation); }
public override void Start() { base.Start(); Debug.Log("Player controller start"); if (!CameraRoot) { CameraRoot = transform.Find("CameraRoot"); } if (!ModelRoot) { ModelRoot = transform.GetChild(0).gameObject; } if (!MovementComponent) { MovementComponent = GetComponent <PlayerMovementComponent>(); } if (!WeaponComponent) { WeaponComponent = GetComponentInChildren <PlayerWeaponComponent>(); } if (!CameraZoomComponent) { CameraZoomComponent = GetComponentInChildren <PlayerCameraZoomComponent>(true); } if (!DeathComponent) { DeathComponent = GetComponentInChildren <PlayerDeathComponent>(); } if (!ShieldComponent) { ShieldComponent = GetComponent <PlayerShieldComponent>(); } if (LightReportingComponent == null) { LightReportingComponent = GetComponentInChildren <IReportLight>() as MonoBehaviour; } if (!HUDScript) { HUDScript = SharedUtils.TryGetHudController() as RpgHUDController; } if (!HUDScript && AutoinitHud) { Instantiate <GameObject>(CoreUtils.LoadResource <GameObject>("UI/DefaultWorldHUD"), CoreUtils.GetUIRoot()); if (EventSystem.current == null) { Instantiate(CoreUtils.LoadResource <GameObject>("UI/DefaultEventSystem")); } HUDScript = SharedUtils.TryGetHudController() as RpgHUDController; if (HUDScript == null) { Debug.LogError("[PlayerController] Failed to initialize HUD properly"); } } MessageInterface = new QdmsMessageInterface(gameObject); LockPauseModule.CaptureMouse = true; SetDefaultPlayerView(); SetInitialViewModels(); ShieldComponent.Ref()?.HandleLoadStart(); TryExecuteOnComponents(component => component.Init(this)); Initialized = true; }