示例#1
0
        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)));
                        }
                }
        }
示例#2
0
    private LevelManager()
    {
        currentLevel = -1;
        TextAsset targetFile = Resources.Load <TextAsset>("test1");

        levelDetails = JsonConvert.DeserializeObject <LevelDetails> (targetFile.text);
    }
示例#3
0
    // 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;
        }
    }
示例#4
0
        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);
        }
示例#5
0
 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();
    }
示例#10
0
        public void UpdateLevelData(LevelDetails levelDetails)
        {
            if (levelDetails == null)
            {
                return;
            }

            _levelDetails         = levelDetails;
            _levelNumberText.text = levelDetails.LevelNumber.ToString();
        }
示例#11
0
        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);
        }
示例#12
0
    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);
    }
示例#13
0
    // 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);
        }
    }
示例#14
0
        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;
    }
示例#17
0
        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);
            }
        }
示例#18
0
        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);
        }
示例#19
0
 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);
        }
    }
示例#21
0
 private void Start()
 {
     Traffic.Create(Path, Random.Range(15, 25));//Create moving cars along the path with random density
     LevelDetails.Create(Path, 60);
 }
示例#22
0
        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);
        }
示例#23
0
文件: Level.cs 项目: mwalden/mastrog
        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);
        }