예제 #1
0
        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;
            }
        }
예제 #2
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;
 }
예제 #3
0
        // 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)));
                    }
                }
            });
        }