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); }
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); }
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); }
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; }
private FactionDefinition(int id, string name) : base(id, name) { this.iconPointer = new AssetPointer <Texture2D>(); this.goals = new List <Goal>(); this.flightGroups = new List <FlightGroupDefinition>(); }