private void treeView1_MouseClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { if (treeView1.SelectedNode == treeView1.GetNodeAt(e.Location)) { if (treeView1.SelectedNode.Nodes.Count == 0) { treeView1.LabelEdit = true; treeView1.SelectedNode.BeginEdit(); } } } else if (e.Button == MouseButtons.Right) { if (treeView1.SelectedNode == treeView1.GetNodeAt(e.Location)) { contextMenuNode = treeView1.GetNodeAt(e.Location); lastClickedNodeMapEntity = null; if (contextMenuNode == null) { return; } // if (contextMenuNode.Text.CompareTo("Variables") == 0) // { // } // else // { findClickedNodeMapEntity_r(contextMenuNode); contextMenuStrip1.Show(PointToScreen(e.Location)); // } } } }
public async Task <ActionResult> Create(MapEntity model) { if (!ModelState.IsValid) { return(this.View(model)); } model.PartitionKey = MapEntity.MainKey; model.RowKey = ShortGuid.NewGuid().Value; try { // upload image to blob storage. model.ImageAddress = await UploadImageToStorage(model.RowKey, model.ImageAddress); await TableStorage.Insert(model); } catch (StorageException error) { Task.Run(() => RavenClient.CaptureException(error)); ViewBag.Alerts = new List <AlertModel> { new AlertModel(AlertType.Danger, error.Message) }; return(this.View(model)); } this.TempData["Alerts"] = AlertModel.CreateSingle(AlertType.Success, string.Format("{0} by {1} was created.", model.Title, model.Author)); this.TempData["Highlight"] = new HighlightModel(AlertType.Success, model.PartitionKey, model.RowKey); return(this.RedirectToAction("Index")); }
public void ClientRead(ServerNetObject type, NetBuffer msg, float sendingTime) { foreach (Connection connection in Connections) { connection.ClearConnections(); int wireCount = msg.ReadRangedInteger(0, Connection.MaxLinked); for (int i = 0; i < wireCount; i++) { ushort wireId = msg.ReadUInt16(); Item wireItem = MapEntity.FindEntityByID(wireId) as Item; if (wireItem == null) { continue; } Wire wireComponent = wireItem.GetComponent <Wire>(); if (wireComponent == null) { continue; } connection.Wires[i] = wireComponent; wireComponent.Connect(connection, false); } } }
public async Task <ActionResult> Edit(string row, MapEntity model) { if (string.IsNullOrEmpty(model.FeaturedDate)) { ModelState.AddModelError("FeaturedDate", "A featured date is required."); } if (!ModelState.IsValid) { return(this.View(model)); } try { await TableStorage.Replace(model); } catch (StorageException error) { Task.Run(() => RavenClient.CaptureException(error)); return(this.AzureStorageErrorResponse(row, MapEntity.FeaturedKey, error)); } string alertMessage = string.Format("The featured map for {0} was updated.", model.FeaturedDate); this.TempData["Alerts"] = AlertModel.CreateSingle(AlertType.Success, alertMessage); this.TempData["Highlight"] = new HighlightModel(AlertType.Info, model.PartitionKey, model.RowKey); return(this.RedirectToAction("Index")); }
private void treeView1_AfterLabelEdit(object sender, NodeLabelEditEventArgs e) { if (e.Label == null) { return; } KeyValuesList kvList = (KeyValuesList)e.Node.Tag; // changing key-value of the entity if (kvList != null) { string keyName = e.Node.Parent.Text; kvList.setKeyValue(keyName, e.Label); // fix the classname display at entity node if (keyName.CompareTo("classname") == 0) { TreeNode nodeKeyValues = e.Node.Parent.Parent; TreeNode nodeEntity = nodeKeyValues.Parent; MapEntity mapEntity = (MapEntity)nodeEntity.Tag; if (mapEntity != null) { nodeEntity.Text = ("Entity " + mapEntity.getIndex() + " (" + mapEntity.getClassName() + ")"); } } } MapBrushBase brushBase = (MapBrushBase)e.Node.Tag; // changing the material name of brushside if (brushBase != null) { // TODO } }
internal void RegisterEntity(MapEntity mapEntity) { if (EntityHash.Add(mapEntity)) { ActiveEntity.Add(mapEntity); } }
[SerializeField] private int level = 0; // Manually set in inspector public void ChooseEntity(MapEntity entity) { this.entity?.DeslotEntity(); this.entity = entity; this.entity.SlotEntity(); monsterElement = this.entity.element; }
public static void SeedMap(Graphics g) { for (int i = 0; i < mapWidth; i++) { for (int j = 0; j < mapHeight; j++) { if (map[i, j] == 10) { g.DrawImage(spriteSheet, new Rectangle(new Point(j * cellSize, i * cellSize), new Size(cellSize * 3, cellSize * 3)), 202, 298, 107, 114, GraphicsUnit.Pixel); MapEntity mapEntity = new MapEntity(new Point(j * cellSize, i * cellSize), new Size(cellSize * 3, cellSize * 3)); mapObjects.Add(mapEntity); } if (map[i, j] == 11) { g.DrawImage(spriteSheet, new Rectangle(new Point(j * cellSize, i * cellSize), new Size(20, 12)), 581, 114, 19, 11, GraphicsUnit.Pixel); MapEntity mapEntity = new MapEntity(new Point(j * cellSize, i * cellSize), new Size(20, 12)); mapObjects.Add(mapEntity); } if (map[i, j] == 12) { g.DrawImage(spriteSheet, new Rectangle(new Point(j * cellSize, i * cellSize), new Size(20, 18)), 453, 225, 18, 22, GraphicsUnit.Pixel); MapEntity mapEntity = new MapEntity(new Point(j * cellSize, i * cellSize), new Size(20, 18)); mapObjects.Add(mapEntity); } } } }
/// <summary> /// 指定した足場に接する位置までの距離を返す /// </summary> /// <returns>指定した足場に接する位置までの距離(Y座標上方向の距離)</returns> /// <param name="aEntity">Entity</param> /// <param name="aScaffold">足場</param> private static float getCorrectDistanceToScaffold(MapEntity aEntity, Collider aScaffold) { Collider tEntityCollider = aEntity.mEntityPhysicsBehaviour.mScaffoldRigideCollider; //上方向に移動させて離せる距離 ColliderEditer.CubeEndPoint tEntityEnd = tEntityCollider.minimumCircumscribedCubeEndPoint(); ColliderEditer.CubeEndPoint tHitEnd = aScaffold.minimumCircumscribedCubeEndPointWorld(); float tUpperDistance = (tHitEnd.top) - (tEntityCollider.transform.position.y + tEntityEnd.bottom); //cast RaycastHit[] tHits = scaffoldRigideCast(aEntity, tUpperDistance + kDelta, tHitEnd.top - tHitEnd.bottom + kDelta); //指定されたscaffoldのHitを探す for (int i = 0; i < tHits.Length; ++i) { RaycastHit tHit = tHits[i]; MapScaffold tScaffold = tHit.collider.gameObject.GetComponent <MapScaffold>(); if (tScaffold == null) { continue; } if (tHit.collider != aScaffold) { continue; } return(tUpperDistance - tHit.distance + kDelta); } //return tUpperDistance - (tHitEnd.top - tHitEnd.bottom); throw new System.Exception("MapHeightUpdateSystem : 衝突するはずの足場と衝突できなかった"); }
internal void UnRegisterEntity(MapEntity mapEntity) { if (EntityHash.Remove(mapEntity)) { ActiveEntity.Remove(mapEntity); } }
public void Paste() { if (this.Initialized) { MemoryStream stream = null; IDataObject obj = Clipboard.GetDataObject(); const string format = "aeon_entities"; if (obj.GetDataPresent(format)) { stream = obj.GetData(format) as MemoryStream; } EntitySelectionTool.Instance.SelectedEntities.Clear(); BinaryInput bin = new BinaryInput(stream); int c = bin.ReadInt32(); for (int i = 0; i < c; i++) { int temp_index = bin.ReadInt32(); int x = (int)bin.ReadSingle() >> 4; int y = (int)bin.ReadSingle() >> 4; AddEntityAction act = new AddEntityAction(EditorEngine.Instance.World.EntityContainer.All()[temp_index], new Vector2(x, y)); EditorEngine.Instance.GetActionManager().Execute(act); MapEntity result = act.worldEntity; EntitySelectionTool.Instance.SelectedEntities.Add(result); } } }
/// <summary>衝突しているtriggerを取得</summary> static private List <MapTrigger> getCollidedTriggers(MapEntity aEntity) { RaycastHit[] tHits = new RaycastHit[0]; //衝突しているcollider取得 switch (aEntity.mEntityPhysicsBehaviour.mAttriubteCollider) { case BoxCollider box: tHits = Physics.BoxCastAll(box.gameObject.transform.position + box.center, box.size / 2f, new Vector3(0, 1, 0), box.transform.rotation, 0); break; case SphereCollider sphere: tHits = Physics.SphereCastAll(sphere.transform.position + sphere.center, sphere.radius, Vector3.zero); break; } //triggerを取得 List <MapTrigger> tTriggers = new List <MapTrigger>(); MapTrigger tTrigger; foreach (RaycastHit tHit in tHits) { tTrigger = tHit.collider.gameObject.GetComponent <MapTrigger>(); if (tTrigger == null) { continue; } tTriggers.Add(tTrigger); } return(tTriggers); }
/// <summary> /// ScaffoldRigideのcastを飛ばす /// </summary> /// <returns>cast結果</returns> /// <param name="aEntity">A entity.</param> /// <param name="aHeightOffset">entityからcastの起点までの高さ(castの起点が上なら正)</param> /// <param name="aDistance">castする距離</param> public static RaycastHit[] scaffoldRigideCast(MapEntity aEntity, float aHeightOffset, float aDistance) { RaycastHit[] tCast = new RaycastHit[0]; switch (aEntity.mEntityPhysicsBehaviour.mScaffoldRigideCollider) { case BoxCollider box: tCast = Physics.BoxCastAll(box.gameObject.transform.position + box.center + new Vector3(0, aHeightOffset, 0), box.size / 2f, new Vector3(0, -1, 0), new Quaternion(0, 0, 0, 1), aDistance); break; case SphereCollider sphere: tCast = Physics.SphereCastAll(sphere.gameObject.transform.position + sphere.center + new Vector3(0, aHeightOffset, 0), sphere.radius, new Vector3(0, -1, 0), aDistance); break; default: throw new System.Exception("MapHeightUpdateSystem : 未定義のcast「" + aEntity.mEntityPhysicsBehaviour.mScaffoldRigideCollider.GetType() + "」"); } if (tCast.Length < 2) { return(tCast); } //衝突距離昇順にソート Array.Sort(tCast, (x, y) => { if (x.distance >= y.distance) { return(1); } else { return(-1); } }); return(tCast); }
void PopulateCreateMenu() { createToolStripMenuItem.Enabled = true; var types = Misc.GetAllSubclassesOf(typeof(EntityFactory), false); foreach (var factType in types) { var item = new ToolStripMenuItem(); item.Text = factType.Name; item.Click += (s, e) => { var fact = new MapEntity(); var mapEditor = Game.GameEditor.Instance as MapEditor; fact.Factory = (EntityFactory)Activator.CreateInstance(factType); mapEditor.Map.Nodes.Add(fact); mapEditor.Select(fact); }; createToolStripMenuItem.DropDownItems.Add(item); } }
public void ConnectLinked() { if (wireId == null) { return; } for (int i = 0; i < MaxLinked; i++) { if (wireId[i] == 0) { continue; } Item wireItem = MapEntity.FindEntityByID(wireId[i]) as Item; if (wireItem == null) { continue; } Wires[i] = wireItem.GetComponent <Wire>(); if (Wires[i] != null) { if (Wires[i].Item.body != null) { Wires[i].Item.body.Enabled = false; } Wires[i].Connect(this, false, false); } } }
public MapEntity CreateEntity(IRegionEntityFactory factory, IResourceContainer resources, bool scrollAffected) { MapEntity result = null; switch (EntityType) { case EntityType.None: result = new MapEntity(factory, scrollAffected); break; case EntityType.Building: result = new BuildingEntity(factory, scrollAffected); break; case EntityType.Player: result = new PlayerEntity(factory, scrollAffected); break; case EntityType.Npc: result = new NPCEntity(factory, scrollAffected); break; case EntityType.Door: //result = new EntityDoor(); break; } if (result != null) { result.TemplateID = this.ID; } return(result); }
public void DeathAction(MapEntity me) { float mosthated = 0; Actor mosthateda = null; List <Player> players = new List <Player>(); foreach (Actor a in HateList.Keys) { if (HateList[a] > mosthated) { mosthated = HateList[a]; mosthateda = a; } if (a is Player p) { players.Add(p); } } foreach (Player p in players) { if (p == mosthateda) { p.GiveExp(EXPDrop); } else { p.GiveExp((int)(Math.Round((float)EXPDrop / 2f))); } } }
public Map CreateMap(World world) { Map result = new Map(world.EntityFactory, Name, Author, Width, Height); result.Tilesets = this.Tilesets; foreach (MockupTileset tileset in result.Tilesets) { tileset.world = world; } result.Tiles = Tiles; for (int i = 0; i < result.Width; i++) { for (int j = 0; j < result.Height; j++) { for (int k = 0; k < Map.LayerCount; k++) { Tiles[i][j][k].map = result; } } } foreach (Tuple <Int32, Vector2> token in Entities) { MapEntity e = world.EntityContainer.Get(token.Item1).CreateEntity(world.EntityFactory); e.Position = token.Item2; result.Entities.Add(e); } return(result); }
private MapEntity[,] ObtainEntitiesFromLayer(string objectGroupName) { MapEntity[,] entityGrid = new MapEntity[tmxMap.Width, tmxMap.Height]; //Handle the Entities Layer foreach (TmxObject currentObject in tmxMap.ObjectGroups[objectGroupName].Objects) { for (int row = 0; row < tmxMap.Height; row++) { for (int col = 0; col < tmxMap.Width; col++) { //NOTE: For some reason, ObjectLayer objects in Tiled measure Y-axis from the bottom of the tile.c Compensate in the calculation here. if ((col * GameDriver.CellSize) == (int)currentObject.X && (row * GameDriver.CellSize) == ((int)currentObject.Y - GameDriver.CellSize)) { int objectTileId = currentObject.Tile.Gid; if (objectTileId != 0) { Dictionary <string, string> currentProperties = GetDefaultPropertiesAndOverrides(currentObject); TileCell tileCell = new TileCell(mapSprite, GameDriver.CellSize, objectTileId); entityGrid[col, row] = new MapEntity(currentObject.Name, currentObject.Type, tileCell, new Vector2(col, row), currentProperties); } } } } } return(entityGrid); }
private void copyToolStripMenuItem_Click(object sender, EventArgs e) { if (contextMenuNode == null) { return; } // allow user to copy entire entity (along with key valeus and brushes) MapEntity entity = contextMenuNode.Tag as MapEntity; if (entity != null) { Clipboard.SetText(entity.ToString()); return; } // allow user to copy single brushdef block MapBrushBase brush = contextMenuNode.Tag as MapBrushBase; if (brush != null) { Clipboard.SetText(brush.ToString()); return; } // allow user to copy single keyvalues list KeyValuesList epairs = contextMenuNode.Tag as KeyValuesList; if (epairs != null) { Clipboard.SetText(epairs.ToString()); return; } }
public void Reset() { this.Location = Vector2.Zero; this.Scale = 1f; this.Rotation = 0f; FocusEntity = null; }
public void Update(Microsoft.Xna.Framework.GameTime time) { for (int i = 0; i < Entities.Count; i++) { MapEntity e = Entities[i]; e.Update(time); } }
/// <summary> /// 加载当前场景 /// </summary> public void LoadCurrentMap(string mapName) { currentMap = GetMapByName(mapName); if (currentMap == null) { Debug.LogError(mapName + "对应的mapEntity为空"); } }
/// <summary> /// 足場までの距離を返す(負の値の場合は上方向の距離を示す) /// </summary> /// <returns>足場までの距離</returns> /// <param name="aEntity">A entity.</param> public static float getDistanceToScaffold(MapEntity aEntity) { RaycastHit[] tHits = scaffoldRigideCast(aEntity, kDelta, 2f + kDelta); //最寄りの足場を探す MapScaffold tScaffold = null; RaycastHit tHit; Collider tScaffoldCollider = null; for (int i = 0; i < tHits.Length; ++i) { tHit = tHits[i]; tScaffold = tHit.collider.gameObject.GetComponent <MapScaffold>(); if (tScaffold == null) { continue; } if (tHit.distance > 0) { return(tHit.distance - kDelta); } else { //足場と衝突している場合 tScaffoldCollider = tHit.collider; break; } } if (tScaffold == null) { Debug.LogWarning("MapHeightUpdateSystem : 足場がない"); return(0); } //足場と衝突している場合 float tUpperDistance = 0; for (; ;) { if (tScaffold == null) { break; } //上方向に移動して離せる距離 tUpperDistance = getCorrectDistanceToScaffold(aEntity, tScaffoldCollider); //移動した結果他の足場に衝突しないか確認 tHits = scaffoldRigideCast(aEntity, tUpperDistance + kDelta, 0); tScaffold = null; foreach (RaycastHit tCastHit in tHits) { tScaffold = tCastHit.collider.GetComponent <MapScaffold>(); if (tScaffold != null) //他の足場に衝突した { tScaffoldCollider = tCastHit.collider; break; } } } return(-tUpperDistance); }
public void AddSight(MapEntity entity) { var tile = _map.GetTile((entity.x, entity.y)); foreach (var nearTile in tile.GetAOE(entity.LineOfSight)) { nearTile.VisibleTo.Add(entity.Controller); } }
public override void Dispose() { _options.Clear(); _options = null; _currentOption = null; _mapEntity = null; base.Dispose(); }
public GameUnit(string id, Team unitTeam, UnitClass unitJobClass, MapEntity mapInfo, UnitStatistics stats, ITexture2D fullPortrait, ITexture2D mediumPortrait, ITexture2D smallPortrait) : base(id, mapInfo) { this.unitTeam = unitTeam; this.unitJobClass = unitJobClass; this.stats = stats; this.fullPortrait = fullPortrait; this.mediumPortrait = mediumPortrait; this.smallPortrait = smallPortrait; }
public static void Run([ServiceBusTrigger("management", Connection = "AzureWebJobsServiceBus")] string message) { using (var context = new DatabaseContext()) { var entity = new MapEntity(); context.TicketDetails.Add(entity.MapTicketDetailsEntity(message)); context.SaveChanges(); } }
public HauntedHouseGame() { MapEntity mapEntityGhost = new MapEntity { Description = "Ghost", Icon = null, DisplayText = "G", ScoringWeight = -100, DistributionWeight = 1, }; MapEntity mapEntityZombie = new MapEntity { Description = "Zombie", Icon = null, DisplayText = "Z", ScoringWeight = -10, DistributionWeight = 3, }; MapEntity mapEntityWeapon = new MapEntity { Description = "Weapon", Icon = null, DisplayText = "X", ScoringWeight = 0, DistributionWeight = 2 }; MapEntity mapEntityExit = new MapEntity { Description = "Exit", Icon = null, DisplayText = "Ex", ScoringWeight = 0, Multiplicity = MapEntityMultiplicity.Single }; MapEntity mapEntityWall = new MapEntity { Description = "Wall", Icon = null, DisplayText = "W", ScoringWeight = 0, DistributionWeight = 1, IsMoveAllowedOnThis = false }; Columns = 5; GameTitle = "Haunted House"; Rows = 5; MaxScore = 100; MoveScore = -5; MapEntities = new List <IMapEntity> { mapEntityGhost, mapEntityWall, mapEntityExit, mapEntityWeapon, mapEntityZombie }; MoveEvaluator = new HauntedHouseGameMoveEvaluation(); }
public override void UseItem(Level world, Player player, BlockCoordinates blockCoordinates) { MapEntity mapEntity = new MapEntity(world); mapEntity.SpawnEntity(); // Initialize a new map and add it. ItemMap itemMap = new ItemMap(mapEntity.EntityId); player.Inventory.SetFirstEmptySlot(itemMap, true); }
public override void EnterState(FSMState prevState) { base.EnterState(prevState); ///// _mapEntity = GameObject.Find("Map").GetComponent<MapEntity>(); ///// SetCurrentOption(0); SetPlacementBoundary(); EnableInput(); }
public override void EnterState(FSMState prevState) { base.EnterState(prevState); _player = GameManager.Instance.Player; _player.gameObject.SetActive(false); _mapEntity = GameManager.Instance.Map.GetComponent<MapEntity>(); _cameraMover = GameManager.Instance.GameCamera.GetComponent<TweenMover>(); // set up camera transition response _cameraMover.OnMoveBegin += OnCameraMoveBegin; _cameraMover.OnMoveEnd += OnCameraMoveEnd; EnableInput(); }
public override void EnterState(FSMState prevState) { base.EnterState(prevState); ///// init _player = GameManager.Instance.Player; _mapEntity = GameManager.Instance.Map.GetComponent<MapEntity>(); _camMover = GameManager.Instance.GameCamera.GetComponent<TweenMover>(); _visualizer = new MapVisualizer(); _visualizer.RenderMap(GameManager.Instance.CurrentMap); ///// // set up camera transition response _camMover.OnMoveBegin += OnCameraMoveBegin; _camMover.OnMoveEnd += OnCameraMoveEnd; // set up player move response _player.GetComponent<RigidBodyMover>().OnMove += OnPlayerMove; EnableInput(); }
private MapEntity spawnPlayerCharacter(int id, Position position) { var playerObj = GameObject.Instantiate(Resources.Load("player")) as GameObject; playerObj.transform.position = new Vector3(position.X * tilesize, -position.Y * tilesize, -2 - position.Y * tileZLayerFactor); playerObj.transform.parent = entitiesNode.transform; var playercharacter = new MapEntity(id, playerObj, position.X, position.Y); playercharacter.Pokemons.Add(new Pokemon(1, 5)); playercharacter.IA = false; entityMatrix[position.X, position.Y] = playercharacter; mapEntities.Add(id, playercharacter); return playercharacter; }
private void hidePokemon(MapEntity pkmn) { entityMatrix[pkmn.CurrentPos.X, pkmn.CurrentPos.Y] = null; Destroy(pkmn.Object); }
private MapEntity spawnPokemon(int id, Position pos, int pkId, int level) { var prefab = ""; switch (pkId) { default: case 1: prefab = "Rattata"; break; case 2: prefab = "Roucool"; break; case 3: prefab = "Ptitard"; break; } var pkmnObj = GameObject.Instantiate(Resources.Load(prefab)) as GameObject; pkmnObj.transform.position = new Vector3(pos.X * tilesize, -pos.Y * tilesize, -2); pkmnObj.transform.parent = entitiesNode.transform; pkmnObj.SetActive(false); var pkmn = new MapEntity(id, pkmnObj, pos.X, pos.Y); pkmn.Pokemons.Add(new Pokemon(pkId, level)); entityMatrix[pos.X, pos.Y] = pkmn; return pkmn; }
private void updateEntities() { List<MapEntity> entitiesToRemove = new List<MapEntity>(); foreach (MapEntity entity in mapEntities.Values) { entity.MoveTimer += Time.deltaTime; entity.IsAliveTimer += Time.deltaTime; if (entity.IsAliveTimer > 1) { entitiesToRemove.Add(entity); } } foreach (MapEntity entityToRemove in entitiesToRemove) { mapEntities.Remove(entityToRemove.Id); entityMatrix[entityToRemove.CurrentPos.X, entityToRemove.CurrentPos.Y] = null; Destroy(entityToRemove.Object); } List<PositionEntity> transferList = new List<PositionEntity>(); while (Global.Instance.MoveMessages.Count > 0) { PositionEntity message = Global.Instance.MoveMessages.Dequeue(); MapEntity entity = null; if (mapEntities.ContainsKey(message.Id)) { entity = mapEntities[message.Id]; entity.Object.SetActive(true); entity.IsAliveTimer = 0; if (message.Orientation != Direction.None) { entity.CurrentDir = message.Orientation; } if (!entity.CurrentPos.Equals(message.Position)) //todo gérer si la distance est trop grande (>1) { if (entity.MoveTimer > entity.MoveTime) { //var currentDir = Utils.GetDirection(entity.CurrentPos, message.Position); moveEntity(entity, message.Position.X, message.Position.Y); if (entity.MoveTimer - Time.deltaTime > entity.MoveTime) { entity.MoveTimer = 0; } else { //Debug.Log("continue"); entity.MoveTimer -= entity.MoveTime; } //animation var anim = entity.Object.GetComponent<Animator>(); //entity.CurrentDir = currentDir; //test if (anim == null && entity.Pokemons[0].PokedexId == 3) { if (message.State == EntityState.Swimming) { var oldObj = entity.Object; entity.Object = GameObject.Instantiate(Resources.Load("ptitardSwimming_0")) as GameObject; entity.Object.transform.position = new Vector3(oldObj.transform.position.x, oldObj.transform.position.y, oldObj.transform.position.z); entity.Object.transform.parent = entitiesNode.transform; Destroy(oldObj); } else { var oldObj = entity.Object; entity.Object = GameObject.Instantiate(Resources.Load("Ptitard")) as GameObject; entity.Object.transform.position = new Vector3(oldObj.transform.position.x, oldObj.transform.position.y, oldObj.transform.position.z); entity.Object.transform.parent = entitiesNode.transform; Destroy(oldObj); } } if (anim == null && entity.Pokemons[0].PokedexId == 2) { if (message.State == EntityState.Flying) { var oldObj = entity.Object; entity.Object = GameObject.Instantiate(Resources.Load("roucoolFlying_0")) as GameObject; entity.Object.transform.position = new Vector3(oldObj.transform.position.x, oldObj.transform.position.y, oldObj.transform.position.z); entity.Object.transform.parent = entitiesNode.transform; Destroy(oldObj); } else { var oldObj = entity.Object; entity.Object = GameObject.Instantiate(Resources.Load("Roucool")) as GameObject; entity.Object.transform.position = new Vector3(oldObj.transform.position.x, oldObj.transform.position.y, oldObj.transform.position.z); entity.Object.transform.parent = entitiesNode.transform; Destroy(oldObj); } } if (entity.CurrentDir != Direction.None && anim != null) { //Debug.Log("walk"); switch (entity.CurrentDir) { case Direction.Down: anim.CrossFade("player_down", 0f); break; case Direction.Up: anim.CrossFade("player_up", 0f); break; case Direction.Right: anim.CrossFade("player_right", 0f); break; case Direction.Left: anim.CrossFade("player_left", 0f); break; } } } else { transferList.Add(message);//on remet le message dans la file car on attend la fin de l'animation } } } else { //Debug.Log("new entity"); if (message.Type == EntityType.Player) { entity = spawnPlayerCharacter(message.Id, message.Position); if (entity.Id == Global.Instance.PlayerId) { player = entity; } } else { entity = spawnPokemon(message.Id, message.Position, message.PokedexId, 5); } entity.Object.SetActive(true); mapEntities.Add(message.Id, entity); } } //Debug.Log(transferList.Count); foreach (PositionEntity message in transferList) { Global.Instance.MoveMessages.Enqueue(message); } //Debug.Log("update"); foreach (MapEntity entity in mapEntities.Values) { var anim = entity.Object.GetComponent<Animator>(); if (entity.MoveTimer <= entity.MoveTime) { //moving entity.Object.transform.position = Vector3.Lerp(new Vector3(entity.OldPos.X * tilesize, -entity.OldPos.Y * tilesize, -2 - entity.OldPos.Y * tileZLayerFactor), new Vector3(entity.CurrentPos.X * tilesize, -entity.CurrentPos.Y * tilesize, -2 - entity.OldPos.Y * tileZLayerFactor), entity.MoveTimer / entity.MoveTime); if (anim == null && entity.MoveTimer % 0.2f < 0.12f) { Vector3 currentPos = entity.Object.transform.position; entity.Object.transform.position = new Vector3(currentPos.x + 0.005f, currentPos.y + 0.015f, currentPos.z); } } else { //if (entity.Id == playerId) Debug.Log("stop"); //entity.OldPos = entity.CurrentPos; //animation if (anim != null) { switch (entity.CurrentDir) { case Direction.Down: anim.CrossFade("player_stand_down", 0f); break; case Direction.Right: anim.CrossFade("player_stand_right", 0f); break; case Direction.Up: anim.CrossFade("player_stand_up", 0f); break; case Direction.Left: anim.CrossFade("player_stand_left", 0f); break; default: break; } } } } }
public MapEntity CreateEntity(IRegionEntityFactory factory, IResourceContainer resources, bool scrollAffected) { MapEntity result = null; switch (EntityType) { case EntityType.None: result = new MapEntity(factory, scrollAffected); break; case EntityType.Building: result = new BuildingEntity(factory, scrollAffected); break; case EntityType.Player: result = new PlayerEntity(factory, scrollAffected); break; case EntityType.Npc: result = new NPCEntity(factory, scrollAffected); break; case EntityType.Door: //result = new EntityDoor(); break; } if (result != null) result.TemplateID = this.ID; return result; }
private void moveEntity(MapEntity entity, int x, int y) { if (entity.CurrentPos.X != x || entity.CurrentPos.Y != y) { if (entityMatrix[x, y] == null) { entityMatrix[entity.CurrentPos.X, entity.CurrentPos.Y] = null; entity.OldPos = new Position(entity.CurrentPos); entity.CurrentPos = new Position(x, y); entityMatrix[entity.CurrentPos.X, entity.CurrentPos.Y] = entity; } } }
void CreateNewDrop() { Quaternion rotation = GetRotation(); Vector3 scale = GetScale(); Common.Entities.Object mapEntity = newDropCallback(); Common.Classes.Unit uc; if (MainWindow.Instance.Map.UnitClasses.TryGetValue(mapEntity.Class, out uc)) scale *= uc.Scale; MapEntity e = new MapEntity(view, mapEntity) { Model = droppingModel, IsSelectable = true, IsClickable = true, Rotation = rotation, Scale = scale }; dropping = e; dropping.Entity.Rotation = rotation.W; dropping.Entity.Scale = scale.X; view.Scene.Add(e); /*MapEntity cyl = new MapEntity(view, mapEntity) { Model = new Model { XMesh = cylinder, Texture = e.Model.Texture } }; e.Model.SkinnedMesh.CalcBoundingValues(e.Model.SkinnedMesh.RootFrame); float z = e.Model.SkinnedMesh.maxZ - e.Model.SkinnedMesh.minZ; float y = e.Model.SkinnedMesh.maxY - e.Model.SkinnedMesh.minY; float x = e.Model.SkinnedMesh.maxX - e.Model.SkinnedMesh.minX; float r = (float)Math.Sqrt((float)Math.Pow((x / 2), 2) + (float)Math.Pow((y / 2), 2)) / 4; dropping2 = cyl; dropping2.Entity.Rotation = rotation.W; dropping2.Scale = new Vector3(r/12, r/12, z/18)*scale.X; view.Scene.Add(cyl);*/ }