public override void ClientUpdate(Timestep timestep, Entity entity, AvatarController avatarController, EntityUniverseFacade facade) { Universe = facade; if (Universe == null) { return; } var fail = true; if (entity.Logic is ChargeableTileEntityLogic logic) { if (Universe.ReadTile(logic.Location, TileAccessFlags.None, out var tile)) { if (tile.Configuration.Components.Select <ChargeableComponent>().Any()) { if (ClientHook.NameTags.Contains(logic.Location)) { if (NameTag == null) { NameTag = ClientContext.NameTagRenderer.RegisterNameTag(entity.Id); } NameTag.Setup(entity.Physics.Position, Constants.NameTagLowerOffset, logic.TilePower.CurrentCharge.ToString("N0") + " / " + logic.TilePower.MaxCharge.ToString("N0"), false, false, false); fail = false; } } } if (entity.Logic is InnerCableTileEntityLogic innerLogic) { if (ClientHook.NameTags.Contains(innerLogic.Location)) { if (NameTag == null) { NameTag = ClientContext.NameTagRenderer.RegisterNameTag(entity.Id); } NameTag.Setup(entity.Physics.Position, Constants.NameTagLowerOffset, innerLogic.TilePower.CurrentCharge.ToString("N0") + " / " + innerLogic.TilePower.MaxCharge.ToString("N0"), false, false, false); fail = false; } } if (fail) { if (NameTag != null) { ClientContext.NameTagRenderer.Unregister(NameTag); NameTag = null; } } } }
protected virtual void UpdateNameTag(Entity entity) { if (entity.Logic is BotEntityLogic logic) { NameTag?.Setup(entity.Physics.Position, Constants.NameTagDefaultOffset, $"{logic.Owner} ({ClientContext.LanguageDatabase.GetTranslationString(logic.Mode)})", false, false, true); } }
public override void ClientUpdate(Timestep timestep, Entity entity, AvatarController avatarController, EntityUniverseFacade facade) { var fail = true; var runBase = true; if (entity.Logic is InnerCableTileEntityLogic logic) { if (ClientHook.ShowCables.Contains(logic.Location)) { if (NameTag == null) { NameTag = ClientContext.NameTagRenderer.RegisterNameTag(entity.Id); ThisClassMade = true; } NameTag.Setup(logic.Location.ToTileCenterVector3D(), Constants.NameTagLowerOffset, ClientContext.LanguageDatabase.GetTranslationString(logic.Tile + ".name"), false, false, false); fail = false; runBase = false; } if (fail) { if (NameTag != null && ThisClassMade) { ClientContext.NameTagRenderer.Unregister(NameTag); NameTag.Dispose(); NameTag = null; runBase = false; ThisClassMade = false; } } } if (runBase) { base.ClientUpdate(timestep, entity, avatarController, facade); } }
public override void ClientUpdate(Timestep timestep, Entity entity, AvatarController avatarController, EntityUniverseFacade facade) { var fail = true; if (entity.Logic is SolarPanelTileEntityLogic logic) { if (facade.ReadTile(logic.Location, TileAccessFlags.None, out var tile)) { if (tile.Configuration.Components.Select <ChargeableComponent>().Any()) { if (ClientHook.NameTags.Contains(logic.Location)) { if (NameTag == null) { NameTag = ClientContext.NameTagRenderer.RegisterNameTag(entity.Id); } if (_efficienyTag == null) { _efficienyTag = ClientContext.NameTagRenderer.RegisterNameTag(entity.Id); } if (_chargeTag == null) { _chargeTag = ClientContext.NameTagRenderer.RegisterNameTag(entity.Id); } if (facade.TryGetLightPower(logic.Location, out var efficiency, out _, out _)) { var pos = Constants.NameTagLowerOffset; NameTag.Setup(entity.Physics.Position, new Vector3D(pos.X, pos.Y + 0.2, pos.Z), logic.TilePower.CurrentCharge.ToString("N0") + " / " + logic.TilePower.MaxCharge.ToString("N0"), false, false, false); _efficienyTag.Setup(entity.Physics.Position, new Vector3D(pos.X, pos.Y, pos.Z), efficiency + "%", false, false, false); _chargeTag.Setup(entity.Physics.Position, new Vector3D(pos.X, pos.Y - 0.2, pos.Z), logic.Generated + ClientContext.LanguageDatabase.GetTranslationString("nimbusfox.powerapi.perCycle"), false, false, false); fail = false; } } } } if (fail) { if (NameTag != null) { ClientContext.NameTagRenderer.Unregister(NameTag); NameTag = null; } if (_efficienyTag != null) { ClientContext.NameTagRenderer.Unregister(_efficienyTag); _efficienyTag = null; } if (_chargeTag != null) { ClientContext.NameTagRenderer.Unregister(_chargeTag); _chargeTag = null; } } } }