[javascript] Logic

Viewer

  1. // logic.zonescript
  2. // Created on: 28-Apr-2019
  3. // Last modified on: 06-May-2019
  4.  
  5. //--------------------------------------------------------------------------
  6.  
  7. function findDefinition(array, name)
  8. {
  9.         for (var i in array)
  10.         {
  11.                 if (getDefinitionID(array[i]) == name)
  12.                         return array[i];
  13.         }
  14.  
  15.         return null;
  16. }
  17.  
  18. //--------------------------------------------------------------------------
  19.  
  20. function createMapping(name, stance, tag, animation, tagArray, animationArray)
  21. {
  22.         var mapping = createNewDefinition("eu.cherrytree.isorpg.map.objects.components.animation.AnimationTagMapping");
  23.         generateUUID(mapping, "AnimationTagMapping" + name + stance + tag + animation);
  24.        
  25.         setEnum(mapping, "stance", stance);
  26.  
  27.         var tag_obj = findDefinition(tagArray, tag);
  28.         var anim_obj = [ findDefinition(animationArray, animation) ];
  29.        
  30.         setLink(mapping, "tag", tag_obj);
  31.         setLinkArray(mapping, "animations", anim_obj);
  32.  
  33.         setPosition(mapping, 400, 0);
  34.  
  35.         return mapping;
  36. }
  37.  
  38. //--------------------------------------------------------------------------
  39.  
  40. function createControl(tags_loc, anim_loc, tgt, name, map_data)
  41. {
  42.         var control = createNewDefinition("eu.cherrytree.isorpg.map.objects.components.animation.AnimationControlComponentDefinition");
  43.         generateUUID(control, "AnimationControlComponentDefinition" + name);
  44.  
  45.         var tags = loadZone(tags_loc + ".zone");
  46.         var animations = loadZone(anim_loc + ".zone");
  47.  
  48.         var mappings = [];
  49.  
  50.         for (var i in map_data)
  51.                 mappings.push(createMapping(name, map_data[i].stance, map_data[i].tag, map_data[i].anim, tags, animations));
  52.  
  53.         setLinkArray(control, "mappings", mappings);
  54.  
  55.         var array = [control];
  56.         array = array.concat(mappings);
  57.        
  58.         saveZone(array, tgt + ".zone");
  59. }
  60.  
  61. //--------------------------------------------------------------------------
  62.  
  63. function createTransition(from, to, name, animation, animationArray)
  64. {
  65.         var transition = createNewDefinition("eu.cherrytree.isorpg.map.objects.dynamic.motion.animations.StanceTransitionDefinition");
  66.         var anim_obj = findDefinition(animationArray, animation);
  67.  
  68.         setEnum(transition, "from", from);
  69.         setEnum(transition, "to", to);
  70.  
  71.         setLink(transition, "animation", anim_obj);
  72.         setDefinitionID(transition, from + "_" + to);
  73.         generateUUID(transition, "StanceTransitionDefinition" + from + to + name + animation);
  74.  
  75.         setPosition(transition, 400, 0);
  76.  
  77.         return transition;
  78. }
  79.  
  80. //--------------------------------------------------------------------------
  81.  
  82. function createMotionControl(anim_loc, tgt, name, stance_data, transition_data, move_data)
  83. {
  84.         var animations = loadZone(anim_loc + ".zone");
  85.        
  86.         var control = createNewDefinition("eu.cherrytree.isorpg.map.objects.dynamic.motion.CharacterMotionControlDefinition");
  87.         generateUUID(control, "CharacterMotionControlDefinition" + name);
  88.  
  89.         var exploration =    createNewDefinition("eu.cherrytree.isorpg.map.objects.dynamic.motion.animations.ExplorationStanceDefinition");
  90.         var combat =                 createNewDefinition("eu.cherrytree.isorpg.map.objects.dynamic.motion.animations.CombatStanceDefinition");
  91.         var crouch =                 createNewDefinition("eu.cherrytree.isorpg.map.objects.dynamic.motion.animations.CrouchStanceDefinition");
  92.         var ko =                     createNewDefinition("eu.cherrytree.isorpg.map.objects.dynamic.motion.animations.KnockedOutStanceDefinition");
  93.  
  94.         setPosition(exploration,       400, 0);
  95.         setPosition(combat,                     400, 0);
  96.         setPosition(crouch,            400, 0);
  97.         setPosition(ko,                        400, 0);
  98.        
  99.         generateUUID(exploration,      "ExplorationStanceDefinition" + name);
  100.         generateUUID(combat,            "CombatStanceDefinition" + name);
  101.         generateUUID(crouch,           "CrouchStanceDefinition" + name);
  102.         generateUUID(ko,                       "KnockedOutStanceDefinition" + name);
  103.  
  104.         var explore_walk =   createNewDefinition("eu.cherrytree.isorpg.map.objects.dynamic.motion.animations.MoveAnimationDefinition");
  105.         var explore_run =    createNewDefinition("eu.cherrytree.isorpg.map.objects.dynamic.motion.animations.MoveAnimationDefinition");
  106.         var combat_move =    createNewDefinition("eu.cherrytree.isorpg.map.objects.dynamic.motion.animations.MoveAnimationDefinition");
  107.         var crouch_move =    createNewDefinition("eu.cherrytree.isorpg.map.objects.dynamic.motion.animations.MoveAnimationDefinition");     
  108.  
  109.         setFloat(explore_walk,         "moveSpeed", move_data.walk);
  110.         setFloat(explore_run,  "moveSpeed", move_data.run);
  111.         setFloat(combat_move,  "moveSpeed", move_data.combat);
  112.         setFloat(crouch_move,  "moveSpeed", move_data.crouch);
  113.  
  114.         setPosition(explore_walk,      650, 0);
  115.         setPosition(explore_run,       650, 0);
  116.         setPosition(combat_move,       650, 0);      
  117.         setPosition(crouch_move,       650, 0);
  118.        
  119.         generateUUID(explore_walk,     "MoveAnimationDefinition" + "explore_walk" + name);
  120.         generateUUID(explore_run,       "MoveAnimationDefinition" + "explore_run" + name);
  121.         generateUUID(combat_move,      "MoveAnimationDefinition" + "combat_move" + name);
  122.         generateUUID(crouch_move,      "MoveAnimationDefinition" + "crouch_move" + name);
  123.  
  124.         var explore_walk_anim =      findDefinition(animations, stance_data.exploreWalk);
  125.         var explore_run_anim =       findDefinition(animations, stance_data.exploreRun);
  126.         var combat_move_anim =       findDefinition(animations, stance_data.combatMove);
  127.         var crouch_move_anim =       findDefinition(animations, stance_data.crouchMove);
  128.        
  129.         var explore_idle_anim =      findDefinition(animations, stance_data.exploreIdle);
  130.         var combat_idle_anim =       findDefinition(animations, stance_data.combatIdle);
  131.         var crouch_idle_anim =       findDefinition(animations, stance_data.crouchIdle);
  132.         var ko_idle_anim =           findDefinition(animations, stance_data.koIdle);
  133.  
  134.         setLink(explore_walk,  "movement",                    explore_walk_anim);
  135.         setLink(explore_run,   "movement",                    explore_run_anim);
  136.         setLink(combat_move,   "movement",                    combat_move_anim);
  137.         setLink(crouch_move,   "movement",                    crouch_move_anim);
  138.  
  139.         setLink(exploration,   "idle",                                explore_idle_anim);
  140.         setLink(combat,                "idle",                                combat_idle_anim);
  141.         setLink(crouch,                "idle",                                crouch_idle_anim);
  142.         setLink(ko,                    "idle",                                ko_idle_anim);
  143.  
  144.         setLink(exploration,   "walkAnimation",               explore_walk);
  145.         setLink(exploration,   "runAnimation",                explore_run);
  146.        
  147.         setLink(combat,                "moveAnimation",               combat_move);
  148.  
  149.         setLink(crouch,                "moveAnimation",               crouch_move);
  150.  
  151.         setLink(control,               "explorationStance",   exploration);
  152.         setLink(control,               "combatStance",                combat);
  153.         setLink(control,               "crouchStance",                crouch);
  154.         setLink(control,               "knockedOutStance",    ko);
  155.  
  156.         var transitions = [];
  157.  
  158.         for (var i in transition_data)
  159.                 transitions.push(createTransition(transition_data[i].from, transition_data[i].to, name, transition_data[i].anim, animations));
  160.  
  161.         setLinkArray(control, "stanceTransitions", transitions);
  162.  
  163.         var array = [ control, exploration, explore_walk, explore_run, combat, combat_move, crouch, crouch_move, ko ];
  164.         array = array.concat(transitions);
  165.        
  166.         saveZone(array, tgt + ".zone");
  167. }
  168.  
  169. //--------------------------------------------------------------------------
  170.  

Editor

You can edit this paste and save as new: