public void ClearAll() { lock (HandleMap) { foreach (var pair in HandleMap) { if (Blips.Contains(pair.Value)) { new Blip(pair.Value).Remove(); } else if (Pickups.Contains(pair.Value)) { Function.Call(Hash.REMOVE_PICKUP, pair.Value); } else { new Prop(pair.Value).Delete(); } } HandleMap.Clear(); Markers.Clear(); Blips.Clear(); Pickups.Clear(); _localMarkers.Clear(); _markerCount = 0; } }
private void Load() { Level = Parser.LevelRead(FileName.LocalPath); ReservedTiles = new bool[Level.Columns, Level.Rows]; SenderReserveTiles = new GameObject[Level.Columns, Level.Rows]; Context = Level.Context; Parser.RefreshLevel(Level); Pickups.Clear(); Player.CurrentPlayer = Assets.Scripts.Game.PlayerEnum.SPONGEBOB; }
// This method loads the pickups // Recieves a line of serialized pickup data private void LoadPickups(string line) { InvokeOnMain(() => { // Create images var weaponSprite = ResourceCache.GetSprite2D("map/levels/platformer-art-complete-pack-0/Request pack/Tiles/raygunBig.png"); var armorSprite = ResourceCache.GetSprite2D("map/levels/platformer-art-complete-pack-0/Request pack/Tiles/shieldGold.png"); if (weaponSprite == null || armorSprite == null) { throw new Exception("Texture not found"); } // Clear Tilemap of old pickups for (uint layerID = 0; layerID < tileMap.NumLayers; ++layerID) { TileMapLayer2D layer = tileMap.GetLayer(layerID); for (int x = 0; x < layer.Width; ++x) { for (int y = 0; y < layer.Height; ++y) { Node n = layer.GetTileNode(x, y); if (n == null) { continue; } if (layer.HasProperty("Spawn")) { n.Remove(); } } } } // Remove added pickups from map. foreach (Pickup p in Pickups) { p.WorldNode.Remove(); } Pickups.Clear(); // Load each pickup string[] pickupsSplit = line.Split(';'); foreach (var pickup in pickupsSplit.Take(pickupsSplit.Length - 1)) { Pickup pickupObj; // determine type var pickupType = pickup.Split(',')[0]; if (pickupType == "Royale_Platformer.Model.PickupArmor") { pickupObj = new PickupArmor(); } else { pickupObj = new PickupWeaponUpgrade(); } // determine position var position = pickupObj.Deserialize(pickup); // Load if (pickupType == "Royale_Platformer.Model.PickupArmor") { Pickups.Add(new PickupArmor(scene, armorSprite, new Vector2(position.X, position.Y))); } else { Pickups.Add(new PickupWeaponUpgrade(scene, weaponSprite, new Vector2(position.X, position.Y))); } } }); }