private void SwitchToAppearanceByDistance(NameplateNode nameplate) { if (nameplate.nameplatePosition.sqrDistance < nameplate.nameplateOpacity.sqrConcealmentDistance) { nameplate.nameplateEsm.esm.ChangeState <NameplateStates.NameplateAppearanceState>(); } }
public void UpdateNameplateTransform(UpdateEvent e, NameplateNode nameplate, [JoinByTank] WeaponRendererNode weapon, [JoinByTank] TankNode remoteTank, [JoinAll] SingleNode <HUDWorldSpaceCanvas> worldSpaceHUD) { NameplateComponent nameplateComponent = nameplate.nameplate; Transform nameplateTransform = nameplateComponent.transform; Camera cachedCamera = nameplateComponent.CachedCamera; Vector3 position = weapon.weaponVisualRoot.transform.position; this.PositionAboveTank(position, nameplateTransform, nameplateComponent); this.AlignToCamera(nameplate, nameplateTransform, cachedCamera); WorldSpaceHUDUtil.ScaleToRealSize(worldSpaceHUD.component.canvas.transform, nameplateTransform, nameplateComponent.CachedCamera); nameplate.nameplatePosition.sqrDistance = (cachedCamera.transform.position - nameplateTransform.position).sqrMagnitude; }
public void ColorizeTeamNameplate(NodeAddedEvent e, [Combine] NameplateNode nameplate, [Context, JoinByUser] TeamUserNode teamUser, [Context, JoinByTeam] TeamColorNode teamColor, SingleNode <NameplateTeamColorComponent> nameplateTeamColor) { TeamColor color = teamColor.colorInBattle.TeamColor; if (color == TeamColor.BLUE) { nameplate.nameplate.Color = nameplateTeamColor.component.blueTeamColor; nameplate.nameplate.alwaysVisible = true; nameplate.nameplate.AddBlueHealthBar(nameplate.Entity); } else if (color == TeamColor.RED) { nameplate.nameplate.Color = nameplateTeamColor.component.redTeamColor; nameplate.nameplate.alwaysVisible = false; nameplate.nameplate.AddRedHealthBar(nameplate.Entity); } }
private void AlignToCamera(NameplateNode nameplate, Transform nameplateTransform, Camera camera) { Vector3 inCamPos = camera.WorldToScreenPoint(nameplateTransform.position); Vector3 previousPosition = nameplate.nameplatePosition.previousPosition; float x = Mathf.Round(inCamPos.x); float y = Mathf.Round(inCamPos.y); float z = inCamPos.z; if (this.NearlyEqual(inCamPos, previousPosition)) { inCamPos.x = Mathf.Round(previousPosition.x); inCamPos.y = Mathf.Round(previousPosition.y); } else { inCamPos.x = Mathf.Round(inCamPos.x); inCamPos.y = Mathf.Round(inCamPos.y); } nameplate.nameplatePosition.previousPosition = inCamPos; Vector3 position = new Vector3(x, y, z); nameplateTransform.position = camera.ScreenToWorldPoint(position); nameplateTransform.rotation = camera.transform.rotation; }
public void ToAppearanceState(NodeAddedEvent e, NameplateNode nameplate, [Context, JoinByTank] TankInvisibilityEffectDeactivationStateNode tank) { nameplate.nameplateEsm.esm.ChangeState <NameplateStates.NameplateAppearanceState>(); }
public void ToAppearanceState(NodeAddedEvent e, NameplateNode nameplate) { nameplate.nameplate.Alpha = 0f; nameplate.nameplateEsm.esm.ChangeState <NameplateStates.NameplateAppearanceState>(); }
public void ToInvisibilityEffectState(NodeAddedEvent e, TeamBattleNode teamBattle, [Context, JoinByBattle] SelfBattleUserInTeamModeNode selfBattleUser, [Context, JoinByTeam] TeamNode selfTeam, [Combine] NameplateNode nameplate, [Context, JoinByTank, Combine] TankInTeamInvisibilityEffectWorkingStateNode tank, [Context, JoinByTeam, Combine] TeamNode tankTeam) { if (!selfTeam.Entity.Equals(tankTeam.Entity)) { nameplate.nameplateEsm.esm.ChangeState <NameplateStates.NameplateInvisibilityEffectState>(); } }
public void ToInvisibilityEffectState(NodeAddedEvent e, DMBattleNode dm, [Context, JoinByBattle] SelfBattleUserNode selfBattleUser, [Combine] NameplateNode nameplate, [Context, JoinByTank, Combine] TankInvisibilityEffectWorkingStateNode tank) { nameplate.nameplateEsm.esm.ChangeState <NameplateStates.NameplateInvisibilityEffectState>(); }
public void DeleteNameplate(NodeRemoveEvent e, TankReadyForNameplateNode tank, [JoinByTank, Combine] NameplateNode nameplate) { nameplate.nameplateESM.Esm.ChangeState <NameplateStates.NameplateDeletionState>(); }
public void ColorizeDMNameplate(NodeAddedEvent e, [Combine] NameplateNode nameplate, [Context, JoinByUser] UserNode user, [JoinByUser] SingleNode <BattleUserComponent> battleUser, [JoinByBattle] SingleNode <DMComponent> battle, SingleNode <NameplateTeamColorComponent> nameplateTeamColor) { nameplate.nameplate.Color = !battleUser.Entity.HasComponent <SelfBattleUserComponent>() ? nameplateTeamColor.component.redTeamColor : nameplateTeamColor.component.blueTeamColor; nameplate.nameplate.alwaysVisible = false; nameplate.nameplate.AddRedHealthBar(nameplate.Entity); }
public void EnableHealthBarForEnemies(NodeAddedEvent e, [Context, Combine] RemoteTankNode remoteTank, [Context, JoinByTank] NameplateNode nameplate, [Context] SelfTankNode selfTank, [Context, JoinByTank] SonarEffectNode sonarEffect) { if (!remoteTank.Entity.IsSameGroup <TeamGroupComponent>(selfTank.Entity)) { nameplate.nameplate.Alpha = 1f; nameplate.nameplate.alwaysVisible = true; nameplate.healthBar.ShowHealthBar(); } }
public void DisableHealthBarsForSpectator(NodeAddedEvent e, [Context, Combine] RemoteTankNode remoteTank, [Context, JoinByTank] NameplateNode nameplate, [Context] SelfSpectatorNode spectator) { if (!spectator.Entity.HasComponent <UserAdminComponent>() && !spectator.Entity.HasComponent <UserTesterComponent>()) { nameplate.healthBar.HideHealthBar(); } nameplate.nameplate.Alpha = 1f; nameplate.nameplate.alwaysVisible = true; }
public void DisableHealthBarOnSpawn(NodeAddedEvent e, [Context, Combine] RemoteTankNode remoteTank, [Context, JoinByTank] NameplateNode nameplate, [Context] SelfTankNode selfTank, [JoinByTank] Optional <SonarEffectNode> sonarEffect) { if (!sonarEffect.IsPresent() && !remoteTank.Entity.IsSameGroup <TeamGroupComponent>(selfTank.Entity)) { nameplate.healthBar.HideHealthBar(); } }
public void DisableHealthBarForEnemies(NodeRemoveEvent e, SonarEffectNode sonarEffect, [Context, JoinByTank] SelfTankNode selfTank, [Context, Combine] RemoteTankNode remoteTank, [Context, JoinByTank] NameplateNode nameplate) { if (!remoteTank.Entity.IsSameGroup <TeamGroupComponent>(selfTank.Entity)) { nameplate.nameplate.alwaysVisible = false; nameplate.healthBar.HideHealthBar(); } }