public static void ExportPlugin(string path, string sdkVersion, LevelDetails details) { string templatePath = Path.Combine(Application.streamingAssetsPath, "PluginTemplate.dll"); // Convert AIModDesc values from the editor to a byte array List <byte> modDescList = new List <byte>(modDescTemplateValues.Length); modDescList.AddRange(BitConverter.GetBytes((int)details.missionType)); modDescList.AddRange(BitConverter.GetBytes(details.numPlayers)); modDescList.AddRange(BitConverter.GetBytes(details.maxTechLevel)); modDescList.AddRange(BitConverter.GetBytes(details.unitOnlyMission ? 1 : 0)); byte[] newModDesc = modDescList.ToArray(); // Open plugin destination using (FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.Read)) using (BinaryWriter writer = new BinaryWriter(fs)) { // Read plugin template using (FileStream templateFS = new FileStream(templatePath, FileMode.Open, FileAccess.Read, FileShare.Read)) using (BinaryReader templateReader = new BinaryReader(templateFS)) { // If you recompile the template, you will need to double check that the order has not changed. ReplaceSection(templateReader, writer, "MapFile", details.mapName); ReplaceSection(templateReader, writer, "TechFile", details.techTreeName); ReplaceSection(templateReader, writer, modDescTemplateValues, newModDesc); ReplaceSection(templateReader, writer, "LevelDesc", details.description); ReplaceSection(templateReader, writer, "DotNetMissionSDK", "DotNetMissionSDK_v" + sdkVersion.Replace(".", "_") + ".dll"); // Write rest of file writer.Write(templateReader.ReadBytes((int)(templateReader.BaseStream.Length - templateReader.BaseStream.Position))); } } }
private LevelManager() { currentLevel = -1; TextAsset targetFile = Resources.Load <TextAsset>("test1"); levelDetails = JsonConvert.DeserializeObject <LevelDetails> (targetFile.text); }
// Use this for initialization void Start() { currentScene = SceneManager.GetActiveScene(); level = playlist.GetLevel(currentScene.name); level.buildIndex = currentScene.buildIndex; RemoteSettingsHolder rsh = GameObject.FindObjectOfType <RemoteSettingsHolder>(); if (rsh != null) { deaths_to_skip = rsh.DeathsToSkip; Debug.Log("Deaths To Skip Updated: " + deaths_to_skip); } if (skip_goal) { return; } Key[] keys = GameObject.FindObjectsOfType <Key>(); level.keys = keys.Length; Hazard[] hazards = GameObject.FindObjectsOfType <Hazard>(); level.hazards = hazards.Length; Attacker[] attackers = GameObject.FindObjectsOfType <Attacker>(); level.attackers = attackers.Length; Mover[] movers = GameObject.FindObjectsOfType <Mover>(); level.moving_hazards = movers.Length; foreach (Mover mover in movers) { level.moving_hazards += mover.objects.Length; } }
private static IList <LevelDetails> fetchBoqItemAssignments(Session session, long?projectId, bool fetchResources, bool fetchConditions, bool fetchQuoteItems, bool cyclic, bool fetchPredicted, System.Collections.ICollection ids) { IList <LevelDetails> levelDetailsList = new List <DeepLoadItemsUtil.LevelDetails>(); LevelDetails firstLevelDetails = new LevelDetails(); ICollection <long> idsOfLineItems = Collections.EMPTY_LIST; if (fetchResources) { idsOfLineItems = longIdsQuery(session, "select distinct o.assemblyTable.assemblyId from BoqItemAssemblyTable as o where o.projectId = :prjId and o.boqItemTable.boqitemId in (:ids)", projectId, ids); ((IList <long>)firstLevelDetails.idsOfLineItems).AddRange(idsOfLineItems); if (idsOfLineItems.Count > 0) { firstLevelDetails.objsOfLineItems = listObjectsQuery(session, projectId, "select o.boqItemTable.boqitemId, o, o.assemblyTable from BoqItemAssemblyTable as o left join fetch o.assemblyTable where o.projectId = :prjId and o.boqItemTable.boqitemId in (:ids)", ids, fetchPredicted); } firstLevelDetails.objsOfEquipment = listObjectsQuery(session, projectId, "select o.boqItemTable.boqitemId, o, o.equipmentTable from BoqItemEquipmentTable as o left join fetch o.equipmentTable where o.projectId = :prjId and o.boqItemTable.boqitemId in (:ids)", ids, fetchPredicted); firstLevelDetails.objsOfLabor = listObjectsQuery(session, projectId, "select o.boqItemTable.boqitemId, o, o.laborTable from BoqItemLaborTable as o left join fetch o.laborTable where o.projectId = :prjId and o.boqItemTable.boqitemId in (:ids)", ids, fetchPredicted); firstLevelDetails.objsOfMaterial = listObjectsQuery(session, projectId, "select o.boqItemTable.boqitemId, o, o.materialTable from BoqItemMaterialTable as o left join fetch o.materialTable as m left join fetch m.supplierTable where o.projectId = :prjId and o.boqItemTable.boqitemId in (:ids)", ids, fetchPredicted); firstLevelDetails.objsOfSubcontractor = listObjectsQuery(session, projectId, "select o.boqItemTable.boqitemId, o, o.subcontractorTable from BoqItemSubcontractorTable as o left join fetch o.subcontractorTable where o.projectId = :prjId and o.boqItemTable.boqitemId in (:ids)", ids, fetchPredicted); firstLevelDetails.objsOfConsumable = listObjectsQuery(session, projectId, "select o.boqItemTable.boqitemId, o, o.consumableTable from BoqItemConsumableTable as o left join fetch o.consumableTable where o.projectId = :prjId and o.boqItemTable.boqitemId in (:ids)", ids, fetchPredicted); } if (fetchConditions) { firstLevelDetails.objsOfConditions = listObjectsQuery(session, projectId, "select o.boqItemTable.boqitemId, o, o.conditionTable from BoqItemConditionTable as o left join fetch o.conditionTable where o.projectId = :prjId and o.boqItemTable.boqitemId in (:ids)", ids, false); } if (fetchQuoteItems) { firstLevelDetails.objsOfQuoteItems = listObjectsQuery(session, projectId, "select o.boqItemTable.boqitemId, o, o.quotationTable from QuoteItemTable as o left join fetch o.quotationTable where o.projectId = :prjId and o.boqItemTable.boqitemId in (:ids)", ids, false); } if (!firstLevelDetails.Empty) { levelDetailsList.Add(firstLevelDetails); } if (idsOfLineItems.Count != 0) { LevelDetails levelDetails = firstLevelDetails; do { levelDetails = new LevelDetails(); levelDetails.objsOfEquipment = listObjectsQuery(session, projectId, "select o.assemblyTable.assemblyId, o, o.equipmentTable from AssemblyEquipmentTable as o left join fetch o.equipmentTable where o.projectId = :prjId and o.assemblyTable.assemblyId in (:ids)", idsOfLineItems, false); levelDetails.objsOfLabor = listObjectsQuery(session, projectId, "select o.assemblyTable.assemblyId, o, o.laborTable from AssemblyLaborTable as o left join fetch o.laborTable where o.projectId = :prjId and o.assemblyTable.assemblyId in (:ids)", idsOfLineItems, false); levelDetails.objsOfMaterial = listObjectsQuery(session, projectId, "select o.assemblyTable.assemblyId, o, o.materialTable from AssemblyMaterialTable as o left join fetch o.materialTable as m left join fetch m.supplierTable where o.projectId = :prjId and o.assemblyTable.assemblyId in (:ids)", idsOfLineItems, false); levelDetails.objsOfSubcontractor = listObjectsQuery(session, projectId, "select o.assemblyTable.assemblyId, o, o.subcontractorTable from AssemblySubcontractorTable as o left join fetch o.subcontractorTable where o.projectId = :prjId and o.assemblyTable.assemblyId in (:ids)", idsOfLineItems, false); levelDetails.objsOfConsumable = listObjectsQuery(session, projectId, "select o.assemblyTable.assemblyId, o, o.consumableTable from AssemblyConsumableTable as o left join fetch o.consumableTable where o.projectId = :prjId and o.assemblyTable.assemblyId in (:ids)", idsOfLineItems, false); levelDetails.objsOfLineItems = listObjectsQuery(session, projectId, "select o.parentTable.assemblyId, o, o.childTable from AssemblyAssemblyTable as o left join fetch o.childTable where o.projectId = :prjId and o.parentTable.assemblyId in (:ids)", idsOfLineItems, false); idsOfLineItems = longIdsQuery(session, "select distinct o.childTable.assemblyId from AssemblyAssemblyTable as o where o.projectId = :prjId and o.parentTable.assemblyId in (:ids)", projectId, idsOfLineItems); ((IList <long>)levelDetails.idsOfLineItems).AddRange(idsOfLineItems); if (!levelDetails.Empty) { levelDetailsList.Add(levelDetails); } } while (levelDetails.idsOfLineItems.Count != 0); } return(levelDetailsList); }
public void StoreLevel(LevelDetails levelD) { Debug.Log("calling store Level"); DBCommunicator.StoreLevel(levelD, () => { Debug.Log("Level Stored"); }); }
public static void StoreLevel(LevelDetails lDetails, StoreLevelCallback callback) { RestClient.Put <LevelDetails>($"{databaseURL}Levels/{lDetails.levelName}.json", lDetails).Then(response => { UnityEngine.Debug.Log("Response as " + response); callback(); }); }
void Awake() { visibilityOverlay = transform.parent.FindChild("Visibility Overlay").GetComponent<Image>(); visibilityOverlay.enabled = true; photonView = GetComponent<PhotonView>(); levelDetails = GameObject.Find("Level").GetComponent<LevelDetails>(); }
void Awake() { visibilityOverlay = transform.parent.FindChild("Visibility Overlay").GetComponent <Image>(); visibilityOverlay.enabled = true; photonView = GetComponent <PhotonView>(); levelDetails = GameObject.Find("Level").GetComponent <LevelDetails>(); }
[SerializeField] private float dValue = 0.5f; //Displacement Value for snapping player position. Higher values lead to more visual discrepancies. /*-------------------------------------------------------- Start/Update ---------------------------------------------------------- */ private void Start() { //Event Subscriptions InputManager.TouchDetected += OnTouchDetection; KnockbackManager.KnockbackDetected += OnKnockbackDetection; currentLevel = FindObjectOfType <LevelDetails>(); curLane = Mathf.CeilToInt(currentLevel.lanes.Length / 2.0f); ResetPosition(); }
public void UpdateLevelData(LevelDetails levelDetails) { if (levelDetails == null) { return; } _levelDetails = levelDetails; _levelNumberText.text = levelDetails.LevelNumber.ToString(); }
public static LevelDetails GetLevelData(string levelName) { var fileReader = new StreamReader(Path.Combine(levelFilePath, levelName + ".csv")); var returnData = new LevelDetails(levelName); if (fileReader.ReadLine().Trim() != levelName) { ErrorLogger.AddDebugText("Invalid level file: " + levelName); ErrorLogger.AddDebugText("Level name does not match file name"); return(returnData); } returnData.MapWidth = int.Parse(fileReader.ReadLine().Trim()); returnData.MapHeight = int.Parse(fileReader.ReadLine().Trim()); if (fileReader.ReadLine().Trim() != "###") { ErrorLogger.AddDebugText("Invalid level file: " + levelName); ErrorLogger.AddDebugText("Incorrect end to heading section"); return(returnData); } string line; while ((line = fileReader.ReadLine().Trim()) != "###") { var splitLine = line.Split(','); returnData.TileDictionary[int.Parse(splitLine[0])] = splitLine[1]; } returnData.TileGrid = new int[returnData.MapHeight * returnData.MapWidth]; for (int y = 0; y < returnData.MapHeight; y++) { var splitline = fileReader.ReadLine().Trim().Split(','); for (int x = 0; x < returnData.MapWidth; x++) { returnData.TileGrid[y * returnData.MapWidth + x] = int.Parse(splitline[x]); } } if (fileReader.ReadLine().Trim() != "###") { ErrorLogger.AddDebugText("Invalid level file: " + levelName); ErrorLogger.AddDebugText("Invalid map section"); return(returnData); } return(returnData); }
private void Start() { Debug.Log("Start Called"); UserDetails newUser = new UserDetails("The", "Developer", "newDeveloper", "gameOff2020"); //Register the new User //RegisterClicked(newUser); //Create a new Level and Store it LevelDetails levelData = new LevelDetails("01. Level A", "some level JSON"); StoreLevel(levelData); //Verify the UserName is Unique //VerifyUniqueUserName(newUser); }
// Initialises level details. public static void InitLevelDetails() { if (levels != null) return; levels = new List<LevelDetails>(); levels.Add(new LevelDetails { level = 0, exp = 0 }); for (int i = 1; i <= 100; i++) { var level = new LevelDetails { level = i, exp = levels[i-1].exp + 100 + 10*i + Mathf.Pow(1.1f, i), }; levels.Add(level); } }
public void Initialise(LevelDetails levelDetails) { ResetGrid(); _levelDetails = levelDetails; if (levelDetails == null) { return; } if (levelDetails.NodesList.Count != 5) { Debug.LogErrorFormat("Incorrect node count: {0}", levelDetails.NodesList.Count); return; } var v_index = 0; levelDetails.NodesList.ForEach(node => { if (node == null) { return; } if (node.Point1.Count != 2 || node.Point2.Count != 2) { Debug.LogErrorFormat("node.Point1.Count != 2 -> {0} | node.Point2.Count != 2 -> {1}", node.Point1.Count != 2, node.Point2.Count != 2); return; } UpdateNodeUI(node.NodeId, node.Point1, v_index); UpdateNodeUI(node.NodeId, node.Point2, v_index); v_index++; }); }
/*---------------------------------------------------- INITIALISATION ----------------------------------------------------*/ public void Initialisation() { gameManager = GameObject.Find("GameManager").GetComponent <GameManager>(); gameMenuUI = GameObject.Find("GameMenuUI").GetComponent <GameMenuUI>(); w = KeyCode.W; a = KeyCode.A; s = KeyCode.S; d = KeyCode.D; left = KeyCode.LeftArrow; right = KeyCode.RightArrow; up = KeyCode.UpArrow; down = KeyCode.DownArrow; num1 = KeyCode.Alpha1; num2 = KeyCode.Alpha2; spacebar = KeyCode.Space; consoleCamera = GetComponent <Camera>(); levelDetails = GameObject.Find("Level").GetComponent <LevelDetails>(); levelDetails.consoleCameraControl = this; }
/*---------------------------------------------------- INITIALISATION ----------------------------------------------------*/ public void Initialisation() { gameManager = GameObject.Find("GameManager").GetComponent<GameManager>(); gameMenuUI = GameObject.Find("GameMenuUI").GetComponent<GameMenuUI>(); w = KeyCode.W; a = KeyCode.A; s = KeyCode.S; d = KeyCode.D; left = KeyCode.LeftArrow; right = KeyCode.RightArrow; up = KeyCode.UpArrow; down = KeyCode.DownArrow; num1 = KeyCode.Alpha1; num2 = KeyCode.Alpha2; spacebar = KeyCode.Space; consoleCamera = GetComponent<Camera>(); levelDetails = GameObject.Find("Level").GetComponent<LevelDetails>(); levelDetails.consoleCameraControl = this; }
private static void deepFillResourceItem(IList <LevelDetails> levelDetailsList, ResourceWithAssignmentsTable parentTable, bool cyclic, int level, bool nullifyId) { if (levelDetailsList.Count <= level) { if (parentTable is BoqItemTable) { BoqItemTable boqTable = (BoqItemTable)parentTable; boqTable.BoqItemMaterialSet = Collections.EMPTY_SET; boqTable.BoqItemLaborSet = Collections.EMPTY_SET; boqTable.BoqItemEquipmentSet = Collections.EMPTY_SET; boqTable.BoqItemConsumableSet = Collections.EMPTY_SET; boqTable.BoqItemSubcontractorSet = Collections.EMPTY_SET; boqTable.BoqItemAssemblySet = Collections.EMPTY_SET; boqTable.BoqItemConditionSet = Collections.EMPTY_SET; boqTable.QuoteItemSet = Collections.EMPTY_SET; } else if (parentTable is AssemblyTable) { AssemblyTable assTable = (AssemblyTable)parentTable; assTable.AssemblyMaterialSet = Collections.EMPTY_SET; assTable.AssemblyLaborSet = Collections.EMPTY_SET; assTable.AssemblyEquipmentSet = Collections.EMPTY_SET; assTable.AssemblyConsumableSet = Collections.EMPTY_SET; assTable.AssemblySubcontractorSet = Collections.EMPTY_SET; assTable.AssemblyChildSet = Collections.EMPTY_SET; } return; } LevelDetails levelDetails = levelDetailsList[level]; long? parentId = parentTable.Id; IList <AssignmentWithResource> materials = notNullList(levelDetails.objsOfMaterial[parentId]); IList <AssignmentWithResource> labors = notNullList(levelDetails.objsOfLabor[parentId]); IList <AssignmentWithResource> equipments = notNullList(levelDetails.objsOfEquipment[parentId]); IList <AssignmentWithResource> consumables = notNullList(levelDetails.objsOfConsumable[parentId]); IList <AssignmentWithResource> subcontractors = notNullList(levelDetails.objsOfSubcontractor[parentId]); IList <AssignmentWithResource> conditions = notNullList(levelDetails.objsOfConditions[parentId]); IList <AssignmentWithResource> quoteItems = notNullList(levelDetails.objsOfQuoteItems[parentId]); IList <AssignmentWithResource> lineItems = notNullList(levelDetails.objsOfLineItems[parentId]); if (parentTable is BoqItemTable) { BoqItemTable boqTable = (BoqItemTable)parentTable; boqTable.BoqItemMaterialSet = new HashSet <BoqItemMaterialTable>(materials.Count); fillAssignmentSetWithData(boqTable, boqTable.BoqItemMaterialSet, materials, cyclic); boqTable.BoqItemLaborSet = new HashSet <BoqItemLaborTable>(labors.Count); fillAssignmentSetWithData(boqTable, boqTable.BoqItemLaborSet, labors, cyclic); boqTable.BoqItemEquipmentSet = new HashSet <BoqItemEquipmentTable>(equipments.Count); fillAssignmentSetWithData(boqTable, boqTable.BoqItemEquipmentSet, equipments, cyclic); boqTable.BoqItemSubcontractorSet = new HashSet <BoqItemSubcontractorTable>(subcontractors.Count); fillAssignmentSetWithData(boqTable, boqTable.BoqItemSubcontractorSet, subcontractors, cyclic); boqTable.BoqItemConsumableSet = new HashSet <BoqItemConsumableTable>(consumables.Count); fillAssignmentSetWithData(boqTable, boqTable.BoqItemConsumableSet, consumables, cyclic); boqTable.BoqItemConditionSet = new HashSet <BoqItemConditionTable>(conditions.Count); fillAssignmentSetWithData(boqTable, boqTable.BoqItemConditionSet, conditions, cyclic); boqTable.QuoteItemSet = new HashSet <QuoteItemTable>(quoteItems.Count); fillAssignmentSetWithData(boqTable, boqTable.QuoteItemSet, quoteItems, cyclic); boqTable.BoqItemAssemblySet = new HashSet <BoqItemAssemblyTable>(lineItems.Count); fillAssignmentSetWithData(boqTable, levelDetailsList, level, boqTable.BoqItemAssemblySet, lineItems, cyclic, nullifyId); } else if (parentTable is AssemblyTable) { AssemblyTable assemblyTable = (AssemblyTable)parentTable; if (nullifyId) { //System.out.println("SETTING NULL TO: "+parentTable.getTitle()); assemblyTable.Id = null; } assemblyTable.AssemblyMaterialSet = new HashSet <AssemblyMaterialTable>(materials.Count); fillAssignmentSetWithData(assemblyTable, assemblyTable.AssemblyMaterialSet, materials, cyclic); assemblyTable.AssemblyLaborSet = new HashSet <AssemblyLaborTable>(labors.Count); fillAssignmentSetWithData(assemblyTable, assemblyTable.AssemblyLaborSet, labors, cyclic); assemblyTable.AssemblyEquipmentSet = new HashSet <AssemblyEquipmentTable>(equipments.Count); fillAssignmentSetWithData(assemblyTable, assemblyTable.AssemblyEquipmentSet, equipments, cyclic); assemblyTable.AssemblySubcontractorSet = new HashSet <AssemblySubcontractorTable>(subcontractors.Count); fillAssignmentSetWithData(assemblyTable, assemblyTable.AssemblySubcontractorSet, subcontractors, cyclic); assemblyTable.AssemblyConsumableSet = new HashSet <AssemblyConsumableTable>(consumables.Count); fillAssignmentSetWithData(assemblyTable, assemblyTable.AssemblyConsumableSet, consumables, cyclic); assemblyTable.AssemblyChildSet = new HashSet <AssemblyAssemblyTable>(lineItems.Count); fillAssignmentSetWithData(assemblyTable, levelDetailsList, level, assemblyTable.AssemblyChildSet, lineItems, cyclic, nullifyId); } }
private static IList <LevelDetails> fetchLineItemAssignments(Session session, long?projectId, System.Collections.IList ids) { string projectQuery = ""; if (projectId != null) { projectQuery = "o.projectId = :prjId and "; } IList <LevelDetails> levelDetailsList = new List <DeepLoadItemsUtil.LevelDetails>(); LevelDetails firstLevelDetails = new LevelDetails(); ICollection <long> idsOfLineItems = Collections.EMPTY_LIST; idsOfLineItems = longIdsQuery(session, "select distinct o.childTable.assemblyId from AssemblyAssemblyTable as o where " + projectQuery + "o.parentTable.assemblyId in (:ids)", projectId, ids); ((IList <long>)firstLevelDetails.idsOfLineItems).AddRange(idsOfLineItems); if (idsOfLineItems.Count > 0) { firstLevelDetails.objsOfLineItems = listObjectsQuery(session, projectId, "select o.parentTable.assemblyId, o, o.childTable from AssemblyAssemblyTable as o left join fetch o.childTable where " + projectQuery + "o.parentTable.assemblyId in (:ids)", ids, false); } firstLevelDetails.objsOfEquipment = listObjectsQuery(session, projectId, "select o.assemblyTable.assemblyId, o, o.equipmentTable from AssemblyEquipmentTable as o left join fetch o.equipmentTable where " + projectQuery + "o.assemblyTable.assemblyId in (:ids)", ids, false); firstLevelDetails.objsOfLabor = listObjectsQuery(session, projectId, "select o.assemblyTable.assemblyId, o, o.laborTable from AssemblyLaborTable as o left join fetch o.laborTable where " + projectQuery + "o.assemblyTable.assemblyId in (:ids)", ids, false); // if ( firstLevelDetails.objsOfLabor.size() > 0 ) { // System.out.println("FATCH RATE IS: "+((LaborTable)firstLevelDetails.objsOfLabor.get(2)).getRate()); // } firstLevelDetails.objsOfMaterial = listObjectsQuery(session, projectId, "select o.assemblyTable.assemblyId, o, o.materialTable from AssemblyMaterialTable as o left join fetch o.materialTable as m left join fetch m.supplierTable where " + projectQuery + "o.assemblyTable.assemblyId in (:ids)", ids, false); firstLevelDetails.objsOfSubcontractor = listObjectsQuery(session, projectId, "select o.assemblyTable.assemblyId, o, o.subcontractorTable from AssemblySubcontractorTable as o left join fetch o.subcontractorTable where " + projectQuery + "o.assemblyTable.assemblyId in (:ids)", ids, false); firstLevelDetails.objsOfConsumable = listObjectsQuery(session, projectId, "select o.assemblyTable.assemblyId, o, o.consumableTable from AssemblyConsumableTable as o left join fetch o.consumableTable where " + projectQuery + "o.assemblyTable.assemblyId in (:ids)", ids, false); if (!firstLevelDetails.Empty) { levelDetailsList.Add(firstLevelDetails); } if (idsOfLineItems.Count != 0) { LevelDetails levelDetails = firstLevelDetails; do { levelDetails = new LevelDetails(); levelDetails.objsOfEquipment = listObjectsQuery(session, projectId, "select o.assemblyTable.assemblyId, o, o.equipmentTable from AssemblyEquipmentTable as o left join fetch o.equipmentTable where " + projectQuery + "o.assemblyTable.assemblyId in (:ids)", idsOfLineItems, false); levelDetails.objsOfLabor = listObjectsQuery(session, projectId, "select o.assemblyTable.assemblyId, o, o.laborTable from AssemblyLaborTable as o left join fetch o.laborTable where " + projectQuery + "o.assemblyTable.assemblyId in (:ids)", idsOfLineItems, false); levelDetails.objsOfMaterial = listObjectsQuery(session, projectId, "select o.assemblyTable.assemblyId, o, o.materialTable from AssemblyMaterialTable as o left join fetch o.materialTable as m left join fetch m.supplierTable where " + projectQuery + "o.assemblyTable.assemblyId in (:ids)", idsOfLineItems, false); levelDetails.objsOfSubcontractor = listObjectsQuery(session, projectId, "select o.assemblyTable.assemblyId, o, o.subcontractorTable from AssemblySubcontractorTable as o left join fetch o.subcontractorTable where " + projectQuery + "o.assemblyTable.assemblyId in (:ids)", idsOfLineItems, false); levelDetails.objsOfConsumable = listObjectsQuery(session, projectId, "select o.assemblyTable.assemblyId, o, o.consumableTable from AssemblyConsumableTable as o left join fetch o.consumableTable where " + projectQuery + "o.assemblyTable.assemblyId in (:ids)", idsOfLineItems, false); levelDetails.objsOfLineItems = listObjectsQuery(session, projectId, "select o.parentTable.assemblyId, o, o.childTable from AssemblyAssemblyTable as o left join fetch o.childTable where " + projectQuery + "o.parentTable.assemblyId in (:ids)", idsOfLineItems, false); idsOfLineItems = longIdsQuery(session, "select distinct o.childTable.assemblyId from AssemblyAssemblyTable as o where " + projectQuery + "o.parentTable.assemblyId in (:ids)", projectId, idsOfLineItems); ((IList <long>)levelDetails.idsOfLineItems).AddRange(idsOfLineItems); if (!levelDetails.Empty) { levelDetailsList.Add(levelDetails); } } while (levelDetails.idsOfLineItems.Count != 0); } return(levelDetailsList); }
private void Awake() { instance = this; }
public override void OnInspectorGUI() { base.OnInspectorGUI(); // find levels if (GUILayout.Button("Find Levels")) { Debug.Log(playlist.endLevel); // find all the levels playlist.levels.Clear(); string[] scenes = AssetDatabase.FindAssets("t:Scene"); string[] levels = AssetDatabase.FindAssets("t:LevelDetails"); foreach (string lvl in levels) { LevelDetails level = (LevelDetails)AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(lvl), typeof(LevelDetails)); if (level.level_name != playlist.tutorial.level_name && level.level_name != playlist.endLevel.level_name) { playlist.levels.Add(level); } } // find scenes in the levels folder and create level details foreach (string scene in scenes) { if (AssetDatabase.GUIDToAssetPath(scene).Contains("/Levels/")) { string[] path = AssetDatabase.GUIDToAssetPath(scene).Split('/'); string lvl_path = ""; for (int i = 0; i < path.Length - 1; i++) { lvl_path += path[i] + "/"; } string level_name = path[path.Length - 1].Replace(".unity", ""); // see if the level already exists bool level_missing = true; foreach (LevelDetails lvld in playlist.levels) { if (lvld.level_name == level_name) { level_missing = false; } } if (level_name == playlist.tutorial.level_name || level_name == playlist.endLevel.level_name) { level_missing = false; } if (level_missing) { LevelDetails olevel = (LevelDetails)AssetDatabase.LoadAssetAtPath(lvl_path + level_name + ".asset", typeof(LevelDetails)); if (olevel == null) { LevelDetails nLevel = ScriptableObject.CreateInstance <LevelDetails>(); nLevel.level_name = level_name; nLevel.name = level_name; AssetDatabase.CreateAsset(nLevel, lvl_path + level_name + ".asset"); if (!playlist.levels.Contains(nLevel)) { playlist.levels.Add(nLevel); } } else { if (!playlist.levels.Contains(olevel)) { playlist.levels.Add(olevel); } } EditorUtility.SetDirty(playlist); } } } } // sort levels if (GUILayout.Button("Sort Levels")) { /* * foreach (LevelDetails lvl in playlist.levels) * { * Debug.Log(lvl.level_name + ": " +lvl.level_rank.ToString()); * } */ // CompLevel compLevel = new CompLevel(); playlist.levels.Sort(comparer: compLevel); playlist.SavePlaylistToChild(0); CompLevel2 compLevel2 = new CompLevel2(); playlist.levels.Sort(comparer: compLevel2); playlist.SavePlaylistToChild(1); CompLevel3 compLevel3 = new CompLevel3(); playlist.levels.Sort(comparer: compLevel3); playlist.SavePlaylistToChild(2); CompLevel4 compLevel4 = new CompLevel4(); playlist.levels.Sort(comparer: compLevel4); playlist.SavePlaylistToChild(3); CompLevel5 compLevel5 = new CompLevel5(); playlist.levels.Sort(comparer: compLevel5); playlist.SavePlaylistToChild(4); CompLevel6 compLevel6 = new CompLevel6(); playlist.levels.Sort(comparer: compLevel6); playlist.SavePlaylistToChild(5); CompLevel7 compLevel7 = new CompLevel7(); playlist.levels.Sort(comparer: compLevel7); playlist.SavePlaylistToChild(6); EditorUtility.SetDirty(playlist); } if (GUILayout.Button("Playlist 0")) { playlist.LoadPlaylist(0); EditorUtility.SetDirty(playlist); } if (GUILayout.Button("Playlist 1")) { playlist.LoadPlaylist(1); EditorUtility.SetDirty(playlist); } if (GUILayout.Button("Playlist 2")) { playlist.LoadPlaylist(2); EditorUtility.SetDirty(playlist); } if (GUILayout.Button("Playlist 3")) { playlist.LoadPlaylist(3); EditorUtility.SetDirty(playlist); } if (GUILayout.Button("Playlist 4")) { playlist.LoadPlaylist(4); EditorUtility.SetDirty(playlist); } if (GUILayout.Button("Playlist 5")) { playlist.LoadPlaylist(5); EditorUtility.SetDirty(playlist); } if (GUILayout.Button("Playlist 6")) { playlist.LoadPlaylist(6); EditorUtility.SetDirty(playlist); } }
private void Start() { Traffic.Create(Path, Random.Range(15, 25));//Create moving cars along the path with random density LevelDetails.Create(Path, 60); }
public static LevelDetails GetLevelTemplate(LevelId levelId) { // TODO: Don't spend too much time here - will get put into a DB in the end anyway. var levelFilePath = Path.Combine(filePath, levelFilePaths[levelId]); var fileReader = new StreamReader(levelFilePath); // Get level name first var levelName = fileReader.ReadLine().Trim(); var levelTemplate = new LevelDetails(levelName, levelId); if ((LevelId)Enum.Parse(typeof(LevelId), fileReader.ReadLine().Trim()) != levelId) { ErrorLogger.AddDebugText(string.Format("Level template is broken - level id doesn't match for level {0}", levelId)); fileReader.Close(); return(levelTemplate); } levelTemplate.MapWidth = int.Parse(fileReader.ReadLine()); levelTemplate.MapHeight = int.Parse(fileReader.ReadLine()); if (fileReader.ReadLine().Trim() != "###") { ErrorLogger.AddDebugText(string.Format("Header section for level {0}, has problems", levelId)); return(levelTemplate); } // Tile Dictionary string line; while ((line = fileReader.ReadLine().Trim()) != "###") { var splitLine = line.Split(','); levelTemplate.TileDictionary[int.Parse(splitLine[0])] = (TileType)Enum.Parse(typeof(TileType), splitLine[1]); } // TileMap levelTemplate.MapGrid = new int[levelTemplate.MapHeight * levelTemplate.MapWidth]; for (int y = 0; y < levelTemplate.MapHeight; y++) { var splitLine = fileReader.ReadLine().Trim().Split(','); for (int x = 0; x < levelTemplate.MapWidth; x++) { levelTemplate.MapGrid[y * levelTemplate.MapWidth + x] = int.Parse(splitLine[x]); } } if (fileReader.ReadLine().Trim() != "###") { ErrorLogger.AddDebugText(string.Format("Map section for level {0} has problems", levelId)); return(levelTemplate); } // Furnishings while ((line = fileReader.ReadLine().Trim()) != "###") { var splitLine = line.Split(','); levelTemplate.Furnishings.Add(splitLine); } fileReader.Close(); return(levelTemplate); }
public void serialize() { LevelDetail levelDetail = selectedLevel != null?selectedLevel:new LevelDetail(); levelDetail.backgroundImage = image.name; levelDetail.folderName = levelName; levelDetail.numberOfLanes = numberOfLanes; levelDetail.numberOfLevels = 4; levelDetail.lengthInSeconds = lengthInSeconds; levelDetail.preview = sampleTrack; levelDetail.startingLane = 1; levelDetail.title = levelName; List <List <Obstacle> > rows = new List <List <Obstacle> > (); HashSet <string> obstacleNames = new HashSet <string> (); levelDetail.powerBoxChance = chanceOfPowerbox; levelDetail.changeOfGoodPowerBox = chanceOfGoodPowerbox; int count = 0; List <Obstacle> row = new List <Obstacle> (); foreach (GameObject go in obstacles) { obstacleNames.Add(go.name); Obstacle obstacle = new Obstacle(); obstacle.name = go.name; obstacle.speed = 100; count++; row.Add(obstacle); if (count == numberOfLanes) { rows.Add(row); row = new List <Obstacle> (); count = 0; } } levelDetail.rows = rows; levelDetail.obstacleNames = obstacleNames.ToList(); List <LevelDetail> levels = LevelManager.Instance.getLevels(); int index = -1; for (int x = 0; x < levels.Count; x++) { LevelDetail level = levels [x]; if (level.folderName.Equals(levelDetail.folderName)) { index = x; break; } } if (index >= 0) { levelDetail.id = levels [index].id; levels [index] = levelDetail; } else { levelDetail.id = levels.Count; levels.Add(levelDetail); } LevelDetails levelDetails = LevelManager.Instance.getLevelDeatils(); levelDetails.levels = levels; string json = JsonConvert.SerializeObject(levelDetails); System.IO.File.WriteAllText("Assets/Resources/test1.json", json); print(json); }