Example #1
0
    Game.GameObject saveMapObject(MapObject mapObject, int layer, int x, int y)
    {
        Game.GameObject gameObject = mapObject.save();

        Game.Transform transform = new Game.Transform();
        transform.Position.X = x * gameCellSize;
        transform.Position.Y = y * gameCellSize;
        gameObject.Components.Add(transform);

        if (mapObject.mainSprite)
        {
            Game.Sprite sprite     = new Game.Sprite();
            Rect        spriteRect = mapObject.mainSprite.rect;
            sprite.Dimensions.Left = (int)spriteRect.x;
            sprite.Dimensions.Top  = (int)spriteRect.y;
            if (spriteRect.width < mapObject.mainSprite.texture.width)
            {
                sprite.Dimensions.Top = (int)(mapObject.mainSprite.texture.height - spriteRect.y - spriteRect.height);
            }
            sprite.layer = layer;
            var spriteTextureGUID = StringToGUID(AssetDatabase.GetAssetPath(mapObject.mainSprite.texture));
            if (!gameTextures.ContainsKey(spriteTextureGUID.ToString()))
            {
                gameTextures.Add(spriteTextureGUID.ToString(), mapObject.mainSprite.texture);
            }
            sprite.Texture.textureAssetGUID = spriteTextureGUID.ToString();
            gameObject.Components.Add(sprite);
        }

        gameObject.name = mapObject.objectName;

        return(gameObject);
    }
Example #2
0
    public override Game.GameObject save()
    {
        Game.GameObject gameObject = new Game.GameObject();
        gameObject.Components.Add(new Game.SpawnPoint());

        gameObject.name = objectName;

        return(gameObject);
    }
Example #3
0
    public void saveLevel(string path, int levelIndex, Player playerObject)
    {
        gamePrefabs  = new Dictionary <string, MapObject>();
        gameTextures = new Dictionary <string, Texture>();

        Game.Level levelData = new Game.Level();
        levelData.TimeLimit = timeLimit;

        // Save the player in the first level
        if (levelIndex == 0 && playerObject != null)
        {
            Game.GameObject player = saveMapObject(playerObject, 3, 0, 0);
            levelData.GameObjects.Add(player);
        }

        // Save all map tiles in each alyer
        for (int l = 0; l < numLayers; l++)
        {
            var layer = levelLayers[l];
            for (int r = 0; r < rowCount; r++)
            {
                var row = layer.rows[r];
                for (int c = 0; c < columnCount; c++)
                {
                    if (row.mapObjs[c])
                    {
                        Game.GameObject gameObject = saveMapObject(row.mapObjs[c], l, c, r);
                        levelData.GameObjects.Add(gameObject);
                    }
                }
            }
        }

        var prefabMetas = saveGamePrefabs(path);

        foreach (var prefabMetaFile in prefabMetas)
        {
            levelData.resources.Add(prefabMetaFile);
        }

        var textureAssetMetas = saveTextureAssets(path);

        foreach (var textureAssetMetaFile in textureAssetMetas)
        {
            levelData.resources.Add(textureAssetMetaFile);
        }

        var settings = new JsonSerializerSettings {
            TypeNameHandling = TypeNameHandling.All
        };
        var          json   = JsonConvert.SerializeObject(levelData, settings);
        StreamWriter writer = new StreamWriter(path + "/Levels/level_" + levelIndex.ToString() + ".json");

        writer.Write(json);
        writer.Close();
    }
Example #4
0
    public override Game.GameObject save()
    {
        Game.GameObject gameObject = new Game.GameObject();
        gameObject.Components.Add(new Game.Portal());
        gameObject.Components.Add(new Game.CircleCollider(true));

        gameObject.name = objectName;

        return(gameObject);
    }
Example #5
0
    public override Game.GameObject save()
    {
        Game.GameObject gameObject = new Game.GameObject();
        gameObject.Components.Add(new Game.CircleCollider(true));

        Game.Item itemComp = new Game.Item();
        itemComp.itemType = itemType;

        gameObject.Components.Add(itemComp);

        return(gameObject);
    }
Example #6
0
    public override Game.GameObject save()
    {
        Game.GameObject      gameObject = new Game.GameObject();
        Game.PolygonCollider pCol;

        if (isCollider)
        {
            pCol = new Game.PolygonCollider();
            if (isTrigger)
            {
                pCol.trigger = true;
            }
            gameObject.Components.Add(pCol);
        }

        return(gameObject);
    }
