Beispiel #1
0
 public override void updateVarFlagSummary(VarFlagSummary varFlagSummary)
 {
     foreach (Description d in descriptions)
     {
         ConditionsController.updateVarFlagSummary(varFlagSummary, d.getConditions());
     }
 }
        public void Init(ConditionsController con)
        {
            s_ConditionEditor            = EditorWindow.GetWindow <ConditionEditorWindow>();
            s_ConditionEditor.Conditions = con.Conditions;

            ConditionEditorFactory.Intance.ResetInstance();
        }
 public ConversationLineDataControl(ConversationLine conversationLine) : base()
 {
     this.conversationLine = conversationLine;
     this.conversationLineConditionsController = new ConditionsController(conversationLine.getConditions());
     this.resourcesList            = conversationLine.getResources();
     this.resourcesDataControlList = conversationLine.getResources().ConvertAll(r => new ResourcesDataControl(r, Controller.CONVERSATION_DIALOGUE_LINE));
 }
        internal static bool ShowAtPosition(ConditionsController con, Rect buttonRect)
        {
            long num = DateTime.Now.Ticks / 10000L;

            if (num >= ConditionEditorWindow.s_LastClosedTime + 50L)
            {
                if (Event.current != null)
                {
                    Event.current.Use();
                }
                if (lastDestroyConditions == null || con.Conditions != lastDestroyConditions)
                {
                    ConditionEditorWindow.s_ConditionEditor = ScriptableObject.CreateInstance <ConditionEditorWindow>();
                }

                if (ConditionEditorWindow.s_ConditionEditor.Conditions == con.Conditions)
                {
                    DestroyImmediate(ConditionEditorWindow.s_ConditionEditor);
                    lastDestroyConditions = null;
                    return(false);
                }
                ConditionEditorWindow.s_ConditionEditor.Init(con, buttonRect);

                return(true);
            }
            return(false);
        }
        /**
         * Contructor.
         *
         * @param timer
         *            Timer structure
         */

        public TimerDataControl(Timer timer)
        {
            this.timer = timer;

            // Create subcontrollers
            Dictionary <string, ConditionsController.ConditionContextProperty> context1 =
                new Dictionary <string, ConditionsController.ConditionContextProperty>();

            ConditionsController.ConditionOwner owner = new ConditionsController.ConditionOwner(Controller.TIMER,
                                                                                                timer.getDisplayName());
            context1.Add(ConditionsController.CONDITION_OWNER, owner);
            ConditionsController.ConditionCustomMessage cMessage1 =
                new ConditionsController.ConditionCustomMessage(TC.get("Conditions.Context.1A.44"),
                                                                TC.get("Conditions.Context.2A.44"));
            context1.Add(ConditionsController.CONDITION_CUSTOM_MESSAGE, cMessage1);

            Dictionary <string, ConditionsController.ConditionContextProperty> context2 =
                new Dictionary <string, ConditionsController.ConditionContextProperty>();

            context2.Add(ConditionsController.CONDITION_OWNER, owner);
            ConditionsController.ConditionCustomMessage cMessage2 =
                new ConditionsController.ConditionCustomMessage(TC.get("Conditions.Context.1B.44"),
                                                                TC.get("Conditions.Context.2B.44"));
            context2.Add(ConditionsController.CONDITION_CUSTOM_MESSAGE, cMessage2);

            initConditionsController = new ConditionsController(timer.getInitCond(), context1);
            endConditionsController  = new ConditionsController(timer.getEndCond(), context2);
            effectsController        = new EffectsController(timer.getEffects());
            postEffectsController    = new EffectsController(timer.getPostEffects());
        }
 public override bool doTool()
 {
     lineDeleted = parent.getLine(lineIndex);
     parent.removeLine(lineIndex);
     conditionDeleted = node[lineIndex];
     node.RemoveAt(lineIndex);
     return(true);
 }
 public override void updateVarFlagSummary(VarFlagSummary varFlagSummary)
 {
     // Update the summary with conditions and both blocks of effects
     ConditionsController.updateVarFlagSummary(varFlagSummary, timer.getInitCond());
     ConditionsController.updateVarFlagSummary(varFlagSummary, timer.getEndCond());
     EffectsController.updateVarFlagSummary(varFlagSummary, timer.getEffects());
     EffectsController.updateVarFlagSummary(varFlagSummary, timer.getPostEffects());
 }
