public static SavedDungeon ConvertFrom(OverworldDungeon dungeon) { if (dungeon.dungeonData == null) { return new SavedDungeon() { location = SavedVector2.ConvertFrom(dungeon.position), uuid = dungeon.uuid } } ; var output = new SavedDungeon { entered = true, location = SavedVector2.ConvertFrom(dungeon.position), numFloors = dungeon.dungeonData.numFloors, grid = dungeon.dungeonData.grid, maxSocialTier = dungeon.dungeonData.maxSocialTier, maxDimensions = dungeon.dungeonData.maxDimensions, encounterThemes = dungeon.dungeonData.encounterThemes, seeds = dungeon.seeds, uuid = dungeon.uuid, lootSlotAffinities = dungeon.dungeonData.lootSlotAffinities, lootPrimaryStatAffinities = dungeon.dungeonData.lootPrimaryStatAffinities, lootSecondaryStatAffinities = dungeon.dungeonData.lootSecondaryStatAffinities, elementalAffinity = dungeon.dungeonData.elementalAffinity, bossLootSlotAffinities = dungeon.dungeonData.bossLootSlotAffinities }; foreach (var kvp in dungeon.dungeonData.enemyStatBoosts) { output.enemyStatBoostEnemies.Add(kvp.Key); output.enemyStatBoostStats.Add(kvp.Value); } foreach (var kvp in dungeon.dungeonData.enemyBonusAbilities) { output.enemyBonusAbilityEnemies.Add(kvp.Key); output.enemyBonusAbilityAbilities.Add(SavedActiveAbility.ConvertFrom(kvp.Value)); } foreach (var room in dungeon.dungeonData.rooms) { output.rooms.Add(SavedRoom.ConvertFrom(room)); } foreach (var monster in dungeon.dungeonData.monsters) { output.monsters.Add(SavedMonsterData.ConvertFrom(monster)); } foreach (var path in dungeon.dungeonData.paths) { output.paths.Add(SavedVaultPath.ConvertFrom(path)); } return(output); }
private void OnEnable() { // Load JEM editor resources JEMEditorResources.Load(); // Apply title titleContent = new GUIContent("JEM Asset Builder", JEMEditorResources.JEMIconTexture); // Try to load configuration. JEMAssetsBuilderConfiguration.TryLoadConfiguration(); // Load Saved vars. _assetsScroll = new SavedVector2($"{nameof(JEMAssetBuilderWindow)}.AssetsScroll", Vector2.zero); _packagesScroll = new SavedVector2($"{nameof(JEMAssetBuilderWindow)}.PackagesScroll", Vector2.zero); // Load packages! LoadPackages(); }
public static SavedWorld ConvertFrom(GameObject go) { var obj = new SavedWorld(); var worldAutoSaver = go.GetComponent <WorldAutoSaver>(); if (PlayerCharacter.localPlayer != null) { foreach (var item in PlayerCharacter.localPlayer.inventory.items) { obj.inventory.Add(SavedItem.ConvertFrom(item)); } } obj.name = worldAutoSaver.worldName; if (OverworldGenerator.instance != null) { obj.savedOverworld = true; obj.elevation = OverworldGenerator.instance.elevation; foreach (var landmark in OverworldLandmarkGenerator.landmarks) { if (landmark.type == "base") { obj.baseCoords = SavedVector2.ConvertFrom(landmark.position); } else if (landmark.type == "dungeon") { obj.dungeons.Add(SavedDungeon.ConvertFrom((OverworldDungeon)landmark)); } } } else if (lastSavedWorld != null) { obj.savedOverworld = lastSavedWorld.savedOverworld; obj.elevation = lastSavedWorld.elevation; obj.baseCoords = lastSavedWorld.baseCoords; obj.dungeons = lastSavedWorld.dungeons; } lastSavedWorld = obj; return(obj); }
public static SavedRoom ConvertFrom(Room room) { var output = new SavedRoom { uuid = room.uuid, size = room.size, grandiosity = room.grandiosity, x = room.x, y = room.y, floor = room.floor, xSize = room.xSize, ySize = room.ySize }; foreach (var entrance in room.entrances) { output.entrances.Add(SavedVector3.ConvertFrom(entrance)); } foreach (var dressingLocation in room.dressingLocations) { output.dressingLocations.Add(SavedVector2.ConvertFrom(dressingLocation)); } return(output); }
private void DrawDatabases <TDatabase, TItem>() where TDatabase : DatabaseManager <TItem> where TItem : DatabaseItem { EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUI.indentLevel++; var savedPosition = new SavedVector2($"{nameof(SharedContentEditorWindow)}.{typeof(TDatabase).Name}.ScrollPosition", Vector2.zero); savedPosition.value = EditorGUILayout.BeginScrollView(savedPosition.value); // Draw External Editor foreach (var externalEditor in _externalEditorData) { EditorGUILayout.BeginVertical(EditorStyles.helpBox); GUILayout.Label(externalEditor.name, EditorStyles.boldLabel); DrawDatabaseRecord <TDatabase, TItem>(externalEditor); EditorGUILayout.EndVertical(); } // Draw Local Editor if (_localEditorData == null) { EditorGUILayout.HelpBox("No locale editor data detected.", MessageType.Warning, true); } else { EditorGUILayout.BeginVertical(EditorStyles.helpBox); GUILayout.Label($"Local ({_localEditorData.name})", EditorStyles.boldLabel); DrawDatabaseRecord <TDatabase, TItem>(_localEditorData); EditorGUILayout.EndVertical(); } EditorGUILayout.EndScrollView(); EditorGUI.indentLevel--; EditorGUILayout.Space(); }