Example #1
0
        void TopToolbar(Rect rect)
        {
            GUILayout.BeginArea(rect);

            using (new EditorGUILayout.HorizontalScope())
            {
                GenericMenu menu = new GenericMenu();
                if (EditorGUILayout.DropdownButton(new GUIContent("Add Behavior"), FocusType.Passive))
                {
                    menu.CreateTypeMenu <BehaviorTreeElement>(OnTypeSelected);
                    menu.ShowAsContext();
                }

                if (GUILayout.Button("Remove Behavior"))
                {
                    var selection = _TreeView.GetSelection();
                    _TreeView.treeModel.RemoveElements(selection);
                }

                FilePath = GUILayout.TextField(FilePath);
                if (GUILayout.Button("Save Tree"))
                {
                    FilePath = EditorUtility.SaveFilePanel("", FileDir, "New Behavior Tree", "asset");
                    BehaviorExtensions.SaveBehaviorAsset(null, FilePath, _BehaviorTreeManagerAsset, (Merge)_TreeView.treeModel.Root);
                }
            }

            GUILayout.EndArea();
        }
Example #2
0
        void CreateNewTree()
        {
            CustomAssetUtility.CreateAsset <BehaviorTreeManagerAsset>();
            _BehaviorTreeManagerAsset = (BehaviorTreeManagerAsset)Selection.activeObject;
            var root = new Merge("root", -1, -1);

            BehaviorExtensions.SaveBehaviorAsset(null, AssetDatabase.GetAssetPath(_BehaviorTreeManagerAsset),
                                                 _BehaviorTreeManagerAsset, (Merge)root);
        }
Example #3
0
        private Sprite MakeSprite(
            JsonSprite def,
            Dictionary <string, JsonSpriteStaticDefinition> defs,
            SpriteForm xResource)
        {
            var sprite = new Sprite(xResource);

            var staticDef = defs[def.Type];

            sprite.Body.BodyType = FarseerPhysics.Dynamics.BodyType.Static;
            sprite.Name          = def.Type;
            sprite.Frames        = staticDef.Frames;
            sprite.Position      = new Vector2(def.Position[0], def.Position[1]);
            sprite.Center        = new Vector2(staticDef.Center[0], staticDef.Center[1]);
            sprite.Rotation      = MathUtil.DegreesToRadians(def.Angle);
            sprite.Alpha         = def.Alpha;

            // Shapes
            sprite.SetShapes(staticDef.Shapes
                             .Select(x => x.Create(sprite.Center))
                             .ToArray());

            sprite.Children.AddRange(
                staticDef.Children.Select(child =>
                                          MakeSprite(child, defs, xResource)));
            sprite.Children.AddRange(
                def.Children.Select(child =>
                                    MakeSprite(child, defs, xResource)));

            // Behaviors
            //sprite.Behaviors["default"] = new AutoFrameBehavior(sprite);
#if DEBUG
            sprite.AddBehavior(new AutoBorderBehavior());
#endif
            var finalBehaviors = new Dictionary <string, Dictionary <string, object> >();
            foreach (var behavior in staticDef.Behaviors)
            {
                finalBehaviors.Add(behavior.Key, behavior.Value);
            }
            foreach (var behavior in def.Behaviors)
            {
                finalBehaviors[behavior.Key] = behavior.Value;
            }

            foreach (var behavior in finalBehaviors)
            {
                sprite.AddBehavior(BehaviorExtensions.Create(behavior.Key, behavior.Value));
            }

            return(sprite);
        }
Example #4
0
 void InitializeBehaviorExtensionsDefault()
 {
     BehaviorExtensions.Add(new ExtensionElement("callbackDebug", typeof(CallbackDebugElement).AssemblyQualifiedName));
     BehaviorExtensions.Add(new ExtensionElement("callbackTimeouts", typeof(CallbackTimeoutsElement).AssemblyQualifiedName));
     BehaviorExtensions.Add(new ExtensionElement("clientCredentials", typeof(ClientCredentialsElement).AssemblyQualifiedName));
     BehaviorExtensions.Add(new ExtensionElement("clientVia", typeof(ClientViaElement).AssemblyQualifiedName));
     BehaviorExtensions.Add(new ExtensionElement("dataContractSerializer", typeof(DataContractSerializerElement).AssemblyQualifiedName));
     BehaviorExtensions.Add(new ExtensionElement("serviceAuthorization", typeof(ServiceAuthorizationElement).AssemblyQualifiedName));
     BehaviorExtensions.Add(new ExtensionElement("serviceCredentials", typeof(ServiceCredentialsElement).AssemblyQualifiedName));
     BehaviorExtensions.Add(new ExtensionElement("serviceDebug", typeof(ServiceDebugElement).AssemblyQualifiedName));
     BehaviorExtensions.Add(new ExtensionElement("serviceMetadata", typeof(ServiceMetadataPublishingElement).AssemblyQualifiedName));
     BehaviorExtensions.Add(new ExtensionElement("serviceSecurityAudit", typeof(ServiceSecurityAuditElement).AssemblyQualifiedName));
     BehaviorExtensions.Add(new ExtensionElement("serviceThrottling", typeof(ServiceThrottlingElement).AssemblyQualifiedName));
     BehaviorExtensions.Add(new ExtensionElement("serviceTimeouts", typeof(ServiceTimeoutsElement).AssemblyQualifiedName));
     BehaviorExtensions.Add(new ExtensionElement("synchronousReceive", typeof(SynchronousReceiveElement).AssemblyQualifiedName));
     BehaviorExtensions.Add(new ExtensionElement("transactedBatching", typeof(TransactedBatchingElement).AssemblyQualifiedName));
 }