Beispiel #8
0
 public override bool doTool()
 {
     effectDeleted = effects.getEffects()[index];
     effects.getEffects().RemoveAt(index);
     condition = conditions[index];
     conditions.RemoveAt(index);
     updateVarFlagSummary(effectDeleted);
     return(true);
 }
        private void Init(ConditionsController con, Rect buttonRect)
        {
            s_ConditionEditor.Conditions = con.Conditions;
            buttonRect.position          = GUIUtility.GUIToScreenPoint(buttonRect.position);
            float   y          = 305f;
            Vector2 windowSize = new Vector2(300f, y);

            base.ShowAsDropDown(buttonRect, windowSize);
        }
        private void DoConditionsEditor(Rect rect, ConditionsController conditions)
        {
            var hasConditions = conditions.getBlocksCount() > 0;

            if (GUI.Button(rect, hasConditions ? conditionsTex : noConditionsTex, noBackgroundSkin.button))
            {
                ConditionEditorWindow.ShowAtPosition(conditions, new Rect(rect.x + rect.width, rect.y, 0, 0));
            }
        }
        public override bool doTool()
        {
            effects.add(effectToAdd);
            if (conditions != null)
            {
                condition = new ConditionsController(effectToAdd.getConditions(), Controller.EFFECT, EffectsController.getEffectInfo(effectToAdd));
                conditions.Add(condition);
            }

            return(true);
        }
