public Chopper() : base("chopper") { Color chopperColor = Color.Red; this.AddComponent(new ChopperController()); ProceduralShape body = new ProceduralCuboid(0.15f, 0.3f, 0.15f); body.SetColor(chopperColor); RenderGeometryComponent renderGeom = new RenderGeometryComponent(body); EffectRenderComponent effectComp = new EffectRenderComponent(EffectLoader.LoadSM5Effect("flatshaded")); ShadowCasterComponent shadowComp = new ShadowCasterComponent(); AddComponent(new PhysicsComponent(true, true, PhysicsMeshType.box)); AddComponent(renderGeom); AddComponent(effectComp); AddComponent(shadowComp); var rotorCuboid = new ProceduralCuboid(0.03f, 0.6f, 0.03f); rotorCuboid.SetColor(chopperColor); GameObject rotor = GameObjectFactory.CreateRenderableGameObjectFromShape(rotorCuboid, EffectLoader.LoadSM5Effect("flatshaded")); rotor.Transform.RelativeTransform.Translation = new Vector3(0, 0.2f, 0); rotor.AddComponent(new RotatorComponent(Vector3.Up, 0.1f)); rotor.AddComponent(new ShadowCasterComponent()); SystemCore.GameObjectManager.AddAndInitialiseGameObject(rotor); AddChild(rotor); }
public Carrier() : base() { Color carrierColor = Color.Red; this.AddComponent(new CarrierController()); ProceduralShape body = new ProceduralCuboid(1f, 2f, 0.5f); body.SetColor(carrierColor); RenderGeometryComponent renderGeom = new RenderGeometryComponent(body); EffectRenderComponent effectComp = new EffectRenderComponent(EffectLoader.LoadSM5Effect("flatshaded")); ShadowCasterComponent shadowComp = new ShadowCasterComponent(); AddComponent(new PhysicsComponent(true, true, PhysicsMeshType.box)); AddComponent(renderGeom); AddComponent(effectComp); AddComponent(shadowComp); var conTower = new ProceduralCuboid(0.25f, 0.25f, 0.35f); conTower.SetColor(carrierColor); GameObject conT = GameObjectFactory.CreateRenderableGameObjectFromShape(conTower, EffectLoader.LoadSM5Effect("flatshaded")); conT.Transform.RelativeTransform.Translation = new Vector3(0.8f, 0.8f, 0); conT.AddComponent(new ShadowCasterComponent()); SystemCore.GameObjectManager.AddAndInitialiseGameObject(conT); AddChild(conT); }
public MiniPlanet(Vector3 startPosition, float planetRadius, IModule noiseModule, int heightMapVertCount, float heightMapScale, Color landColor, Color oceanColour, bool useAtmosphere = false, float innerAtmosphereRatio = 0.97f, float outerAtmosphereRatio = 1.1f, float atmosphericScale = 30, float groundScale = 20, float verticalScale = 1f) { this.verticalScale = verticalScale; this.startPosition = startPosition; this.planetRadius = planetRadius; this.noiseModule = noiseModule; this.heightMapVertCount = heightMapVertCount; this.heightMapScale = heightMapScale; this.originalHeightMapScale = heightMapScale; this.terrainColor = landColor; this.oceanColour = oceanColour; this.useAtmosphere = useAtmosphere; this.innerAtmosphereRatio = innerAtmosphereRatio; this.outerAtmosphereRatio = outerAtmosphereRatio; this.atmosphericScale = atmosphericScale; this.groundScale = groundScale; if (!useAtmosphere) { planetEffect = EffectLoader.LoadSM5Effect("flatshaded").Clone(); GenerateGeometry(); } else { GenerateAtmosphereAndGeometry(innerAtmosphereRatio, outerAtmosphereRatio, atmosphericScale, groundScale); } childPlanets = new List <MiniPlanet>(); }
// 从XML中载入效果信息 public void LoadEffectFromXML() { // 为Effect类以及全部子类初始化静态变量 Effect InitEffect = new Effect(); InitEffect.SetMainGameController(MainGameController); string filePath = Application.dataPath + "/Resources/Effect.xml"; EffectLoader NewEffectLoader = new EffectLoader(); if (File.Exists(filePath)) { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(filePath); XmlNodeList node = xmlDoc.SelectSingleNode("Effect").ChildNodes; foreach (XmlElement EffectInfo in node) { Effect NewEffect = null; foreach (XmlElement EffectInfoItem in EffectInfo.ChildNodes) { if (EffectInfoItem.Name == "EffectType") { NewEffect = NewEffectLoader.GetNewEffectByType(EffectInfoItem.InnerText); } else if (EffectInfoItem.Name == "EffectSubInfo") { NewEffect.LoadInfoFromXML(EffectInfoItem); } } AddEffect(NewEffect); } } }
private void SetUpGameWorld() { //AtmosphericScatteringGround float radius = 6000; earth = new Planet("earth", new Vector3(0, 0, 0), NoiseGenerator.FastPlanet(radius), EffectLoader.LoadSM5Effect("flatshaded").Clone(), radius, Color.DarkSeaGreen.ChangeTone(-100), Color.SaddleBrown, Color.SaddleBrown.ChangeTone(-10), 0); //earth.AddAtmosphere(); SystemCore.GameObjectManager.AddAndInitialiseGameObject(earth); mouseCamera.SetPositionAndLook(new Vector3(0, radius + 200, 0), (float)Math.PI, (float)-Math.PI / 5); duneBuggyOne = new DuneBuggy(PlayerIndex.One, Color.Red, new Vector3(0, radius + 100, 0)); spaceShipOne = new SpaceShip(PlayerIndex.One, Color.Red, new Vector3(0, radius + 200, 0)); field = new GravitationalField(new InfiniteForceFieldShape(), Vector3.Zero.ToBepuVector(), 100000 * radius, 100); SystemCore.PhysicsSimulation.Add(field); spaceShipOne.Activate(); duneBuggyCamera = new DuneBuggyPlanetCamera(duneBuggyOne); spaceShipCamera = new SpaceShipCamera(spaceShipOne); }
public void Initalise() { currentVertices = new List <Vector3>(); SystemCore.ActiveScene.SetUpAmbientAndFullLightingRig(); SystemCore.ActiveScene.AddPointLight(new Vector3(0, 15, 0), Color.White, 20, 20, 1, PointLightNumber.One); SystemCore.ActiveScene.AddPointLight(new Vector3(0, -15, 0), Color.White, 20, 20, 1, PointLightNumber.Two); SystemCore.ActiveScene.AddPointLight(new Vector3(0, 0, 15), Color.White, 20, 20, 1, PointLightNumber.Three); SystemCore.ActiveScene.AddPointLight(new Vector3(0, 0, -15), Color.White, 20, 20, 1, PointLightNumber.Four); SystemCore.AddNewUpdateRenderSubsystem(new SkyDome(Color.LightGray, Color.Gray, Color.DarkBlue)); shapeBuilder = new ProceduralShapeBuilder(); CurrentMode = EditMode.Voxel; shapesToBake = new Dictionary <GameObject.GameObject, ProceduralShape>(); cameraGameObject = new GameObject.GameObject("camera"); cameraGameObject.AddComponent(new ComponentCamera()); cameraGameObject.Transform.SetPosition(new Vector3(0, 0, 20)); cameraGameObject.Transform.SetLookAndUp(new Vector3(0, 0, -1), new Vector3(0, 1, 0)); SystemCore.GameObjectManager.AddAndInitialiseGameObject(cameraGameObject); SystemCore.SetActiveCamera(cameraGameObject.GetComponent <ComponentCamera>()); mouseCursor = GameObjectFactory.CreateRenderableGameObjectFromShape(new ProceduralCube(), EffectLoader.LoadSM5Effect("flatshaded")); SystemCore.GameObjectManager.AddAndInitialiseGameObject(mouseCursor); AddGUI(); }
private void AddEffect(string filePath) { var copyPath = Path.Combine(Path.Combine(WindowUtility.MainForm.CurrentProjectDir, EffectDirPath), Path.GetFileName(filePath)); if (File.Exists(copyPath)) { MessageBox.Show(String.Format("{0}\n{1}", Utility.Language["AlreadyExistResource"], filePath)); return; } CheckResourceDir(); File.Copy(filePath, copyPath, true); foreach (string imagePath in Directory.GetFiles(Path.Combine(Path.GetDirectoryName(filePath), Path.GetFileNameWithoutExtension(filePath)))) { var newPath = Path.Combine(Path.Combine(Path.GetDirectoryName(copyPath), Path.GetFileNameWithoutExtension(filePath)), Path.GetFileName(imagePath)); Utility.RecursiveCreateFolder(newPath); File.Copy(imagePath, newPath, true); } CreateNode(EffectNode.Nodes, Path.GetFileName(filePath), NodeType.Effect); var dir = Path.GetDirectoryName(filePath); foreach (string fileName in EffectLoader.GetEffectReference(filePath)) { var path = Path.Combine(dir, fileName); if (File.Exists(path)) { AddEffect(path); } } }
private void GenerateFloorObjectFromFloorShapes(List <GameTile> tiles) { GameObject finalFloorShape = new GameObject(); ProceduralShape finalShape = new ProceduralShape(); ProceduralPlane plane = new ProceduralPlane(); plane.SetColor(Color.LightGray.ChangeTone(RandomHelper.GetRandomInt(-20, 20))); plane.Scale(tiles[0].Scale); plane.Translate(tiles[0].Center); finalShape = plane; AddLineBatch(plane); for (int i = 1; i < tiles.Count; i++) { ProceduralPlane newPlane = new ProceduralPlane(); newPlane.SetColor(Color.LightGray.ChangeTone(RandomHelper.GetRandomInt(-20, 20))); newPlane.Scale(tiles[i].Scale); newPlane.Translate(tiles[i].Center); finalShape = ProceduralShape.Combine(finalShape, newPlane); AddLineBatch(newPlane); } finalFloorShape.AddComponent(new RenderGeometryComponent(finalShape)); finalFloorShape.AddComponent(new EffectRenderComponent(EffectLoader.LoadSM5Effect("flatshaded"))); finalFloorShape.AddComponent(new ShadowCasterComponent()); SystemCore.GameObjectManager.AddAndInitialiseGameObject(finalFloorShape); }
public Skybox(GraphicsDevice device) { float x = 0.525731f; float z = 0.850651f; var vertices = new SkyboxVertex[12] { new SkyboxVertex(-x, 0f, z), new SkyboxVertex(x, 0f, z), new SkyboxVertex(-x, 0f, -z), new SkyboxVertex(x, 0f, -z), new SkyboxVertex(0f, z, x), new SkyboxVertex(0f, z, -x), new SkyboxVertex(0f, -z, x), new SkyboxVertex(0f, -z, -x), new SkyboxVertex(z, x, 0f), new SkyboxVertex(-z, x, 0f), new SkyboxVertex(z, -x, 0f), new SkyboxVertex(-z, -x, 0f), }; var indices = new int[60] { 1, 4, 0, 4, 9, 0, 4, 5, 9, 8, 5, 4, 1, 8, 4, 1, 10, 8, 10, 3, 8, 8, 3, 5, 3, 2, 5, 3, 7, 2, 3, 10, 7, 10, 6, 7, 6, 11, 7, 6, 0, 11, 6, 1, 0, 10, 1, 6, 11, 0, 9, 2, 11, 9, 5, 2, 9, 11, 2, 7 }; vertexBuffer = Buffer <SkyboxVertex> .New(device, vertices, BufferFlags.VertexBuffer); indexBuffer = Buffer <int> .New(device, indices, BufferFlags.IndexBuffer); skyboxEffect = EffectLoader.Load(@"Graphics/Shaders/Skybox.fx"); skyboxTex = Texture2D.Load(device, @"G:\Users\Athrun\Documents\Stratum\trunk\src\Stratum\WorldEngine\Earth\milkyWay.tif"); }
public Player(Color?color, bool manualControl = false) { var shape = new ProceduralSphere(10, 10); if (color.HasValue) { PlayerColor = color.Value; shape.SetColor(color.Value); } if (!manualControl) { this.AddComponent(new PlayerControlComponent()); } else { this.AddComponent(new ManualControlComponent()); } this.AddComponent(new RenderGeometryComponent(shape)); this.AddComponent(new EffectRenderComponent(EffectLoader.LoadSM5Effect("flatshaded"))); this.AddComponent(new PhysicsComponent(true, true, PhysicsMeshType.sphere)); this.AddComponent(new ShadowCasterComponent()); Health = maxHealth; Weapons = new List <Weapon>(); Weapons.Add(WeaponFactory.CreatePistol()); CurrentWeapon = Weapons[0]; PlayerLabel = new Label(GUIFonts.Fonts["neurosmall"], ""); SystemCore.GUIManager.AddControl(PlayerLabel); }
public RayAttack(Vector2D position) : base(position) { gridStartPosition = new Vector2D(position.X, Level.Current.Size.Height); gridExitPosition = new Vector2D(position.X, 0.0f); timeToPassGrid = gridExitPosition.DistanceTo(gridStartPosition) / AuraCannonSpeed; AddChild(EffectLoader.GetAvatarSkillEffect(AvatarAttack.DragonAuraCannon)); Orientation = Quaternion.CreateLookAt(gridExitPosition, gridStartPosition, -Vector3D.UnitZ); }
public Fireball(Vector2D gridPosition) : base(Vector3D.Zero) { targetPosition = new Vector3D(gridPosition); startPosition = new Vector3D(Randomizer.Current.Get(-1.0f, 1.0f), Randomizer.Current.Get(-1.0f, 1.0f), 5.0f); Position = startPosition; AddChild(EffectLoader.GetAvatarSkillEffect(AvatarAttack.DragonBreathOfFire)); }
public virtual void Initialize() { GraphicsDevice device = Engine.GraphicsContext.Device; wireFrame = EffectLoader.Load(@"World/Earth/Shaders/DeferredTerrain.fx"); vertexBuffer = Buffer <TerrainVertex> .New <TerrainVertex>(device, SharpDX.Utilities.SizeOf <TerrainVertex>() * 4 * 1000, BufferFlags.VertexBuffer, SharpDX.Direct3D11.ResourceUsage.Dynamic); }
private void GetAndAttachAttackEffect() { if (AttackType == AttackType.DirectShot) { return; } attackEffect = EffectLoader.GetAttackEffect(Type, AttackType); AddChild(attackEffect); }
public static void ApplyMaterialComponent(GameObject go, string materialName) { var mat = matDictionary[materialName]; Effect effect = EffectLoader.LoadSM5Effect(mat.ShaderName).Clone(); EffectRenderComponent effectComponent = new EffectRenderComponent(effect); go.AddComponent(mat); go.AddComponent(effectComponent); }
void OnEnable() { effectLoader = target as EffectLoader; effectLoader.Init(); if (effectLoader.effectObj) { SpriteAnim spriteAnim = effectLoader.effectObj.GetComponent <SpriteAnim>(); spriteAnim.Awake(); } }
private void GenerateAtmosphereAndGeometry(float innerAtmosphereRatio, float outerAtmosphereRatio, float atmosphericScale, float groundScale) { planetEffect = EffectLoader.LoadSM5Effect("AtmosphericScatteringGround").Clone(); groundScatteringHelper = new GroundScatteringHelper(planetEffect, planetRadius * outerAtmosphereRatio, planetRadius * innerAtmosphereRatio, groundScale); atmosphere = new Atmosphere(planetRadius * outerAtmosphereRatio, planetRadius * innerAtmosphereRatio, atmosphericScale); SystemCore.GameObjectManager.AddAndInitialiseGameObject(atmosphere); GenerateGeometry(); }
private void VisualizeAttackDependingOnType(Creep targetCreep) { if (attackEffect != null) { attackEffect.FireBurstOfAllEmitters(); //ncrunch: no coverage } if (AttackType == AttackType.DirectShot || Type == TowerType.Slice) { new InterpolatingProjectile(this, targetCreep, EffectLoader.GetProjectileEffect(Type, AttackType.DirectShot)); } }
private void ExplodeOnImpact() { EffectLoader.GetAvatarSkillHitEffect(AvatarAttack.DragonBreathOfFire). FireBurstAtRelativePosition(targetPosition); var creepsWithinRange = GetCreepsWithinRange(Position.GetVector2D(), BreathOfFireRange); foreach (var creep in creepsWithinRange) { creep.ReceiveAttack(TowerType.Fire, BreathOfFireDamage); } Dispose(); }
private static void CreateTestArena() { float arenaSize = 40f; ProceduralCuboid a = new ProceduralCuboid(arenaSize, 1, arenaSize / 5); a.Translate(new Vector3(0, arenaSize / 5, arenaSize)); a.SetColor(Color.LightGray); ProceduralShape b = a.Clone(); b.Translate(new Vector3(0, 0, -arenaSize * 2)); ProceduralShape c = ProceduralShape.Combine(a, b); ProceduralShape d = b.Clone(); d.Transform(MonoMathHelper.RotateNinetyDegreesAroundUp(true)); ProceduralShape e = ProceduralShape.Combine(c, d); var side2 = e.Clone(); var side3 = e.Clone(); var side4 = e.Clone(); e.Translate(new Vector3(-arenaSize * 2, 0, 0)); side2.Transform(MonoMathHelper.RotateHundredEightyDegreesAroundUp(true)); side2.Translate(new Vector3(arenaSize * 2, 0, 0)); side3.Transform(MonoMathHelper.RotateNinetyDegreesAroundUp(true)); side3.Translate(new Vector3(0, 0, arenaSize * 2)); side4.Transform(MonoMathHelper.RotateNinetyDegreesAroundUp(false)); side4.Translate(new Vector3(0, 0, -arenaSize * 2)); var final = ProceduralShape.Combine(e, side2, side3, side4); var arenaObject = GameObjectFactory.CreateRenderableGameObjectFromShape(final, EffectLoader.LoadSM5Effect("flatshaded")); arenaObject.AddComponent(new StaticMeshColliderComponent(arenaObject, final.GetVertices(), final.GetIndicesAsInt().ToArray(), Vector3.Zero)); arenaObject.AddComponent(new ShadowCasterComponent()); SystemCore.GameObjectManager.AddAndInitialiseGameObject(arenaObject); }
/// <summary> /// コンストラクタ /// </summary> /// <param name="device"></param> /// <param name="filename">エフェクトパス</param> /// <param name="resourceManager">リソースマネージャー</param> public EffectObject(PPDDevice device, Resource.ResourceManager resourceManager, PathObject filename) : base(device) { this.resourceManager = resourceManager; manager = EffectLoader.Load(filename, LoadFunc); if (manager == null) { MessageBox.Show("Failed to load effect:" + filename); return; } manager.Finish += manager_Finish; Alignment = EffectAlignment.Center; PlayType = EffectManager.PlayType.Once; }
private void CreateLocalWorldObject(double id, string type, out GameObject worldObject, out DoomComponent component) { var shape = CreateShape(type); worldObject = GameObjectFactory.CreateRenderableGameObjectFromShape( shape, EffectLoader.LoadSM5Effect("flatshaded")); component = new DoomComponent(); worldObject.AddComponent(component); worldObject.ID = (int)id; SystemCore.GameObjectManager.AddAndInitialiseGameObject(worldObject); worldObjects.Add(worldObject.ID, worldObject); }
private void AddPhysicsCube() { ProceduralCube shape = new ProceduralCube(); var gameObject = new GameObject(); gameObject.AddComponent(new RenderGeometryComponent(BufferBuilder.VertexBufferBuild(shape), BufferBuilder.IndexBufferBuild(shape), shape.PrimitiveCount)); gameObject.AddComponent(new EffectRenderComponent(EffectLoader.LoadSM5Effect("flatshaded"))); gameObject.AddComponent(new ShadowCasterComponent()); gameObject.AddComponent(new PhysicsComponent(true, true, PhysicsMeshType.box)); gameObject.Transform.SetPosition(RandomHelper.GetRandomVector3(10, 100)); SystemCore.GetSubsystem <GameObjectManager>().AddAndInitialiseGameObject(gameObject); }
public SimpleEnemy() { ProceduralCube shape = new ProceduralCube(); AddComponent(new RenderGeometryComponent(BufferBuilder.VertexBufferBuild(shape), BufferBuilder.IndexBufferBuild(shape), shape.PrimitiveCount)); AddComponent(new EffectRenderComponent(EffectLoader.LoadSM5Effect("flatshaded"))); AddComponent(new ShadowCasterComponent()); var physicsComponent = new PhysicsComponent(true, true, PhysicsMeshType.box); AddComponent(physicsComponent); AddComponent(new SimpleEnemyComponent(physicsComponent)); }
public Renderer() { IGraphicsContext context = Engine.GraphicsContext; int width = context.Device.BackBuffer.Width; int height = context.Device.BackBuffer.Height; sceneTarget = RenderTarget2D.New(context.Device, width, height, PixelFormat.R8G8B8A8.UNorm); texToTargetEffect = EffectLoader.Load(@"Graphics/Shaders/CopyTextureToTarget.fx"); gbuffer = context.GBuffer; font = FontLoader.Load(@"Graphics/Fonts/Arial16.xml"); fpsClock = new Stopwatch(); fpsText = string.Empty; }
private void AddEffectInfo() { var path = Path.Combine(WindowUtility.MainForm.CurrentProjectDir, Path.Combine("Resource", treeView1.SelectedNode.FullPath)); if (!File.Exists(path)) { return; } try { var refs = EffectLoader.GetEffectReference(path); var manager = EffectLoader.Load(path, false, (fn) => { }); AddInfo(Utility.Language["ReferenceEffect"], String.Join(", ", refs)); AddInfo(Utility.Language["FrameCount"], manager.FrameLength); AddInfo(Utility.Language["StartFrame"], manager.StartFrame); int layerCount = 0; var effects = new Queue <IEffect>(); effects.Enqueue(manager); while (effects.Count > 0) { var effect = effects.Dequeue(); if (effect.Effects.Count == 0) { layerCount++; } else { foreach (IEffect childEffect in effect.Effects) { effects.Enqueue(childEffect); } } } AddInfo(Utility.Language["LayerCount"], layerCount); AddInfo(Utility.Language["FPS"], manager.FPS); var effectPanel = new EffectPanel(); effectPanel.SetLang(); effectPanel.OpenFile(path); ChangePanel(effectPanel); } catch (Exception e) { MessageBox.Show(e.Message); } }
public static GameObject CreateGradientSkyDomeObject(int complexity) { ProceduralSphere sphere = new ProceduralSphere(complexity, complexity); sphere.Indices = sphere.Indices.Reverse().ToArray(); var ob = new GameObject(); ob.Name = "skydome"; ob.AddComponent(new RenderGeometryComponent(BufferBuilder.VertexBufferBuild(sphere), BufferBuilder.IndexBufferBuild(sphere), sphere.PrimitiveCount)); ob.AddComponent(new GradientSkyDomeRenderer(EffectLoader.LoadSM5Effect("skydome2"))); return(ob); }
public static GameObject CreateSkyDomeObject(Color color, int complexity, float scale) { ProceduralSphere sphere = new ProceduralSphere(complexity, complexity); sphere.Indices = sphere.Indices.Reverse().ToArray(); var ob = new GameObject(); ob.Name = "skydome"; ob.Transform.Scale = scale; sphere.SetColor(color); ob.AddComponent(new RenderGeometryComponent(BufferBuilder.VertexBufferBuild(sphere), BufferBuilder.IndexBufferBuild(sphere), sphere.PrimitiveCount)); ob.AddComponent(new SkyDomeRenderer(EffectLoader.LoadSM5Effect("skydome"))); return(ob); }
private static void PerformAuraCannonAttack(Vector2D position) { new RayAttack(position); Vector2D positionUp = position - Vector2D.UnitY; List <Creep> creeps = EntitiesRunner.Current.GetEntitiesOfType <Creep>(); foreach (var creep in creeps) { if (DistanceToLineSquared(creep, position, positionUp) <= AuraCannonRangeSquared) { creep.ReceiveAttack(TowerType.Fire, AuraCannonDamage); EffectLoader.GetAvatarSkillHitEffect(AvatarAttack.DragonAuraCannon). FireBurstAtRelativePosition(creep.Position); } } }
public RenderTestScreen() : base() { SystemCore.CursorVisible = false; fpsLabel.Visible = true; SystemCore.ActiveScene.SetUpBasicAmbientAndKey(); var effect = EffectLoader.LoadSM5Effect("FlatShaded"); mouseCamera = new MouseFreeCamera(new Vector3(0, 0, 0)); SystemCore.SetActiveCamera(mouseCamera); var shape = new ProceduralSphere(20, 20); shape.SetColor(SystemCore.ActiveColorScheme.Color5); //create 100 cubes, add collision and collision visualiser components, give them random position and velocity for (int i = 0; i < 100; i++) { var gameObject = new GameObject(); gameObject.AddComponent(new RenderGeometryComponent(BufferBuilder.VertexBufferBuild(shape), BufferBuilder.IndexBufferBuild(shape), shape.PrimitiveCount)); gameObject.AddComponent(new EffectRenderComponent(effect)); //gameObject.AddComponent(new BasicEffectRenderComponent(effect)); gameObject.Transform.SetPosition(RandomHelper.GetRandomVector3(Vector3.One * -100, Vector3.One * 100)); gameObject.AddComponent(new RotatorComponent(Vector3.Up)); SystemCore.GetSubsystem <GameObjectManager>().AddAndInitialiseGameObject(gameObject); gameObject.Transform.Scale = 5f; gameObject.Transform.Velocity = RandomHelper.GetRandomVector3(-Vector3.One, Vector3.One) * 0.01f; } AddInputBindings(); Model geoDesicModel = SystemCore.ContentManager.Load <Model>("Models/geodesic"); ProceduralShape geodesicShape = ModelMeshParser.GetShapeFromModelNoUVs(geoDesicModel); geodesicShape.Scale(20f); geodesicShape.InsideOut(); GameObject geoDesic = GameObjectFactory.CreateRenderableGameObjectFromShape(geodesicShape, EffectLoader.LoadSM5Effect("cockpitscreen")); SystemCore.GameObjectManager.AddAndInitialiseGameObject(geoDesic); }