void ISerializationCallbackReceiver.OnAfterDeserialize() { //cgme_lib = CGME.CGLibrary.GetInstance(); cgme_lib.resourceLibrary.Clear(); foreach (SerialNode snode in lib_node.resources) { CGME.Resource new_res = CGME.CGFactory.CreateCGInstance(snode.type_string) as CGME.Resource; new_res.Read(snode.data); cgme_lib.resourceLibrary.Add(new_res); } foreach (SerialNode snode in lib_node.cards) { CGME.Card new_card = new CGME.Card(); new_card.Read(snode.data); cgme_lib.CardsLibrary.Add(new_card); } foreach (ActionWrapper action_wrapper in actions) { action_wrapper.OnAfterDeserialize(); } }
public void InitAsText(GameObject parent, CGME.Resource resource, ResourceType type) { //view_component = (Component)parent.AddComponent<TextMesh>(); view_component = (ComponentWrapper) new TextMeshWrapper(); view_component.Init(parent); view_resource = resource; res_type = type; }
// DISPLAY ACTION MODIFY RESOURCE ------------------------------------ void DisplayBody(CGME.ActionModifyResource action) { CGM.GameManager lib = GameObject.FindObjectOfType <CGM.GameManager>(); EditorGUI.indentLevel++; { EditorGUILayout.BeginHorizontal(); { //action.Target = (CGME.ModifyParameter)EditorGUILayout.EnumPopup("Target",action.Target); //action.Target_Resource = EditorGUILayout.Popup("Resource Type",action.Target_Resource, lib.CGME_Lib.ResourceTypes()); action.Target = (CGME.ResourceSource)Display.EnumPopup(Target, "Target", action.Target); action.Target_Resource = Display.Popup(Target, "Resource Type", action.Target_Resource, lib.CGME_Lib.ResourceTypes()); } EditorGUILayout.EndHorizontal(); //action.Operation = (CGME.ModifyOperation)EditorGUILayout.EnumPopup("Operation",action.Operation); action.Operation = (CGME.ModifyOperation)Display.EnumPopup(Target, "Operation", action.Operation); EditorGUILayout.BeginHorizontal(); { //action.Param1 = (CGME.ModifyParameter)EditorGUILayout.EnumPopup("Resource 1",action.Param1); action.Param1 = (CGME.ResourceSource)Display.EnumPopup(Target, "Resource 1", action.Param1); if (action.Param1 == CGME.ResourceSource.FixedValue) { CGME.Resource test = lib.CGME_Lib.GetResource(action.Target_Resource); if (test is CGME.ResourceBool) { //action.BoolMod = EditorGUILayout.Toggle("Boolean",action.BoolMod); action.BoolMod = Display.Toggle(Target, "Boolean", action.BoolMod); } else if (test is CGME.ResourceNumber) { action.NumberMod = Display.IntField(Target, "Number", action.NumberMod); } else if (test is CGME.ResourceText) { action.TextMod = Display.TextField(Target, "Text", action.TextMod); } } else { action.Operation_Resource = Display.Popup(Target, "Resource Type", action.Operation_Resource, lib.CGME_Lib.ResourceTypes()); } } EditorGUILayout.EndHorizontal(); } EditorGUI.indentLevel--; }
public override void OnInspectorGUI() { if (library.resourceLibrary.Count == 0) { EditorGUILayout.LabelField("Resource library is empty"); EditorGUILayout.LabelField("Add some resources to the game manager first"); return; } // if (Target.Resource_type == CGM.ResourceType.Empty){ // Target.CGME_Resource = CGME.CGFactory.CreateCGInstance(library.GetResource(0).GetType().FullName) as CGME.Resource; // Target.CGME_Resource.CGType = res_string; // } EditorGUILayout.LabelField(Target.CGME_Resource.CGType); Target.name = Target.CGME_Resource.CGType; ResourceField(Target.CGME_Resource); EditorGUILayout.Space(); EditorGUILayout.LabelField("Switch Resource"); EditorGUILayout.BeginHorizontal(); res_index = EditorGUILayout.Popup("Type", res_index, library.ResourceTypes()); res_string = library.resourceLibrary[res_index].CGType; if (GUILayout.Button("Switch to " + res_string)) { CGME.Resource resource = library.GetResource(res_index); if (resource != null) { Target.CGME_Resource = CGME.CGFactory.CreateCGInstance(library.GetResource(res_index).GetType().FullName) as CGME.Resource; Target.CGME_Resource.CGType = res_string; if (Target.CGME_Resource is CGME.ResourceAction) { (Target.CGME_Resource as CGME.ResourceAction).ActionIndex = (resource as CGME.ResourceAction).ActionIndex; //phase_index = GetPhaseIndex(); } } } EditorGUILayout.EndHorizontal(); }
public override void DrawAsInspector() { base.DrawAsInspector(); CGME.ActionConditionCompareResource act = (action as CGME.ActionConditionCompareResource); CGM.GameManager lib = GameObject.FindObjectOfType <CGM.GameManager>(); EditorGUILayout.BeginHorizontal(); { act.Target = (CGME.ResourceSource)Display.EnumPopup(this, "Target", act.Target); act.Target_Resource = Display.Popup(this, "Resource Type", act.Target_Resource, lib.CGME_Lib.ResourceTypes()); } EditorGUILayout.EndHorizontal(); act.Operation = (CGME.CompareOperation)Display.EnumPopup(this, "Operation", act.Operation); EditorGUILayout.BeginHorizontal(); { act.Param1 = (CGME.ResourceSource)Display.EnumPopup(this, "Resource 1", act.Param1); if (act.Param1 == CGME.ResourceSource.FixedValue) { CGME.Resource test = lib.CGME_Lib.GetResource(act.Target_Resource); if (test is CGME.ResourceBool) { act.BoolMod = Display.Toggle(this, "Boolean", act.BoolMod); } else if (test is CGME.ResourceNumber) { act.NumberMod = Display.IntField(this, "Number", act.NumberMod); } else if (test is CGME.ResourceText) { act.TextMod = Display.TextField(this, "Text", act.TextMod); } } else { act.Operation_Resource = Display.Popup(this, "Resource Type", act.Operation_Resource, lib.CGME_Lib.ResourceTypes()); } } EditorGUILayout.EndHorizontal(); }
public void OnAfterDeserialize() { if (node == null || CGME_resource != null) { return; } CGME.Resource new_res = null; new_res = CGME.CGFactory.CreateCGInstance(node.type_string) as CGME.Resource; if (new_res != null) { CGME_resource = new_res; CGME_resource.Read(node.data); } new_res = null; }
//CGM.Library Target; public bool DisplayResource(CGME.Resource res) { EditorGUILayout.BeginHorizontal(); { if (res is CGME.ResourceNumber) { res.CGType = EditorGUILayout.TextField("Number Resource", res.CGType); } else if (res is CGME.ResourceText) { res.CGType = EditorGUILayout.TextField("Text Resource", res.CGType); } else if (res is CGME.ResourceBool) { res.CGType = EditorGUILayout.TextField("Boolean Resource", res.CGType); } else if (res is CGME.ResourceAction) { CGME.ResourceAction res_action = res as CGME.ResourceAction; int diff = res_action.ActionIndex; res_action.ActionIndex = EditorGUILayout.Popup( "Action", res_action.ActionIndex, action_string); if (res_action.ActionIndex != diff) { res_action.Value = new CGME.ActionGroup(); res_action.Value.CopyFrom(actions[res_action.ActionIndex].CGME_ActionRoot); res_action.CGType = res_action.Value.CGType; Debug.Log("Copying " + actions[res_action.ActionIndex].CGME_ActionRoot.CGType); } } if (GUILayout.Button("Delete " + res.CGType)) { Target.CGME_Lib.resourceLibrary.Remove(res); return(true); } } EditorGUILayout.EndHorizontal(); return(false); }
public void ResourceField(CGME.Resource res) { if (res is CGME.ResourceNumber) { //CGME.ResourceNumber cgres = (CGME.ResourceNumber)Target.CGME_Resource; (res as CGME.ResourceNumber).Value = EditorGUILayout.IntField((res as CGME.ResourceNumber).Value); } else if (res is CGME.ResourceText) { (res as CGME.ResourceText).Value = EditorGUILayout.TextField((res as CGME.ResourceText).Value); } else if (res is CGME.ResourceBool) { (res as CGME.ResourceBool).Value = EditorGUILayout.Toggle((res as CGME.ResourceBool).Value); } else if (res is CGME.ResourceAction) { DrawResourceAction(); } //EditorGUILayout.EndHorizontal(); }
public bool CopyFrom(CGME.Resource res) { if (CGME_resource.CGType == res.CGType) { if (res is CGME.ResourceNumber) { (CGME_resource as CGME.ResourceNumber).Value = (res as CGME.ResourceNumber).Value; } if (res is CGME.ResourceText) { (CGME_resource as CGME.ResourceText).Value = (res as CGME.ResourceText).Value; } if (res is CGME.ResourceBool) { (CGME_resource as CGME.ResourceBool).Value = (res as CGME.ResourceBool).Value; } if (res is CGME.ResourceAction) { (CGME_resource as CGME.ResourceAction).Value = (res as CGME.ResourceAction).Value; Trigger = InterfaceEvent.Any; (CGME_resource as CGME.ResourceAction).Phase = (res as CGME.ResourceAction).Phase; } return(true); } return(false); }
// public Resource(){ // if (CGME_resource == null)CGME_resource = new CGME.ResourceNumber(); // // //Resource_type = // } public void SetObject(CGME.CGObject cgobj) { CGME_resource = (CGME.Resource)cgobj; }
public void RemoveResource(CGME.Resource resource) { resources.Remove(resource); }
// RESOURCES FUNCTIONS ---------------------------------------- public void AddResource(CGME.Resource new_resource) { DispatchEvent(EngineEvent.AddResource, new_resource, null); new_resource.Parent = this; resources.Add(new_resource); }