/// <summary> /// Registers a callback for converting a <see cref="Water"/>s to <see cref="OmegaEngine.Graphics.Renderables.Water"/> representations. /// </summary> private void RegisterWater() { RenderablesSync.Register <Water, OmegaEngine.Graphics.Renderables.Water>( element => { var representation = new OmegaEngine.Graphics.Renderables.Water(Engine, new SizeF(element.Size.X, element.Size.Y)) { Name = element.Name, // NOTE: Height must be set before child views are initialized Position = Terrain.Position + new DoubleVector3(0, element.Height, 0) }; representation.SetupChildViews(View); return(representation); }, (element, representation) => representation.Position = Terrain.Position + element.EnginePosition); }
/// <inheritdoc/> protected override void RegisterRenderablesSync() { base.RegisterRenderablesSync(); RenderablesSync.Register( (Waypoint waypoint) => new Model(XMesh.Get(Engine, "Engine/Waypoint.x")) { Scale = new Vector3(100) }, UpdateRepresentation); RenderablesSync.Register( (Trigger trigger) => { var area = Model.Cylinder(Engine, XTexture.Get(Engine, "flag.png"), radiusBottom: trigger.Range, radiusTop: trigger.Range, length: 150); area.Rotation = Quaternion.RotationYawPitchRoll(0, (float)Math.PI / 2, 0); area.Alpha = 160; return(area); }, UpdateRepresentation); }