예제 #1
0
        private static bool InResourcePath(Texture2D asset)
        {
            string path         = AssetDatabase.GetAssetPath(asset.GetInstanceID());
            string resourcePath = AssetPointer <Texture2D> .CleanPath(path);

            if (Resources.Load <Texture2D>(resourcePath) == null)
            {
                EditorUtility.DisplayDialog(
                    "Invalid asset location",
                    "The asset must be located in a Resources directory",
                    "Got it"
                    );
                return(false);
            }
            return(true);
        }
예제 #2
0
        public override void OnGUI(Rect position, ReflectedProperty property, GUIContent label = null)
        {
            AssetPointer <Texture2D> pointer = (AssetPointer <Texture2D>)property.Value;
            Texture2D asset     = pointer.GetAsset();
            Texture2D lastAsset = asset;

            asset = EditorGUI.ObjectField(position, property.GUIContent, lastAsset, typeof(Texture2D), false) as Texture2D;

            if (lastAsset == asset)
            {
                return;
            }

            if (asset == null || !InResourcePath(asset))
            {
                property.Value = new AssetPointer <Texture2D>();
                return;
            }
            string path = AssetDatabase.GetAssetPath(asset.GetInstanceID());

            property.Value = new AssetPointer <Texture2D>(path);
        }
예제 #3
0
        public override void OnGUI(Rect position, ReflectedProperty property, GUIContent label)
        {
            AssetPointer <Chassis> pointer   = (AssetPointer <Chassis>)property.Value;
            GameObject             asset     = pointer.GetAsset()?.gameObject;
            GameObject             lastAsset = asset;

            asset = EditorGUI.ObjectField(position, property.GUIContent, lastAsset, typeof(GameObject), false) as GameObject;

            if (lastAsset == asset)
            {
                return;
            }

            if (asset == null || !InResourcePath(asset) || !HasComponent(asset))
            {
                property.Value = new AssetPointer <Chassis>();
                return;
            }
            string path = AssetDatabase.GetAssetPath(asset.GetInstanceID());

            property.Value = new AssetPointer <Chassis>(path);
        }
