playMaker

Author Topic: Int Operator (I need an extra field)  (Read 1435 times)

Budde88

  • Full Member
  • ***
  • Posts: 165
Int Operator (I need an extra field)
« on: December 15, 2016, 03:32:57 PM »
Hey Everyone, can someone please adjust this code so I can operate on 3 fields instead of the default 2 fields. I tried myself, and it added an extra field but it just didn't calculate the 3rd field, probably something to do with the (Min ,Max)

Thanks


// (c) Copyright HutongGames, LLC 2010-2013. All rights reserved.

using UnityEngine;

namespace HutongGames.PlayMaker.Actions
{
   [ActionCategory(ActionCategory.Math)]
   [Tooltip("Performs math operation on 2 Integers: Add, Subtract, Multiply, Divide, Min, Max.")]
   public class IntOperator : FsmStateAction
   {
      public enum Operation
      {
         Add,
         Subtract,
         Multiply,
         Divide,
         Min,
         Max
      }

      [RequiredField]
      public FsmInt integer1;
      [RequiredField]
      public FsmInt integer2;
      public Operation operation = Operation.Add;
      [RequiredField]
      [UIHint(UIHint.Variable)]
      public FsmInt storeResult;
      public bool everyFrame;

      public override void Reset()
      {
         integer1 = null;
         integer2 = null;
         operation = Operation.Add;
         storeResult = null;
         everyFrame = false;
      }
      
      public override void OnEnter()
      {
         DoIntOperator();
         
         if (!everyFrame)
            Finish();
      }
      
      // NOTE: very frame rate dependent!
      public override void OnUpdate()
      {
         DoIntOperator();
      }
      
      void DoIntOperator()
      {
         int v1 = integer1.Value;
         int v2 = integer2.Value;

         switch (operation)
         {
            case Operation.Add:
               storeResult.Value = v1 + v2;
               break;

            case Operation.Subtract:
                    storeResult.Value = v1 - v2;
               break;

            case Operation.Multiply:
               storeResult.Value = v1 * v2;
               break;

            case Operation.Divide:
               storeResult.Value = v1 / v2;
               break;

            case Operation.Min:
               storeResult.Value = Mathf.Min(v1, v2);
               break;

            case Operation.Max:
               storeResult.Value = Mathf.Max(v1, v2);
               break;
         }
      }
   }
}

mdotstrange

  • Hero Member
  • *****
  • Posts: 555
    • Can't code? Who cares! Make games anyway!
Re: Int Operator (I need an extra field)
« Reply #1 on: December 16, 2016, 02:35:34 AM »
Action is attached  :)
Indie game dev and instructor at the Strange School. Learn Playmaker at the Strange School!