Example #7
0
    List <string> saveGamePrefabs(string path)
    {
        List <string> prefabMetas = new List <string>();
        var           settings    = new JsonSerializerSettings {
            TypeNameHandling = TypeNameHandling.All
        };

        int prefabNum = 0;

        foreach (var prefab in gamePrefabs)
        {
            //string prefabFileName = "prefab" + prefabNum.ToString() + "_" + prefab.Value.objectName;
            string prefabFileName = "prefab_" + prefab.Value.objectName;

            var prefabMeta = new Game.MetaData();
            prefabMeta.type = "PrefabAsset";
            prefabMeta.guid = prefab.Value.prefabGuid;
            prefabMeta.path = "../Assets/Prefabs/" + prefabFileName + ".prefab";

            prefabNum++;
            prefabMetas.Add("../Assets/Prefabs/" + prefabFileName + ".meta");

            if (!savedAssets.Contains(prefab.Key))
            {
                // Save meta file for the prefab
                var          jsonMeta = JsonConvert.SerializeObject(prefabMeta, settings);
                StreamWriter writer1  = new StreamWriter(path + "/Prefabs/" + prefabFileName + ".meta");
                writer1.Write(jsonMeta);
                writer1.Close();

                // Save the prefab file
                Game.GameObject gameObject = saveMapObject(prefab.Value, 1, 0, 0);
                var             jsonPrefab = JsonConvert.SerializeObject(gameObject, settings);
                StreamWriter    writer2    = new StreamWriter(path + "/Prefabs/" + prefabFileName + ".prefab");
                writer2.Write(jsonPrefab);
                writer2.Close();
            }
            if (!savedAssets.Contains(prefab.Key))
            {
                savedAssets.Add(prefab.Key);
            }
        }

        return(prefabMetas);
    }
Example #8
0
    public override Game.GameObject save()
    {
        Game.GameObject gameObject = new Game.GameObject();
        gameObject.Components.Add(new Game.RigidBody());

        Game.CircleCollider col = new Game.CircleCollider();
        col.radius = 20.0f;
        gameObject.Components.Add(col);

        Game.Projectile proj = new Game.Projectile();
        proj.damage     = damage;
        proj.throwSpeed = throwSpeed;
        gameObject.Components.Add(proj);

        gameObject.name = objectName;

        return(gameObject);
    }
Example #9
0
    // Start is called before the first frame update
    public override Game.GameObject save()
    {
        Game.GameObject gameObject = new Game.GameObject();

        gameObject.Components.Add(new Game.CircleCollider());
        gameObject.Components.Add(new Game.RigidBody());

        Game.Enemy enemyComp = new Game.Enemy();
        enemyComp.health             = health;
        enemyComp.walkSpeed          = walkSpeed;
        enemyComp.attackTimeInterval = attackTimeInterval;
        enemyComp.attackStyle        = attackStyle;

        if (weapon != null)
        {
            enemyComp.weaponPrefabGUID = weapon.prefabGuid;
        }
        gameObject.Components.Add(enemyComp);

        return(gameObject);
    }
Example #10
0
    public override Game.GameObject save()
    {
        Game.GameObject gameObject = new Game.GameObject();

        gameObject.Components.Add(new Game.CircleCollider());

        Game.SpawnFactory sfComp = new Game.SpawnFactory();
        sfComp.health       = health;
        sfComp.timeInterval = timeInterval;

        if (enemy != null)
        {
            sfComp.enemyPrefabGUID = enemy.prefabGuid;
            if (!GauntletLevel.gamePrefabs.ContainsKey(enemy.prefabGuid))
            {
                GauntletLevel.gamePrefabs.Add(enemy.prefabGuid, enemy);
            }
            if (enemy.weapon != null)
            {
                if (!GauntletLevel.gamePrefabs.ContainsKey(enemy.weapon.prefabGuid))
                {
                    GauntletLevel.gamePrefabs.Add(enemy.weapon.prefabGuid, enemy.weapon);
                }
            }
        }

        if (dropItem != null)
        {
            sfComp.itemPrefabGUID = dropItem.prefabGuid;
            if (!GauntletLevel.gamePrefabs.ContainsKey(dropItem.prefabGuid))
            {
                GauntletLevel.gamePrefabs.Add(dropItem.prefabGuid, dropItem);
            }
        }

        gameObject.Components.Add(sfComp);

        return(gameObject);
    }