public GasCell(Tile _attachedTile) { gasVel = new Vector2(0, 0); NextGasVel = new Vector2(0, 0); lastSentGasses = new Dictionary<GasType, float>(); gasMixture = new GasMixture(); rand = new Random(); attachedTile = _attachedTile; }
private Rectangle TilePos(Tile T) { return new Rectangle((int)(T.WorldPosition.X), (int)(T.WorldPosition.Y), (int)(tileSpacing), (int)(tileSpacing)); }
private bool RemoveTile(Tile t) { if (t == null) return false; if (t.GetType().Name == "Wall") { _wallArray.Remove(t); } else { _groundArray.Remove(t); } return true; }
private void AddTile(Tile t) { if (t.GetType().Name == "Wall") { _wallArray.Insert(t); } else { _groundArray.Insert(t); } }
public void UpdateTile(Tile t) { if (t == null || t.gasCell == null) return; t.gasCell.SetNeighbours(this); foreach (Tile u in GetAllTilesIn(new RectangleF(t.WorldPosition.X - tileSpacing, t.WorldPosition.Y - tileSpacing, tileSpacing * 2, tileSpacing * 2))) { u.gasCell.SetNeighbours(this); } }
public void AttachToTile(Vector2 tilePos) { var map = IoCManager.Resolve<IMapManager>(); var currentTile = map.GetWallAt(tilePos) as Tile; if (currentTile == null) return; var previousTile = map.GetWallAt(Owner.GetComponent<TransformComponent>(ComponentFamily.Transform).Position) as Tile; previousTile.TileChange -= TileChanged; currentTile.TileChange += TileChanged; linkedTile = currentTile; }
private void OnMove(object sender, VectorEventArgs args) { var map = IoCManager.Resolve<IMapManager>(); var previousTile = map.GetWallAt(args.VectorFrom) as Tile; if(previousTile != null) previousTile.TileChange -= TileChanged; var currentTile = map.GetWallAt(args.VectorTo) as Tile; if (currentTile == null) return; currentTile.TileChange += TileChanged; linkedTile = currentTile; }
public void AttachToTile(Tile t) { attachedTile = t; }