protected override void preInitOnScene() { ammunitionModel = sceneMgr.CreateEntity("Torpedo" + ammunitionID.ToString(), "Torpedo.mesh"); ammunitionNode = sceneMgr.RootSceneNode.CreateChildSceneNode("Torpedo" + ammunitionID.ToString(), hiddenPosition); Vector3 oVector = new Vector3(0, 0, -1); innerNode = ammunitionNode.CreateChildSceneNode("TorpedoInner" + ammunitionID.ToString(), new Vector3(0, 0, 0)); innerNode.AttachObject(ammunitionModel); torpedoAnimation = new ConstRotateNodeAnimation(innerNode, 75, oVector, "ConstRot"); torpedoAnimation.Enabled = true; torpedoAnimation.Looped = true; if (EngineConfig.DisplayingMinimap) { minimapItem = new MinimapItem(ammunitionNode, framework.MinimapMgr, "Cube.mesh", ColourValue.White, ammunitionModel); minimapItem.ScaleOverride = new Vector2(4, 2); minimapItem.Refresh(); minimapItem.Hide(); } ammunitionNode.SetVisible(false); innerNode.SetVisible(false); }
public override void Dispose() { if (EngineConfig.DisplayingMinimap && minimapItem != null) { minimapItem.Dispose(); minimapItem = null; } if (innerNode != null) { innerNode.DetachAllObjects(); innerNode.Dispose(); innerNode = null; } if (ammunitionModel != null) { ammunitionModel.Dispose(); ammunitionModel = null; } missileAnimation = null; if (ammunitionNode != null) { ammunitionNode.DetachAllObjects(); ammunitionNode.Dispose(); ammunitionNode = null; } }
public override void Dispose() { if (EngineConfig.DisplayingMinimap) { minimapItem.Dispose(); minimapItem = null; } innerNode.DetachAllObjects(); innerNode.Dispose(); innerNode = null; ammunitionModel.Dispose(); ammunitionModel = null; torpedoAnimation = null; ammunitionNode.DetachAllObjects(); ammunitionNode.Dispose(); ammunitionNode = null; }
protected override void preInitOnScene() { ammunitionModel = sceneMgr.CreateEntity("BunkerShell" + ammunitionID.ToString(), "FlakBullet.mesh"); ammunitionNode = sceneMgr.RootSceneNode.CreateChildSceneNode("BunkerShell" + ammunitionID.ToString(), hiddenPosition); Vector3 oVector = new Vector3(0, 0, -1); innerNode = ammunitionNode.CreateChildSceneNode("BunkerShellInner" + ammunitionID.ToString(), new Vector3(0, 0, 0)); innerNode.AttachObject(ammunitionModel); missileAnimation = new ConstRotateNodeAnimation(innerNode, 75, oVector, "ConstRot"); missileAnimation.Enabled = true; missileAnimation.Looped = true; ammunitionNode.SetVisible(false); innerNode.SetVisible(false); }
//Deprecated protected void initOnScene() { ammunitionModel = sceneMgr.CreateEntity("Torpedo" + ammunitionID.ToString(), "Torpedo.mesh"); ammunitionNode = sceneMgr.RootSceneNode.CreateChildSceneNode("Torpedo" + ammunitionID.ToString(), new Vector3(0, 0, 0)); Vector3 oVector = new Vector3(0, 0, -1); innerNode = ammunitionNode.CreateChildSceneNode("TorpedoInner" + ammunitionID.ToString(), new Vector3(0, 0, 0)); innerNode.AttachObject(ammunitionModel); torpedoAnimation = new ConstRotateNodeAnimation(innerNode, 75, oVector, "ConstRot"); torpedoAnimation.Enabled = false; // wy³¹czam obroty torpedoAnimation.Looped = true; if (ammunition.Direction == Direction.Right) { ammunitionNode.Orientation = new Quaternion(Math.HALF_PI, Vector3.NEGATIVE_UNIT_Y); } else { ammunitionNode.Orientation = new Quaternion(Math.HALF_PI, Vector3.UNIT_Y); } ammunitionNode.Orientation *= new Quaternion((float)ammunition.Angle, Vector3.UNIT_X); if (EngineConfig.DisplayingMinimap) { minimapItem = new MinimapItem(ammunitionNode, framework.MinimapMgr, "Cube.mesh", ColourValue.White, ammunitionModel); minimapItem.ScaleOverride = new Vector2(4, 2); minimapItem.Refresh(); } refreshPosition(); }
protected override void initOnScene() { if (tileViews != null && tileViews.Count != 9) { return; } storagePlanes = new List <PlaneView>(); arrestingWires = new List <SceneNode>(); // CARRIER if (EngineConfig.LowDetails) { compositeModel = sceneMgr.CreateEntity(name, "Carrier_low.mesh"); } else { compositeModel = sceneMgr.CreateEntity(name, "Carrier.mesh"); // compositeModel = sceneMgr.CreateEntity(name, "Carrier_low.mesh"); } compositeModel.CastShadows = EngineConfig.ShadowsQuality > 0; carrierAerial1 = sceneMgr.CreateEntity(name + "Aerial1", "Aerial1.mesh"); carrierAerial2 = sceneMgr.CreateEntity(name + "Aerial2", "Aerial2.mesh"); // compositeModel.SetMaterialName("Carrier"); mainNode.AttachObject(compositeModel); if (EngineConfig.LowDetails) { carrierHangar = sceneMgr.CreateEntity(name + "Hangar", "HangarFloor_low.mesh"); } else { carrierHangar = sceneMgr.CreateEntity(name + "Hangar", "HangarFloor.mesh"); } carrierHangar.CastShadows = false; carrierHangarNode = mainNode.CreateChildSceneNode(name + "HangarNode", Vector3.ZERO); carrierHangarNode.AttachObject(carrierHangar); carrierAerial1Node = mainNode.CreateChildSceneNode(name + "Aerial1Node", new Vector3(-8.6f, 9.1f, 5.7f - 47.8f)); carrierAerial1Node.AttachObject(carrierAerial1); carrierAerial2Node = mainNode.CreateChildSceneNode(name + "Aerial2Node", new Vector3(-10.7f, 4.0f, 12.6f - 47.8f)); carrierAerial2Node.AttachObject(carrierAerial2); Vector3 oVector = new Vector3(0, 1, 0); aerialAnimation1 = new ConstRotateNodeAnimation(carrierAerial1Node, 40, oVector, "ConstRot"); aerialAnimation1.Enabled = true; aerialAnimation1.Looped = true; aerialAnimation2 = new ConstRotateNodeAnimation(carrierAerial2Node, -15, oVector, "ConstRot"); aerialAnimation2.Enabled = true; aerialAnimation2.Looped = true; EffectsManager.Singleton.RectangularEffect(sceneMgr, mainNode, name + "lWaterTrailNode", EffectsManager.EffectType.WATERTRAIL, new Vector3(-4.6f, -5.6f, -41.0f - 47.5f), new Vector2(17, 12), new Quaternion(new Radian(new Degree(90)), Vector3.NEGATIVE_UNIT_Y), true); EffectsManager.Singleton.RectangularEffect(sceneMgr, mainNode, name + "rWaterTrailNode", EffectsManager.EffectType.WATERTRAIL, new Vector3(4.6f, -5.6f, -41.0f - 47.5f), new Vector2(17, 12), new Quaternion(new Radian(new Degree(90)), Vector3.NEGATIVE_UNIT_Y), true); adEntity = sceneMgr.CreateEntity(name + "AdEntity", "TwoSidedPlane.mesh"); adNode = mainNode.CreateChildSceneNode(name + "AdNode", new Vector3(0.0f, 9.1f, 5.7f - 47.8f)); adNode.AttachObject(adEntity); adNode.SetVisible(false); float adjust = LevelView.TileWidth * 1.7f; // CARRIER if (!backgroundDummy) { InitArrestingWires(); AddCrew(); InitLights(new ColourValue(0.9f, 0.2f, 0.0f), new ColourValue(0.0f, 0.2f, 0.9f)); CrewStatePlaneOnCarrier(); mainNode.Translate(new Vector3(UnitConverter.LogicToWorldUnits(firstTileIndex), 5, -1.0f)); mainNode.SetDirection(Vector3.UNIT_X); // mainNode.Roll(-Math.HALF_PI / 6.0f); if (EngineConfig.DisplayingMinimap) { minimapItem = new MinimapItem(mainNode, framework.MinimapMgr, "CarrierMinimap.mesh", new ColourValue(0.162f, 0.362f, 0.59f), compositeModel); minimapItem.ScaleOverride = new Vector2(0, 15); // stala wysokosc, niezale¿na od bounding box minimapItem.Refresh(); } } else { initFlag(new Vector3(0, 0, -45)); mainNode.Translate(new Vector3(-800.0f, 5, UnitConverter.LogicToWorldUnits(firstTileIndex) + 1000)); InitLights(new ColourValue(0.9f, 0.2f, 0.0f), new ColourValue(0.0f, 0.9f, 0.1f)); } }