예제 #4
0
        private static AssemblyFile FileFactory(string file, bool compression, Assembly asm, AssetPointer ptr)
        {
            if (asm == null)
            {
                string[] files = new string[AssetPointer.GetPackageCount(ptr.Offset, ptr.Length, ptr.PackageSize)];
                string   dir   = Path.GetDirectoryName(UnSanitizeFilename(file));
                for (int i = 0; i < files.Length; i++)
                {
                    files[i] = dir + "/" + (ptr.PackageId + i) + ".pack";
                }

                return(new IoPackedAssemblyFile(compression, files, ptr));
            }

            string[] f = new string[AssetPointer.GetPackageCount(ptr.Offset, ptr.Length, ptr.PackageSize)];
            string   d = Path.GetDirectoryName(UnSanitizeFilename(file));

            for (int i = 0; i < f.Length; i++)
            {
                f[i] = SanitizeFilename(d + "/" + (ptr.PackageId + i) + ".pack");
            }

            return(new PackedAssemblyFile(compression, f, asm, ptr));
        }
 public void addAsset(AssetPointer newAssetPointer)
 {
     this.assets.Add(newAssetPointer);
     this.modifiedDate = DateTime.Now.ToString();
 }
        public List<KnowledgePoint> GetKnowledgePointList(string courseCode, string CourseNumber)
        {
            List<KnowledgePoint> list = new List<KnowledgePoint>();
            KnowledgePointTableAdapter kpAdapter = new KnowledgePointTableAdapter();
            KnowledgePointParentChildRelationTableAdapter kpRelationAdatper = new KnowledgePointParentChildRelationTableAdapter();
            KnowledgePointAssetRelationTableAdapter kpAssetAdapter = new KnowledgePointAssetRelationTableAdapter();
            CourseTableAdapter courseAdapter = new CourseTableAdapter();
            var courseIdList = courseAdapter.GetIdByCourseDetails(courseCode, Convert.ToInt32(CourseNumber));
            int courseId = courseIdList[0].Id;
            PriorityTableAdapter priorityAdapter = new PriorityTableAdapter();
            AssetTableAdapter assetAdapter = new AssetTableAdapter();
            AssetTypeTableAdapter assetTypeAdapter = new AssetTypeTableAdapter();

            foreach (var row in kpAdapter.GetKnowledgePointByCourseId(courseId))
            {
                KnowledgePoint kp = new KnowledgePoint(row.Id, courseCode + CourseNumber, row.Name, row.xPos, row.yPos);
                kp.priority = (Priority)Enum.Parse(typeof(Priority), priorityAdapter.GetPriorityById(row.Priority)[0].Priority);
                kp.createDate = row.CreatedTime.ToString("G");
                kp.modifiedDate = row.LastModifiedTime.ToString("G");
                foreach (var relation in kpRelationAdatper.GetParentIdByChildId(row.Id))
                {
                    kp.addParent(relation.ParentKnowledgePointId);
                }

                foreach (var relatedAsset in kpAssetAdapter.GetAssetListByKnowledgePointId(row.Id))
                {
                    foreach (var assetPointer in assetAdapter.GetAssetDetailById(relatedAsset.AssetId))
                    {
                        AssetType type = (AssetType)Enum.Parse(typeof(AssetType), assetTypeAdapter.GetDataById(assetPointer.AssetType)[0].AssetType);
                        if (type == AssetType.PDF | type == AssetType.PPT | type == AssetType.Audio | type == AssetType.Video)
                        {
                            AssetPointer pointer = new AssetPointer(assetPointer.Id, assetPointer.Path + assetPointer.AssetName, type, relatedAsset.Start, relatedAsset.End);
                            kp.addAsset(pointer);
                        }
                        else if (type == AssetType.SelfTest)
                        {
                            int selftestId = Convert.ToInt32(assetPointer.AssetName);
                            SelfTestTableAdapter stAdapter = new SelfTestTableAdapter();
                            var st = stAdapter.GetSelfTestDataById(Convert.ToInt32(assetPointer.AssetName))[0];
                            SelfTestQuesion stQuestion = new SelfTestQuesion(st.Question, st.AnswerKey);
                            kp.addTestQuestion(stQuestion);
                        }
                        else if (type == AssetType.QandA)
                        {
                            int messageId = Convert.ToInt32(assetPointer.AssetName);
                            QandATableAdapter qaAdapter = new QandATableAdapter();
                            var qa = qaAdapter.GetQAsById(messageId)[0];
                            Message message = new Message(qa.Id, "user Id: " + qa.AskedBy, qa.Question);
                            try
                            {
                                string answerTypeString = (new AnswerTypeTableAdapter()).GetDataById(qa.AnswerType)[0].AnswerType;
                                Answer answer = new Answer(answerTypeString, qa.Answer);

                            }
                            catch
                            {

                            }
                            finally {
                                message.addAnswer(new Answer(AnswerType.NoAnswer, ""));
                            }

                            message.createTime = qa.CreatedTime.ToString("G");
                            kp.messageBox.lastModifiedDate = qa.CreatedTime.ToString("G");
                            kp.addMessage(message);
                        }
                    }
                }
                kp.createDate = row.CreatedTime.ToString("G");
                kp.modifiedDate = row.LastModifiedTime.ToString("G");
                list.Add(kp);
            }
            return list;
        }
        public List<KnowledgePoint> GetKnowledgePoints(string courseId, string section)
        {
            KnowledgePoint p1 = new KnowledgePoint(1, courseId + " " + section, "binary system", 0, 0);
            AssetPointer ap1 = new AssetPointer(1001, "/L1/introduction.pdf", AssetType.PDF, 3, 8);
            p1.addAsset(ap1);
            AssetPointer ap2 = new AssetPointer(1002, "/L1/introduction.ppt", AssetType.PPT, 1, 2);
            p1.addAsset(ap2);
            AssetPointer ap3 = new AssetPointer(1003, "/Asset/COMP_2611/Lecture_1/sample.wav", AssetType.Audio, 0, 2);
            p1.addAsset(ap3);
            AssetPointer ap4 = new AssetPointer(1004, "/Asset/COMP_2611/Lecture_1/COMP2611.mp4", AssetType.Video, 0, 50);
            p1.addAsset(ap4);

            //create messages for KP

            Message q1 = new Message("ypy", "Is this the question 1?");
            Message q2 = new Message("rv", "Is this the question 2?");
            Message answeredQ1 = new Message("wsf", "Is this answered question 3?");
            answeredQ1.addAnswer(new Answer(AnswerType.Audio, "\\path\\" + answeredQ1.messageId + "\\Q3\\answer.acc"));
            Message answeredQ2 = new Message("tmy", "Is this answered question 4?");
            answeredQ2.addAnswer(new Answer(AnswerType.Text, "This is the answer of Q4"));
            p1.addMessage(q1);
            p1.addMessage(q2);
            p1.addMessage(answeredQ1);
            p1.addMessage(answeredQ2);

            SelfTestQuesion stq1 = new SelfTestQuesion("This is self test question Q1 with answer", "This is answer key");
            SelfTestQuesion stq2 = new SelfTestQuesion("This is self test question Q2 without answer (might be drawing answer)");
            p1.addTestQuestion(stq1);
            p1.addTestQuestion(stq2);
            p1.setPriority(Priority.High);

            KnowledgePoint p2 = new KnowledgePoint(2, courseId + "_" + section, "binary addition", 0, 200);
            p2.addParent(p1.id);
            AssetPointer ap7 = new AssetPointer(1007, "/L1/introduction.ppt", AssetType.PPT, 5, 6);
            p2.addAsset(ap7);
            p2.setPriority(Priority.Medium);

            KnowledgePoint p3 = new KnowledgePoint(3, courseId + "_" + section, "binary substraction", 400, 200);
            p3.addParent(p1.id);
            AssetPointer ap8 = new AssetPointer(1008, "/L1/introduction.ppt", AssetType.PPT, 7, 9);
            p3.addAsset(ap8);
            p3.setPriority(Priority.Medium);

            KnowledgePoint p4 = new KnowledgePoint(4, courseId + "_" + section, "binary operation", 0, 400);
            p4.addParent(p2.id);
            p4.addParent(p3.id);
            AssetPointer ap9 = new AssetPointer(1009, "/L1/introduction.ppt", AssetType.PPT, 10, 10);
            p4.addAsset(ap9);
            p4.setPriority(Priority.Low);

            List<KnowledgePoint> points = new List<KnowledgePoint>();
            points.Add(p1);
            points.Add(p2);
            points.Add(p3);
            points.Add(p4);

            return points;
        }
예제 #8
0
 private FactionDefinition(int id, string name) : base(id, name)
 {
     this.iconPointer  = new AssetPointer <Texture2D>();
     this.goals        = new List <Goal>();
     this.flightGroups = new List <FlightGroupDefinition>();
 }