public PlaneEntity InsertPlaneEntity(PlaneEntity planeEntity) { PlaneEntity plane = context.Planes.Add(planeEntity); context.SaveChanges(); return(plane); }
public PlaneEntity toEntity(PlaneDto planeDto) { PlaneEntity plane = new PlaneEntity(); plane.PlaneId = planeDto.PlaneId; plane.SerialNumber = planeDto.SerialNumber; plane.AirportId = planeDto.AirportId ?? null; return(plane); }
private void Setup(CharacterEntity character, PlaneEntity vehicle) { DataStream ds = new DataStream(); DataWriter dw = new DataWriter(ds); dw.WriteLong(character.EID); dw.WriteByte(2); // TODO: Enum? dw.WriteLong(vehicle.EID); Data = ds.ToArray(); }
private void Setup(CharacterEntity character, PlaneEntity vehicle) { DataStream ds = new DataStream(); DataWriter dw = new DataWriter(ds); dw.WriteLong(character.EID); dw.WriteByte((byte)VehicleType.PLANE); dw.WriteFloat(vehicle.ViewBackMultiplier); dw.WriteLong(vehicle.EID); Data = ds.ToArray(); }
public void DeletePlaneEntity(int id) { PlaneEntity pass = new PlaneEntity() { PlaneId = id }; context.Planes.Attach(pass); context.Planes.Remove(pass); context.SaveChanges(); }
public virtual void Smash() { SmashPaint(); animationState = PlaneEntity.GetAnimationState("die"); animationState.Loop = false; animationState.Enabled = true; animationMgr.disableIdle(); SetBladeVisibility(false); }
internal override IGeometryEntity[] IntersectWithPlane(Plane plane) { ILineEntity line = PlaneEntity.IntersectWith(plane.PlaneEntity); if (null != line) { return new IGeometryEntity[] { line } } ; return(null); }
protected virtual void initOnScene() { if (EngineConfig.SoundEnabled) { planePassSound = SoundManager3D.Instance.CreateSoundEntity(SoundManager3D.C_PLANE_PASS, this.planeNode, false, false); } initBlade(); initWheels(); initAnimationManager(); animationState = PlaneEntity.GetAnimationState("manual"); }
/// <summary> /// /// </summary> /// <param name="point"></param> /// <param name="direction"></param> /// <returns></returns> public Point Project(Point point, Vector direction) { if (point == null || direction == null || direction.IsZeroVector()) { return(null); } IPointEntity projectedPt = PlaneEntity.Project(point.PointEntity, direction.IVector); if (null == projectedPt) { return(null); } return(projectedPt.ToPoint(true, this)); }
public virtual void Restore() { RestorePaint(); animationState = PlaneEntity.GetAnimationState("manual"); animationState.Loop = false; animationState.Enabled = true; SetBladeVisibility(true); EffectsManager.Singleton.NoSmoke(sceneMgr, OuterNode, EffectsManager.SmokeType.LIGHTSMOKE); EffectsManager.Singleton.NoSmoke(sceneMgr, OuterNode, EffectsManager.SmokeType.NORMAL); ResetWheels(); OuterNode.ResetOrientation(); InnerNode.ResetOrientation(); animationMgr.disableAll(); animationMgr.enableBlade(); }
public void OpenWings(PlayerEntity player) { PlaneEntity plane = new PlaneEntity("planeifound", player.TheRegion); // TODO: Player-wings model! plane.SetMass(100); plane.SetPosition(player.GetPosition()); player.TheRegion.SpawnEntity(plane); plane.SetOrientation(Quaternion.CreateFromAxisAngle(Vector3.UnitX, -90.0 * Utilities.PI180)); plane.DriverSeat.Accept(player); player.Wings = plane; // JUST IN CASE: Enforce the correct default orientation! // TODO: Make this not needed! player.TheRegion.TheWorld.Schedule.ScheduleSyncTask(() => { plane.SetOrientation(Quaternion.CreateFromAxisAngle(Vector3.UnitX, -90.0 * Utilities.PI180)); }, 0.05); }
private Polygon CreatePlaneVisuals(double size, bool persist) { // to display a plane we would be required to draw a rectangle in the plane // // /* * given origin, X & Y * we want to evaluate the four corner points based on size * * where o is the origin of the plane * * Y | | | v1 ______________ v2 | | | | | | | | o | | | | | v4 |______________| v3 | | X |_________________________________________ * */ ICoordinateSystemEntity coordSys = PlaneEntity.GetCoordinateSystem(); IPointEntity orig = coordSys.Origin; var xNorm = new Vector(coordSys.XAxis).Normalize().MultiplyBy(size / 2.0); var yNorm = new Vector(coordSys.YAxis).Normalize().MultiplyBy(size / 2.0); var dirv1 = yNorm - xNorm; var dirv2 = yNorm + xNorm; var dirv3 = dirv1.Negate(); var dirv4 = dirv2.Negate(); Point[] positions = { orig.Add(dirv1).ToPoint(false, null), orig.Add(dirv2).ToPoint(false, null), orig.Add(dirv3).ToPoint(false, null), orig.Add(dirv4).ToPoint(false, null) }; return(new Polygon(positions, persist)); }
internal override IPointEntity ClosestPointTo(IPointEntity otherPoint) { return(PlaneEntity.Project(otherPoint, Normal.IVector)); }
public override void Execute(PlayerCommandEntry entry) { if (entry.InputArguments.Count <= 0) { ShowUsage(entry); return; } string arg0 = entry.InputArguments[0]; if (arg0 == "spawnCar" && entry.InputArguments.Count > 1) { CarEntity ve = new CarEntity(entry.InputArguments[1], entry.Player.TheRegion); ve.SetPosition(entry.Player.GetEyePosition() + entry.Player.ForwardVector() * 5); entry.Player.TheRegion.SpawnEntity(ve); } else if (arg0 == "spawnHeli" && entry.InputArguments.Count > 1) { HelicopterEntity ve = new HelicopterEntity(entry.InputArguments[1], entry.Player.TheRegion); ve.SetPosition(entry.Player.GetEyePosition() + entry.Player.ForwardVector() * 5); entry.Player.TheRegion.SpawnEntity(ve); } else if (arg0 == "spawnPlane" && entry.InputArguments.Count > 1) { PlaneEntity ve = new PlaneEntity(entry.InputArguments[1], entry.Player.TheRegion); ve.SetPosition(entry.Player.GetEyePosition() + entry.Player.ForwardVector() * 5); entry.Player.TheRegion.SpawnEntity(ve); } else if (arg0 == "heloTilt" && entry.InputArguments.Count > 1) { if (entry.Player.CurrentSeat != null && entry.Player.CurrentSeat.SeatHolder is HelicopterEntity) { ((HelicopterEntity)entry.Player.CurrentSeat.SeatHolder).TiltMod = Utilities.StringToFloat(entry.InputArguments[1]); } } else if (arg0 == "shortRange") { entry.Player.ViewRadiusInChunks = 3; entry.Player.ViewRadExtra2 = 0; entry.Player.ViewRadExtra2Height = 0; entry.Player.ViewRadExtra5 = 0; entry.Player.ViewRadExtra5Height = 0; } else if (arg0 == "countEnts") { entry.Player.SendMessage(TextChannel.COMMAND_RESPONSE, "Ents: " + entry.Player.TheRegion.Entities.Count); } else if (arg0 == "fly") { if (entry.Player.IsFlying) { entry.Player.Unfly(); entry.Player.SendMessage(TextChannel.COMMAND_RESPONSE, "Unflying!"); } else { entry.Player.Fly(); entry.Player.SendMessage(TextChannel.COMMAND_RESPONSE, "Flying!"); } } else if (arg0 == "playerDebug") { entry.Player.SendMessage(TextChannel.COMMAND_RESPONSE, "YOU: " + entry.Player.Name + ", tractionForce: " + entry.Player.CBody.TractionForce + ", mass: " + entry.Player.CBody.Body.Mass + ", radius: " + entry.Player.CBody.BodyRadius + ", hasSupport: " + entry.Player.CBody.SupportFinder.HasSupport + ", hasTraction: " + entry.Player.CBody.SupportFinder.HasTraction + ", isAFK: " + entry.Player.IsAFK + ", timeAFK: " + entry.Player.TimeAFK); } else if (arg0 == "playBall") { // TODO: Item for this? ModelEntity me = new ModelEntity("sphere", entry.Player.TheRegion); me.SetMass(5); me.SetPosition(entry.Player.GetCenter() + entry.Player.ForwardVector()); me.mode = ModelCollisionMode.SPHERE; me.SetVelocity(entry.Player.ForwardVector()); me.SetBounciness(0.95f); entry.Player.TheRegion.SpawnEntity(me); } else if (arg0 == "playDisc") { // TODO: Item for this? ModelEntity me = new ModelEntity("flyingdisc", entry.Player.TheRegion); me.SetMass(5); me.SetPosition(entry.Player.GetCenter() + entry.Player.ForwardVector() * 1.5f); // TODO: 1.5 -> 'reach' value? me.mode = ModelCollisionMode.AABB; me.SetVelocity(entry.Player.ForwardVector() * 25f); // TODO: 25 -> 'strength' value? me.SetAngularVelocity(new Location(0, 0, 10)); entry.Player.TheRegion.SpawnEntity(me); entry.Player.TheRegion.AddJoint(new JointFlyingDisc(me)); } else if (arg0 == "secureMovement") { entry.Player.SecureMovement = !entry.Player.SecureMovement; entry.Player.SendLanguageData(TextChannel.COMMAND_RESPONSE, "voxalia", "commands.player.devel.secure_movement", entry.Player.Network.GetLanguageData("voxalia", "common." + (entry.Player.SecureMovement ? "true" : "false"))); if (entry.Player.SecureMovement) { entry.Player.Flags &= ~YourStatusFlags.INSECURE_MOVEMENT; } else { entry.Player.Flags |= YourStatusFlags.INSECURE_MOVEMENT; } entry.Player.SendStatus(); } else if (arg0 == "chunkDebug") { Location posBlock = entry.Player.GetPosition().GetBlockLocation(); double h = entry.Player.TheRegion.Generator.GetHeight(entry.Player.TheRegion.TheWorld.Seed, entry.Player.TheRegion.TheWorld.Seed2, entry.Player.TheRegion.TheWorld.Seed3, entry.Player.TheRegion.TheWorld.Seed4, entry.Player.TheRegion.TheWorld.Seed5, (double)posBlock.X, (double)posBlock.Y, (double)posBlock.Z, out Biome biome); BlockInternal bi = entry.Player.TheRegion.GetBlockInternal_NoLoad((entry.Player.GetPosition() + new Location(0, 0, -0.05f)).GetBlockLocation()); entry.Player.SendMessage(TextChannel.COMMAND_RESPONSE, "Mat: " + bi.Material + ", data: " + ((int)bi.BlockData) + ", locDat: " + ((int)bi.BlockLocalData) + ", Damage: " + bi.Damage + ", Paint: " + bi.BlockPaint + ", xp: " + BlockShapeRegistry.BSD[bi.BlockData].OccupiesXP() + ", xm: " + BlockShapeRegistry.BSD[bi.BlockData].OccupiesXM() + ", yp: " + BlockShapeRegistry.BSD[bi.BlockData].OccupiesYP() + ", ym: " + BlockShapeRegistry.BSD[bi.BlockData].OccupiesYM() + ", zp: " + BlockShapeRegistry.BSD[bi.BlockData].OccupiesTOP() + ", zm: " + BlockShapeRegistry.BSD[bi.BlockData].OccupiesBOTTOM()); double temp = entry.Player.TheRegion.Generator.GetBiomeGen().GetTemperature(entry.Player.TheRegion.TheWorld.Seed2, entry.Player.TheRegion.TheWorld.Seed3, (double)posBlock.X, (double)posBlock.Y); double down = entry.Player.TheRegion.Generator.GetBiomeGen().GetDownfallRate(entry.Player.TheRegion.TheWorld.Seed3, entry.Player.TheRegion.TheWorld.Seed4, (double)posBlock.X, (double)posBlock.Y); entry.Player.SendMessage(TextChannel.COMMAND_RESPONSE, "Height: " + h + ", temperature: " + temp + ", downfallrate: " + down + ", biome yield: " + biome.GetName()); BlockUpperArea.TopBlock top = entry.Player.TheRegion.GetHighestBlock(posBlock); entry.Player.SendMessage(TextChannel.COMMAND_RESPONSE, "Material: " + top.BasicMat + ", height: " + top.Height); } else if (arg0 == "structureSelect" && entry.InputArguments.Count > 1) { string arg1 = entry.InputArguments[1]; entry.Player.Items.GiveItem(new ItemStack("structureselector", arg1, entry.Player.TheServer, 1, "items/admin/structure_selector", "Structure Selector", "Selects and creates a '" + arg1 + "' structure!", System.Drawing.Color.White, "items/admin/structure_selector", false, 0)); } else if (arg0 == "structureCreate" && entry.InputArguments.Count > 1) { string arg1 = entry.InputArguments[1]; entry.Player.Items.GiveItem(new ItemStack("structurecreate", arg1, entry.Player.TheServer, 1, "items/admin/structure_create", "Structure Creator", "Creates a '" + arg1 + "' structure!", System.Drawing.Color.White, "items/admin/structure_create", false, 0)); } else if (arg0 == "musicBlock" && entry.InputArguments.Count > 3) { int arg1 = Utilities.StringToInt(entry.InputArguments[1]); double arg2 = Utilities.StringToFloat(entry.InputArguments[2]); double arg3 = Utilities.StringToFloat(entry.InputArguments[3]); entry.Player.Items.GiveItem(new ItemStack("customblock", entry.Player.TheServer, 1, "items/custom_blocks/music_block", "Music Block", "Plays music!", System.Drawing.Color.White, "items/custom_blocks/music_block", false, 0, new KeyValuePair <string, TemplateObject>("music_type", new IntegerTag(arg1)), new KeyValuePair <string, TemplateObject>("music_volume", new NumberTag(arg2)), new KeyValuePair <string, TemplateObject>("music_pitch", new NumberTag(arg3))) { Datum = new BlockInternal((ushort)Material.DEBUG, 0, 0, 0).GetItemDatum() }); } else if (arg0 == "structurePaste" && entry.InputArguments.Count > 1) { string arg1 = entry.InputArguments[1]; entry.Player.Items.GiveItem(new ItemStack("structurepaste", arg1, entry.Player.TheServer, 1, "items/admin/structure_paste", "Structor Paster", "Pastes a ;" + arg1 + "; structure!", System.Drawing.Color.White, "items/admin/structure_paste", false, 0)); } else if (arg0 == "testPerm" && entry.InputArguments.Count > 1) { entry.Player.SendMessage(TextChannel.COMMAND_RESPONSE, "Testing " + entry.InputArguments[1] + ": " + entry.Player.HasPermission(entry.InputArguments[1])); } else if (arg0 == "spawnTree" && entry.InputArguments.Count > 1) { entry.Player.TheRegion.SpawnTree(entry.InputArguments[1].ToLowerFast(), entry.Player.GetPosition(), null); } else if (arg0 == "spawnTarget") { TargetEntity te = new TargetEntity(entry.Player.TheRegion); te.SetPosition(entry.Player.GetPosition() + entry.Player.ForwardVector() * 5); te.TheRegion.SpawnEntity(te); } else if (arg0 == "spawnSlime" && entry.InputArguments.Count > 2) { SlimeEntity se = new SlimeEntity(entry.Player.TheRegion, Utilities.StringToFloat(entry.InputArguments[2])) { mod_color = ColorTag.For(entry.InputArguments[1]).Internal }; se.SetPosition(entry.Player.GetPosition() + entry.Player.ForwardVector() * 5); se.TheRegion.SpawnEntity(se); } else if (arg0 == "timePathfind" && entry.InputArguments.Count > 1) { double dist = Utilities.StringToDouble(entry.InputArguments[1]); entry.Player.TheServer.Schedule.StartAsyncTask(() => { Stopwatch sw = new Stopwatch(); sw.Start(); List <Location> locs = entry.Player.TheRegion.FindPath(entry.Player.GetPosition(), entry.Player.GetPosition() + new Location(dist, 0, 0), dist * 2, 1.5f); sw.Stop(); entry.Player.TheRegion.TheWorld.Schedule.ScheduleSyncTask(() => { if (locs != null) { entry.Player.Network.SendPacket(new PathPacketOut(locs)); } entry.Player.SendMessage(TextChannel.COMMAND_RESPONSE, "Took " + sw.ElapsedMilliseconds + "ms, passed: " + (locs != null)); }); }); } else if (arg0 == "findPath") { Location eye = entry.Player.GetEyePosition(); Location forw = entry.Player.ForwardVector(); Location goal; if (entry.Player.TheRegion.SpecialCaseRayTrace(eye, forw, 150, MaterialSolidity.FULLSOLID, entry.Player.IgnorePlayers, out RayCastResult rcr)) { goal = new Location(rcr.HitData.Location); } else { goal = eye + forw * 50; } entry.Player.TheServer.Schedule.StartAsyncTask(() => { Stopwatch sw = new Stopwatch(); sw.Start(); List <Location> locs; try { locs = entry.Player.TheRegion.FindPath(entry.Player.GetPosition(), goal, 75, 1.5f); } catch (Exception ex) { Utilities.CheckException(ex); SysConsole.Output("pathfinding", ex); locs = null; } sw.Stop(); entry.Player.TheRegion.TheWorld.Schedule.ScheduleSyncTask(() => { if (locs != null) { entry.Player.Network.SendPacket(new PathPacketOut(locs)); } entry.Player.SendMessage(TextChannel.COMMAND_RESPONSE, "Took " + sw.ElapsedMilliseconds + "ms, passed: " + (locs != null)); }); }); } else if (arg0 == "gameMode" && entry.InputArguments.Count > 1) { if (Enum.TryParse(entry.InputArguments[1].ToUpperInvariant(), out GameMode mode)) { entry.Player.Mode = mode; } } else if (arg0 == "teleport" && entry.InputArguments.Count > 1) { entry.Player.Teleport(Location.FromString(entry.InputArguments[1])); } else if (arg0 == "loadPos") { entry.Player.UpdateLoadPos = !entry.Player.UpdateLoadPos; entry.Player.SendMessage(TextChannel.COMMAND_RESPONSE, "Now: " + (entry.Player.UpdateLoadPos ? "true" : "false")); } else if (arg0 == "tickRate") { entry.Player.SendMessage(TextChannel.COMMAND_RESPONSE, "Intended tick rate: " + entry.Player.TheServer.CVars.g_fps.ValueI + ", actual tick rate (last second): " + entry.Player.TheServer.TPS); } else if (arg0 == "paintBrush" && entry.InputArguments.Count > 1) { ItemStack its = entry.Player.TheServer.Items.GetItem("tools/paintbrush"); byte col = Colors.ForName(entry.InputArguments[1]); its.Datum = col; its.DrawColor = Colors.ForByte(col); entry.Player.Items.GiveItem(its); } else if (arg0 == "paintBomb" && entry.InputArguments.Count > 1) { ItemStack its = entry.Player.TheServer.Items.GetItem("weapons/grenades/paintbomb", 10); byte col = Colors.ForName(entry.InputArguments[1]); its.Datum = col; its.DrawColor = Colors.ForByte(col); entry.Player.Items.GiveItem(its); } else if (arg0 == "sledgeHammer" && entry.InputArguments.Count > 1) { ItemStack its = entry.Player.TheServer.Items.GetItem("tools/sledgehammer"); int bsd = BlockShapeRegistry.GetBSDFor(entry.InputArguments[1]); its.Datum = bsd; entry.Player.Items.GiveItem(its); } else if (arg0 == "blockDamage" && entry.InputArguments.Count > 1) { if (Enum.TryParse(entry.InputArguments[1], out BlockDamage damage)) { Location posBlock = (entry.Player.GetPosition() + new Location(0, 0, -0.05f)).GetBlockLocation(); BlockInternal bi = entry.Player.TheRegion.GetBlockInternal(posBlock); bi.Damage = damage; entry.Player.TheRegion.SetBlockMaterial(posBlock, bi); } else { entry.Player.SendMessage(TextChannel.COMMAND_RESPONSE, "/devel <subcommand> [ values ... ]"); } } else if (arg0 == "blockShare" && entry.InputArguments.Count > 1) { Location posBlock = (entry.Player.GetPosition() + new Location(0, 0, -0.05f)).GetBlockLocation(); BlockInternal bi = entry.Player.TheRegion.GetBlockInternal(posBlock); bool temp = entry.InputArguments[1].ToLowerFast() == "true"; bi.BlockShareTex = temp; entry.Player.TheRegion.SetBlockMaterial(posBlock, bi); entry.Player.SendMessage(TextChannel.COMMAND_RESPONSE, "Block " + posBlock + " which is a " + bi.Material + " set ShareTex mode to " + temp + " yields " + bi.BlockShareTex); } else if (arg0 == "webPass" && entry.InputArguments.Count > 1) { entry.Player.PlayerConfig.Set("web.passcode", Utilities.HashQuick(entry.Player.Name.ToLowerFast(), entry.InputArguments[1])); entry.Player.SendMessage(TextChannel.COMMAND_RESPONSE, "Set."); } else if (arg0 == "spawnMessage" && entry.InputArguments.Count > 1) { string mes = entry.InputArguments[1].Replace("\\n", "\n"); HoverMessageEntity hme = new HoverMessageEntity(entry.Player.TheRegion, mes) { Position = entry.Player.GetEyePosition() }; entry.Player.TheRegion.SpawnEntity(hme); } else if (arg0 == "chunkTimes") { foreach (Tuple <string, double> time in entry.Player.TheRegion.Generator.GetTimings()) { entry.Player.SendMessage(TextChannel.COMMAND_RESPONSE, "--> " + time.Item1 + ": " + time.Item2); } #if TIMINGS entry.Player.SendMessage(TextChannel.COMMAND_RESPONSE, "--> [Image]: " + entry.Player.TheRegion.TheServer.BlockImages.Timings_General); entry.Player.SendMessage(TextChannel.COMMAND_RESPONSE, "--> [Image/A]: " + entry.Player.TheRegion.TheServer.BlockImages.Timings_A); entry.Player.SendMessage(TextChannel.COMMAND_RESPONSE, "--> [Image/B]: " + entry.Player.TheRegion.TheServer.BlockImages.Timings_B); entry.Player.SendMessage(TextChannel.COMMAND_RESPONSE, "--> [Image/C]: " + entry.Player.TheRegion.TheServer.BlockImages.Timings_C); entry.Player.SendMessage(TextChannel.COMMAND_RESPONSE, "--> [Image/D]: " + entry.Player.TheRegion.TheServer.BlockImages.Timings_D); if (entry.InputArguments.Count > 1 && entry.InputArguments[1] == "clear") { entry.Player.TheRegion.Generator.ClearTimings(); entry.Player.TheRegion.TheServer.BlockImages.Timings_General = 0; entry.Player.TheRegion.TheServer.BlockImages.Timings_A = 0; entry.Player.TheRegion.TheServer.BlockImages.Timings_B = 0; entry.Player.TheRegion.TheServer.BlockImages.Timings_C = 0; entry.Player.TheRegion.TheServer.BlockImages.Timings_D = 0; } #endif } else if (arg0 == "fireWork" && entry.InputArguments.Count > 1) { ParticleEffectPacketOut pepo; Location pos = entry.Player.GetEyePosition() + entry.Player.ForwardVector() * 10; switch (entry.InputArguments[1]) { case "rainbow_huge": pepo = new ParticleEffectPacketOut(ParticleEffectNetType.FIREWORK, 15, pos, new Location(-1, -1, -1), new Location(-1, -1, -1), 150); break; case "red_big": pepo = new ParticleEffectPacketOut(ParticleEffectNetType.FIREWORK, 10, pos, new Location(1, 0, 0), new Location(1, 0, 0), 100); break; case "green_medium": pepo = new ParticleEffectPacketOut(ParticleEffectNetType.FIREWORK, 7.5, pos, new Location(0.25, 1, 0.25), new Location(0.25, 1, 1), 100); break; case "blue_small": pepo = new ParticleEffectPacketOut(ParticleEffectNetType.FIREWORK, 5, pos, new Location(0, 0, 1), new Location(0, 0, -1), 50); break; default: ShowUsage(entry); return; } entry.Player.Network.SendPacket(pepo); } else { ShowUsage(entry); return; } }
public void UpdatePlaneEntity(PlaneEntity planeEntity) { throw new NotImplementedException(); }
protected override void initOnScene() { lWingNode = innerNode.CreateChildSceneNode(name + "LWingNode", new Vector3(-8.8f, -0.2f, -1.5f)); rWingNode = innerNode.CreateChildSceneNode(name + "RWingNode", new Vector3(8.8f, -0.2f, -1.5f)); if (plane != null && !this.plane.IsEnemy) { EnableNightLights(); } // main nodes init planeEntity = sceneMgr.CreateEntity(name + "_Body", GetMainMeshName()); planeEntity.CastShadows = EngineConfig.ShadowsQuality > 0; innerNode.AttachObject(planeEntity); outerNode.Scale(new Vector3(0.4f, 0.4f, 0.4f)); initBlade(); initWheels(); SceneNode pilotNode = innerNode.CreateChildSceneNode(planeNode.Name + "Pilot", new Vector3(0, 1.0f, -0.4f)); Entity pilotEntity = sceneMgr.CreateEntity(name + "_Pilot", "Pilot.mesh"); pilotNode.AttachObject(pilotEntity); torpedoHolder = innerNode.CreateChildSceneNode(planeNode.Name + "TorpedoHolder", new Vector3(0, -1.6f, 1.6f)); if (plane != null) { torpedoHolder.Scale(2.5f, 2.5f, 2.5f); // caly node jest skalowany x 0.4 Entity torpedo = sceneMgr.CreateEntity(name + "_Torpedo", "Torpedo.mesh"); torpedoHolder.AttachObject(torpedo); } ViewHelper.AttachAxes(sceneMgr, innerNode, 1.5f); refreshPosition(); // base.initOnScene(); initAnimationManager(); if (EngineConfig.SoundEnabled) { planePassSound = SoundManager3D.Instance.CreateSoundEntity(SoundManager3D.C_PLANE_PASS, this.planeNode, false, false); } if (this.plane != null && this.plane.WheelsState == WheelsState.In) { this.animationMgr.switchToGearUpDown(false); this.animationMgr.CurrentAnimation.Enabled = false; animationMgr.disableAll(); } if (plane != null && plane.LocationState == LocationState.Air) { animationMgr.switchToIdle(); } animationMgr.enableBlade(); // vertex animation animationState = PlaneEntity.GetAnimationState("manual"); if (EngineConfig.DisplayingMinimap) { minimapItem = new MinimapItem(outerNode, this.frameWork.MinimapMgr, "Cube.mesh", new ColourValue(0, 0.9f, 0), planeEntity); minimapItem.ScaleOverride = new Vector2(0, 5); minimapItem.MinimapNode.Translate(0, 0, 10.0f); minimapItem.Refresh(); } // kamery ResetCameraHolders(); }
public PlaneDto AddPlane(PlaneDto planeDto) { PlaneEntity plane = PlaneRepository.InsertPlaneEntity(PlaneMapper.toEntity(planeDto)); return(PlaneMapper.toDto(plane)); }