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); }
public override Game.GameObject save() { Game.GameObject gameObject = new Game.GameObject(); gameObject.Components.Add(new Game.SpawnPoint()); gameObject.name = objectName; return(gameObject); }
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(); }
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); }
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); }
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); }
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); }
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); }
// 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); }
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); }