Beispiel #12
0
        public DescriptionController(Description description)
        {
            this.description = description;

            if (description.getConditions() == null)
            {
                description.setConditions(new Conditions());
            }

            conditionsController = new ConditionsController(description.getConditions());
        }
        /**
         * Constructor.
         *
         * @param sceneDataControl
         *            Parent scene controller
         * @param activeArea
         *            Exit of the data control structure
         */
        public ActiveAreaDataControl(SceneDataControl sceneDataControl, ActiveArea activeArea)
        {
            this.sceneDataControl         = sceneDataControl;
            this.activeArea               = activeArea;
            conditionsController          = new ConditionsController(new Conditions());
            this.influenceAreaDataControl = new InfluenceAreaDataControl(sceneDataControl, activeArea.getInfluenceArea(), this);
            descriptionsController        = new DescriptionsController(activeArea.getDescriptions());

            // Create subcontrollers
            actionsListDataControl = new ActionsListDataControl(activeArea.getActions(), this);
        }
        /**
         * Constructor.
         *
         * @param sceneDataControl
         *            Parent scene controller
         * @param exit
         *            Exit of the data control structure
         */
        public ExitDataControl(SceneDataControl sceneDataControl, Exit exit)
        {
            this.sceneDataControl = sceneDataControl;
            this.exit             = exit;

            this.influenceAreaDataControl = new InfluenceAreaDataControl(sceneDataControl, exit.getInfluenceArea(), this);
            effectsController             = new EffectsController(exit.getEffects());
            postEffectsController         = new EffectsController(exit.getPostEffects());
            notEffectsController          = new EffectsController(exit.getNotEffects());
            conditionsController          = new ConditionsController(new Conditions());
            exitLookDataControl           = new ExitLookDataControl(exit);
        }
        /**
         * Returns the conditions of the element reference.
         *
         * @return Conditions of the element reference
         */
        public ConditionsController getConditions()
        {
            Dictionary <string, ConditionsController.ConditionContextProperty> context1 = new Dictionary <string, ConditionsController.ConditionContextProperty>();

            ConditionsController.ConditionOwner parent = new ConditionsController.ConditionOwner(Controller.SCENE, sceneDataControl.getId());
            ConditionsController.ConditionOwner owner  = new ConditionsController.ConditionOwner(Controller.EXIT, exit.getNextSceneId(), parent);
            context1.Add(ConditionsController.CONDITION_OWNER, owner);

            conditionsController = new ConditionsController(exit.getConditions(), context1);

            return(conditionsController);
        }
        /**
         * Returns the conditions of the element reference.
         *
         * @return Conditions of the element reference
         */
        public ConditionsController getConditions()
        {
            Dictionary <string, ConditionsController.ConditionContextProperty> context1 = new Dictionary <string, ConditionsController.ConditionContextProperty>();

            ConditionsController.ConditionOwner parent = new ConditionsController.ConditionOwner(Controller.SCENE, sceneDataControl.getId());
            ConditionsController.ConditionOwner owner  = new ConditionsController.ConditionOwner(Controller.ACTIVE_AREA, activeArea.getId(), parent);

            context1.Add(ConditionsController.CONDITION_OWNER, owner);
            conditionsController = new ConditionsController(activeArea.getConditions(), context1);

            return(conditionsController);
        }
        /**
         * Contructor.
         *
         * @param action
         *            Next scenes of the data control structure
         *
         *
         */
        public ActionDataControl(Action action, string name)
        {
            this.action = action;

            this.resourcesList            = new List <ResourcesUni>();
            this.resourcesDataControlList = new List <ResourcesDataControl>();

            actionType = Controller.ACTION_TALK_TO;

            // Create subcontrollers
            conditionsController = new ConditionsController(action.getConditions(), actionType, name);
            effectsController    = new EffectsController(action.getEffects());
            notEffectsController = new EffectsController(action.getNotEffects());
        }
 public override void updateVarFlagSummary(VarFlagSummary varFlagSummary)
 {
     ConditionsController.updateVarFlagSummary(varFlagSummary, exit.getConditions());
     if (exit.getEffects() != null)
     {
         EffectsController.updateVarFlagSummary(varFlagSummary, exit.getEffects());
     }
     if (exit.getPostEffects() != null)
     {
         EffectsController.updateVarFlagSummary(varFlagSummary, exit.getPostEffects());
     }
     if (exit.getNotEffects() != null)
     {
         EffectsController.updateVarFlagSummary(varFlagSummary, exit.getNotEffects());
     }
 }
 public override void updateVarFlagSummary(VarFlagSummary varFlagSummary)
 {
     // Update the flag summary with the effects of the action
     EffectsController.updateVarFlagSummary(varFlagSummary, action.getEffects());
     if (action.getNotEffects() != null)
     {
         EffectsController.updateVarFlagSummary(varFlagSummary, action.getNotEffects());
     }
     ConditionsController.updateVarFlagSummary(varFlagSummary, action.getConditions());
     if (action.getType() == Action.CUSTOM_INTERACT || action.getType() == Action.CUSTOM)
     {
         foreach (ResourcesDataControl resourcesDataControl in resourcesDataControlList)
         {
             resourcesDataControl.updateVarFlagSummary(varFlagSummary);
         }
     }
 }
        public override void updateVarFlagSummary(VarFlagSummary varFlagSummary)
        {
            // Check every node on the conversation
            List <ConversationNode> conversationNodes = graphConversation.getAllNodes();

            foreach (ConversationNode conversationNode in conversationNodes)
            {
                // Update the summary with the effects, if avalaible
                if (conversationNode.hasEffects())
                {
                    EffectsController.updateVarFlagSummary(varFlagSummary, conversationNode.getEffects());
                }

                // Update the summary with the conditions of the lines
                for (int i = 0; i < conversationNode.getLineCount(); i++)
                {
                    ConditionsController.updateVarFlagSummary(varFlagSummary, conversationNode.getLineConditions(i));
                }
            }
        }
        /**
         * Contructor.
         *
         * @param sceneDataControl
         *            Parent scene controller
         * @param elementReference
         *            Element reference of the data control structure
         */
        public ElementReferenceDataControl(SceneDataControl sceneDataControl, ElementReference elementReference, int type, int referenceNumber)
        {
            this.sceneDataControl = sceneDataControl;
            this.elementReference = elementReference;
            this.type             = type;
            this.visible          = true;
            if (type == Controller.ITEM_REFERENCE || type == Controller.NPC_REFERENCE)
            {
                this.influenceAreaDataControl = new InfluenceAreaDataControl(sceneDataControl, elementReference.getInfluenceArea(), this);
            }

            // Create subcontrollers
            Dictionary <string, ConditionsController.ConditionContextProperty> context1 = new Dictionary <string, ConditionsController.ConditionContextProperty>();

            ConditionsController.ConditionOwner parent = new ConditionsController.ConditionOwner(Controller.SCENE, sceneDataControl.getId());
            ConditionsController.ConditionOwner owner  = new ConditionsController.ConditionOwner(type, elementReference.getTargetId(), parent);
            context1.Add(ConditionsController.CONDITION_OWNER, owner);

            conditionsController = new ConditionsController(elementReference.getConditions(), context1);
        }
        /**
         * Constructor.
         *
         * @param sceneDataControl
         *            Parent scene controller
         * @param activeArea
         *            Exit of the data control structure
         */
        public BarrierDataControl(SceneDataControl sceneDataControl, Barrier barrier)
        {
            this.sceneDataControl = sceneDataControl;
            this.barrier          = barrier;

            // Create subcontrollers
            Dictionary <string, ConditionsController.ConditionContextProperty> context1 = new Dictionary <string, ConditionsController.ConditionContextProperty>();

            ConditionsController.ConditionOwner parent = new ConditionsController.ConditionOwner(Controller.SCENE, sceneDataControl.getId());
            ConditionsController.ConditionOwner owner  = new ConditionsController.ConditionOwner(Controller.BARRIER, barrier.getId(), parent);

            context1.Add(ConditionsController.CONDITION_OWNER, owner);

            conditionsController = new ConditionsController(barrier.getConditions(), context1);

            descriptionController = new DescriptionsController(barrier.getDescriptions());

            //Barriers can only have name, and only one description, so we set selectedDEscription to 0
            descriptionController.setSelectedDescription(0);
        }
 protected void check(ConditionsController conditions, string desc)
 {
     for (int i = 0; i < conditions.getBlocksCount(); i++)
     {
         for (int j = 0; j < conditions.getConditionCount(i); j++)
         {
             Dictionary <string, string> properties = conditions.getCondition(i, j);
             if (properties.ContainsKey(ConditionsController.CONDITION_ID))
             {
                 check(properties[ConditionsController.CONDITION_ID], desc + " (ID)");
             }
             if (properties.ContainsKey(ConditionsController.CONDITION_STATE))
             {
                 // CHECK!!!
                 check(properties[ConditionsController.CONDITION_STATE], desc + " ()");
             }
             if (properties.ContainsKey(ConditionsController.CONDITION_VALUE))
             {
                 // CHECK!!!
                 check(properties[ConditionsController.CONDITION_VALUE], desc + " ()");
             }
         }
     }
 }
 public override void updateVarFlagSummary(VarFlagSummary varFlagSummary)
 {
     actionsListDataControl.updateVarFlagSummary(varFlagSummary);
     ConditionsController.updateVarFlagSummary(varFlagSummary, activeArea.getConditions());
     descriptionsController.updateVarFlagSummary(varFlagSummary);
 }
 public override void updateVarFlagSummary(VarFlagSummary varFlagSummary)
 {
     // Update the flag summary with the conditions
     ConditionsController.updateVarFlagSummary(varFlagSummary, elementReference.getConditions());
 }
 public override void updateVarFlagSummary(VarFlagSummary varFlagSummary)
 {
     ConditionsController.updateVarFlagSummary(varFlagSummary, globalState);
 }
 public GlobalStateDataControl(GlobalState conditions)
 {
     globalState          = conditions;
     conditionsController = new ConditionsController(globalState, Controller.GLOBAL_STATE, globalState.getId());
 }
 public override void updateVarFlagSummary(VarFlagSummary varFlagSummary)
 {
     ConditionsController.updateVarFlagSummary(varFlagSummary, barrier.getConditions());
 }
 public override void updateVarFlagSummary(VarFlagSummary varFlagSummary)
 {
     // Update the flag summary with the conditions
     ConditionsController.updateVarFlagSummary(varFlagSummary, resources.getConditions());
 }
        /**
         * Contructor.
         *
         * @param resources
         *            Resources of the data control structure
         * @param resourcesType
         *            Type of the resources
         */
        public ResourcesDataControl(ResourcesUni resources, int resourcesType)
        {
            this.resources     = resources;
            this.resourcesType = resourcesType;

            // Initialize the assetsInformation, depending on the assets type
            switch (resourcesType)
            {
            case Controller.SCENE:
                assetsInformation = new AssetInformation[] { new AssetInformation("Resources.DescriptionSceneBackground", "background", true, AssetsConstants.CATEGORY_BACKGROUND, AssetsController.FILTER_JPG), new AssetInformation("Resources.DescriptionSceneForeground", "foreground", false, AssetsConstants.CATEGORY_BACKGROUND, AssetsController.FILTER_PNG), /*new AssetInformation( TextConstants.getText( "Resources.DescriptionSceneHardMap" ), "hardmap", false, AssetsController.CATEGORY_BACKGROUND, AssetsController.FILTER_PNG ), */ new AssetInformation("Resources.DescriptionSceneMusic", "bgmusic", false, AssetsConstants.CATEGORY_AUDIO, AssetsController.FILTER_NONE) };

                if (!resources.existAsset("background"))
                {
                    resources.addAsset("background", SpecialAssetPaths.ASSET_EMPTY_BACKGROUND);
                }
                break;

            case Controller.CUTSCENE_SLIDES:
                assetsInformation = new AssetInformation[] { new AssetInformation("Resources.DescriptionSlidesceneSlides", "slides", true, AssetsConstants.CATEGORY_ANIMATION, AssetsController.FILTER_JPG), new AssetInformation("Resources.DescriptionSceneMusic", "bgmusic", false, AssetsConstants.CATEGORY_AUDIO, AssetsController.FILTER_NONE) };

                if (!resources.existAsset("slides"))
                {
                    resources.addAsset("slides", SpecialAssetPaths.ASSET_EMPTY_ANIMATION);
                }
                break;

            case Controller.ACTION_CUSTOM:
            case Controller.ACTION_CUSTOM_INTERACT:
                assetsInformation = new AssetInformation[] { new AssetInformation("Resources.DescriptionButtonNormal", "buttonNormal", true, AssetsConstants.CATEGORY_BUTTON, AssetsController.FILTER_PNG), new AssetInformation("Resources.DescriptionButtonOver", "buttonOver", true, AssetsConstants.CATEGORY_BUTTON, AssetsController.FILTER_PNG), new AssetInformation("Resources.DescriptionButtonSound", "buttonSound", false, AssetsConstants.CATEGORY_AUDIO, AssetsController.FILTER_NONE) /*, new AssetInformation( "Resources.DescriptionButtonPressed" , "buttonPressed", true, AssetsConstants.CATEGORY_BUTTON, AssetsController.FILTER_PNG )*/, new AssetInformation("Resources.DescriptionActionAnimation", "actionAnimation", false, AssetsConstants.CATEGORY_ANIMATION, AssetsController.FILTER_NONE), new AssetInformation("Resources.DescriptionActionAnimationLeft", "actionAnimationLeft", false, AssetsConstants.CATEGORY_ANIMATION, AssetsController.FILTER_NONE) };
                assetsGroups      = new int[][] { new int[] { 0, 1, 2 }, new int[] { 3, 4 } };
                groupsInfo        = new string[] { "Resources.Button", "Resources.Animations" };

                // For each asset, if it has not been declared attach the empty animation
                string[] assets = new string[] { "buttonNormal", "buttonOver", "buttonPressed" };
                foreach (string asset in assets)
                {
                    if (!resources.existAsset(asset))
                    {
                        resources.addAsset(asset, SpecialAssetPaths.ASSET_EMPTY_ANIMATION);
                    }
                }

                break;

            case Controller.CUTSCENE_VIDEO:
                assetsInformation = new AssetInformation[] { new AssetInformation("Resources.DescriptionVideoscenes", "video", true, AssetsConstants.CATEGORY_VIDEO, AssetsController.FILTER_NONE) };
                break;

            case Controller.BOOK:
                assetsInformation = new AssetInformation[] { new AssetInformation("Resources.DescriptionBookBackground", "background", true, AssetsConstants.CATEGORY_BACKGROUND, AssetsController.FILTER_JPG),
                                                             new AssetInformation("Resources.ArrowLeftNormal", "arrowLeftNormal", false, AssetsConstants.CATEGORY_ARROW_BOOK, AssetsController.FILTER_PNG),
                                                             new AssetInformation("Resources.ArrowRightNormal", "arrowRightNormal", false, AssetsConstants.CATEGORY_ARROW_BOOK, AssetsController.FILTER_PNG),
                                                             new AssetInformation("Resources.ArrowLeftOver", "arrowLeftOver", false, AssetsConstants.CATEGORY_ARROW_BOOK, AssetsController.FILTER_PNG),
                                                             new AssetInformation("Resources.ArrowRightOver", "arrowRightOver", false, AssetsConstants.CATEGORY_ARROW_BOOK, AssetsController.FILTER_PNG) };

                if (!resources.existAsset("background"))
                {
                    resources.addAsset("background", SpecialAssetPaths.ASSET_EMPTY_BACKGROUND);
                }
                break;

            case Controller.ITEM:
                assetsInformation = new AssetInformation[] { new AssetInformation("Resources.DescriptionItemImage", "image", true, AssetsConstants.CATEGORY_IMAGE, AssetsController.FILTER_NONE), new AssetInformation("Resources.DescriptionItemIcon", "icon", false, AssetsConstants.CATEGORY_ICON, AssetsController.FILTER_NONE)
                                                             , new AssetInformation("Resources.DescriptionItemImageOver", "imageover", false, AssetsConstants.CATEGORY_IMAGE, AssetsController.FILTER_NONE) };
                imageIconMap = new Dictionary <string, string>();
                imageIconMap.Add("icon", "image");
                if (!resources.existAsset("image"))
                {
                    resources.addAsset("image", SpecialAssetPaths.ASSET_EMPTY_IMAGE);
                }
                if (!resources.existAsset("icon"))
                {
                    resources.addAsset("icon", SpecialAssetPaths.ASSET_EMPTY_ICON);
                }
                break;

            case Controller.PLAYER:
            case Controller.NPC:
                assetsInformation = new AssetInformation[] { new AssetInformation("Resources.DescriptionCharacterAnimationStandUp", "standup", false, AssetsConstants.CATEGORY_ANIMATION, AssetsController.FILTER_PNG),
                                                             new AssetInformation("Resources.DescriptionCharacterAnimationStandDown", "standdown", false, AssetsConstants.CATEGORY_ANIMATION, AssetsController.FILTER_PNG),
                                                             //check if is 3rd or 1st person game to set the asset as necessary
                                                             new AssetInformation("Resources.DescriptionCharacterAnimationStandRight", "standright", Controller.Instance.PlayTransparent?false:true, AssetsConstants.CATEGORY_ANIMATION, AssetsController.FILTER_PNG),
                                                             new AssetInformation("Resources.DescriptionCharacterAnimationStandLeft", "standleft", Controller.Instance.PlayTransparent?false:true, AssetsConstants.CATEGORY_ANIMATION, AssetsController.FILTER_PNG),

                                                             new AssetInformation("Resources.DescriptionCharacterAnimationSpeakUp", "speakup", false, AssetsConstants.CATEGORY_ANIMATION, AssetsController.FILTER_PNG),
                                                             new AssetInformation("Resources.DescriptionCharacterAnimationSpeakDown", "speakdown", false, AssetsConstants.CATEGORY_ANIMATION, AssetsController.FILTER_PNG),
                                                             new AssetInformation("Resources.DescriptionCharacterAnimationSpeakRight", "speakright", false, AssetsConstants.CATEGORY_ANIMATION, AssetsController.FILTER_PNG),
                                                             new AssetInformation("Resources.DescriptionCharacterAnimationSpeakLeft", "speakleft", false, AssetsConstants.CATEGORY_ANIMATION, AssetsController.FILTER_PNG),
                                                             new AssetInformation("Resources.DescriptionCharacterAnimationUseRight", "useright", false, AssetsConstants.CATEGORY_ANIMATION, AssetsController.FILTER_PNG),
                                                             new AssetInformation("Resources.DescriptionCharacterAnimationUseLeft", "useleft", false, AssetsConstants.CATEGORY_ANIMATION, AssetsController.FILTER_PNG),
                                                             new AssetInformation("Resources.DescriptionCharacterAnimationWalkUp", "walkup", false, AssetsConstants.CATEGORY_ANIMATION, AssetsController.FILTER_PNG),
                                                             new AssetInformation("Resources.DescriptionCharacterAnimationWalkDown", "walkdown", false, AssetsConstants.CATEGORY_ANIMATION, AssetsController.FILTER_PNG),
                                                             new AssetInformation("Resources.DescriptionCharacterAnimationWalkRight", "walkright", false, AssetsConstants.CATEGORY_ANIMATION, AssetsController.FILTER_PNG),
                                                             new AssetInformation("Resources.DescriptionCharacterAnimationWalkLeft", "walkleft", false, AssetsConstants.CATEGORY_ANIMATION, AssetsController.FILTER_PNG) };
                assetsGroups = new int[][] { new int[] { 0, 1, 2, 3 }, new int[] { 4, 5, 6, 7 }, new int[] { 8, 9 }, new int[] { 10, 11, 12, 13 } };
                groupsInfo   = new string[] { "Resources.StandingAnimations", "Resources.SpeakingAnimations", "Resources.UsingAnimations", "Resources.WalkingAnimations" };

                foreach (string asset in new string[]
                {
                    "standup", "standdown", "standright", "standleft", "speakup", "speakdown", "speakright", "speakleft",
                    "useright", "useleft", "walkup", "walkdown", "walkright", "walkleft"
                })
                {
                    if (!resources.existAsset(asset))
                    {
                        resources.addAsset(asset, SpecialAssetPaths.ASSET_EMPTY_ANIMATION);
                    }
                }

                break;

            case Controller.ATREZZO:
                assetsInformation = new AssetInformation[] { new AssetInformation("Resources.DescriptionItemImage", "image", true, AssetsConstants.CATEGORY_IMAGE, AssetsController.FILTER_NONE) };
                if (!resources.existAsset("image"))
                {
                    resources.addAsset("image", SpecialAssetPaths.ASSET_EMPTY_IMAGE);
                }
                break;
            }

            // Create subcontrollers
            conditionsController = new ConditionsController(resources.getConditions(), Controller.RESOURCES, "");
        }