Ejemplo n.º 1
0
        public TouchRect PushClickRect(Point point, IImage image, TouchTrigger touchTrigger, bool center = false)
        {
            var touchRect = new TouchRect(point.X, point.Y, image.Width, image.Height, touchTrigger, center);

            touchRects.Add(touchRect);
            return(touchRect);
        }
Ejemplo n.º 2
0
 public bool HasTouchTriggerBrickBeenConnectedToAltar()
 {
     if (!AltarInstance) //needed because of AutoAdvance triggering this immediately instead of respecting the setup callbacks
     {
         return(false);
     }
     TouchTrigger[] triggersInScene = FindObjectsOfType <TouchTrigger>();
     foreach (var touchTrigger in triggersInScene)
     {
         Brick brick = touchTrigger.GetComponent <Brick>();
         if (!brick)
         {
             continue;
         }
         foreach (var connectedBrick in brick.GetConnectedBricks(false))
         {
             if (connectedBrick.transform.root.gameObject != AltarInstance)
             {
                 continue;
             }
             touchTriggerConnectedToAltar = touchTrigger;
             return(true);
         }
     }
     return(false);
 }
Ejemplo n.º 3
0
 public TouchRect(int x, int y, int width, int height, TouchTrigger eventToTrigger, object state = null)
 {
     X              = x;
     Y              = y;
     Width          = width;
     Height         = height;
     EventToTrigger = eventToTrigger;
     State          = state;
 }
Ejemplo n.º 4
0
        public void FindWinBrick()
        {
            winAction = FindObjectsOfType <WinAction>().Where(action => action.CompareTag("TutorialRequirement")).FirstOrDefault();
            if (!winAction)
            {
                Debug.LogError("In order to be completed, this tutorial expects exactly one 'WinAction' brick tagged as 'TutorialRequirement', to which a 'TouchTrigger' brick is connected");
                return;
            }

            if (!TouchTrigger)
            {
                TouchTrigger = winAction.GetTargetingTriggers().First() as TouchTrigger;
            }

            if (!TouchTrigger || triggerCopy)
            {
                return;
            }

            GameObject touchTriggerObject    = TouchTrigger.gameObject;
            Transform  touchTriggerTransform = touchTriggerObject.transform;

            triggerCopy = Instantiate(touchTriggerObject, touchTriggerTransform.parent);

            // Remove one-way connectivity references
            var brick = triggerCopy.GetComponent <Brick>();

            foreach (var part in brick.parts)
            {
                foreach (var field in part.connectivity.connectionFields)
                {
                    field.connected.Clear();
                    for (var i = 0; i < field.connections.Length; i++)
                    {
                        field.connectedTo[i].field             = null;
                        field.connectedTo[i].indexOfConnection = -1;
                    }
                }
            }

            // The original TouchTrigger is referenced by the previous tutorial steps so it has a
            // SceneObjectGuid for it and we need to get rid duplicate GUID for the the clone.
            var sceneObjGuid = triggerCopy.GetComponent <SceneObjectGUIDComponent>();

            if (sceneObjGuid != null)
            {
                DestroyImmediate(sceneObjGuid);
            }
            triggerCopy.transform.localPosition    = touchTriggerTransform.localPosition;
            triggerCopy.transform.localEulerAngles = touchTriggerTransform.localEulerAngles;
            triggerCopy.transform.localScale       = touchTriggerTransform.localScale;
            triggerCopy.layer     = touchTriggerObject.layer;
            triggerCopy.tag       = touchTriggerObject.tag;
            triggerCopy.hideFlags = touchTriggerObject.hideFlags;
            triggerCopy.SetActive(false);
        }
        public void FindWinBrick()
        {
            winAction = FindObjectsOfType <WinAction>().Where(action => action.CompareTag("TutorialRequirement")).FirstOrDefault();
            if (!winAction)
            {
                Debug.LogError("In order to be completed, this tutorial expects exactly one 'WinAction' brick tagged as 'TutorialRequirement', to which a 'TouchTrigger' brick is connected");
                return;
            }

            TouchTrigger = winAction.GetTargetingTriggers().First() as TouchTrigger;
        }
Ejemplo n.º 6
0
        public void SelectTouchTriggerInScene()
        {
            TouchTrigger touchTrigger = DeletionCriteria.TouchTrigger;

            if (!touchTrigger)
            {
                return;
            }

            Selection.activeObject = touchTrigger.gameObject;
            (SceneView.sceneViews[0] as SceneView).Focus();
        }
Ejemplo n.º 7
0
        public void SelectTouchTriggerInScene()
        {
            TouchTrigger touchTrigger = DeletionCriteria.TouchTrigger;

            if (!touchTrigger)
            {
                Debug.LogError("This tutorial assumes that exactly one TouchTrigger object is active in the scene. Please add it.");
                return;
            }

            Selection.activeObject = touchTrigger.gameObject;
            (SceneView.sceneViews[0] as SceneView).Focus();
        }
Ejemplo n.º 8
0
 static int OnDestory(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 1);
         TouchTrigger obj = (TouchTrigger)ToLua.CheckObject <TouchTrigger>(L, 1);
         obj.OnDestory();
         return(0);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
Ejemplo n.º 9
0
 static int setParamStyle(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 2);
         TouchTrigger obj  = (TouchTrigger)ToLua.CheckObject <TouchTrigger>(L, 1);
         int          arg0 = (int)LuaDLL.luaL_checknumber(L, 2);
         obj.setParamStyle(arg0);
         return(0);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
Ejemplo n.º 10
0
 static int OnPointerUp(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 2);
         TouchTrigger obj = (TouchTrigger)ToLua.CheckObject <TouchTrigger>(L, 1);
         UnityEngine.EventSystems.PointerEventData arg0 = (UnityEngine.EventSystems.PointerEventData)ToLua.CheckObject <UnityEngine.EventSystems.PointerEventData>(L, 2);
         obj.OnPointerUp(arg0);
         return(0);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
Ejemplo n.º 11
0
 static int setTouchEnabled(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 2);
         TouchTrigger obj  = (TouchTrigger)ToLua.CheckObject <TouchTrigger>(L, 1);
         bool         arg0 = LuaDLL.luaL_checkboolean(L, 2);
         obj.setTouchEnabled(arg0);
         return(0);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
Ejemplo n.º 12
0
 static int setLuaDoubleClick(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 3);
         TouchTrigger obj  = (TouchTrigger)ToLua.CheckObject <TouchTrigger>(L, 1);
         LuaFunction  arg0 = ToLua.CheckLuaFunction(L, 2);
         object       arg1 = ToLua.ToVarObject(L, 3);
         obj.setLuaDoubleClick(arg0, arg1);
         return(0);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
Ejemplo n.º 13
0
 public TouchRect(int x, int y, int width, int height, TouchTrigger eventToTrigger, bool pointIsCenter = false, object state = null)
 {
     if (pointIsCenter)
     {
         X = x - width / 2;
         Y = y - height / 2;
     }
     else
     {
         X = x;
         Y = y;
     }
     Width  = width;
     Height = height;
     TouchEventToTrigger = eventToTrigger;
     State = state;
 }
Ejemplo n.º 14
0
    static int setLuaCallback(IntPtr L)
    {
        try
        {
            int count = LuaDLL.lua_gettop(L);

            if (count == 3)
            {
                TouchTrigger obj  = (TouchTrigger)ToLua.CheckObject <TouchTrigger>(L, 1);
                LuaFunction  arg0 = ToLua.CheckLuaFunction(L, 2);
                object       arg1 = ToLua.ToVarObject(L, 3);
                obj.setLuaCallback(arg0, arg1);
                return(0);
            }
            else if (count == 4)
            {
                TouchTrigger obj  = (TouchTrigger)ToLua.CheckObject <TouchTrigger>(L, 1);
                LuaFunction  arg0 = ToLua.CheckLuaFunction(L, 2);
                object       arg1 = ToLua.ToVarObject(L, 3);
                LuaFunction  arg2 = ToLua.CheckLuaFunction(L, 4);
                obj.setLuaCallback(arg0, arg1, arg2);
                return(0);
            }
            else if (count == 5)
            {
                TouchTrigger obj  = (TouchTrigger)ToLua.CheckObject <TouchTrigger>(L, 1);
                LuaFunction  arg0 = ToLua.CheckLuaFunction(L, 2);
                object       arg1 = ToLua.ToVarObject(L, 3);
                LuaFunction  arg2 = ToLua.CheckLuaFunction(L, 4);
                LuaFunction  arg3 = ToLua.CheckLuaFunction(L, 5);
                obj.setLuaCallback(arg0, arg1, arg2, arg3);
                return(0);
            }
            else
            {
                return(LuaDLL.luaL_throw(L, "invalid arguments to method: TouchTrigger.setLuaCallback"));
            }
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e));
        }
    }
Ejemplo n.º 15
0
        public void UpdateTouchTriggerCriteriaReference()
        {
            winAction = FindObjectsOfType <WinAction>().Where(action => action.CompareTag("TutorialRequirement")).FirstOrDefault();
            if (!winAction)
            {
                Debug.LogError("In order to be completed, this tutorial expects exactly one 'WinAction' brick tagged as 'TutorialRequirement', to which a 'TouchTrigger' brick is connected");
                return;
            }

            if (!TouchTrigger)
            {
                TouchTrigger = winAction.GetTargetingTriggers().First() as TouchTrigger;
                if (!TouchTrigger)
                {
                    Debug.LogError("'Touch Trigger' brick not found. In order to be completed, this tutorial expects exactly one 'WinAction' brick tagged as 'TutorialRequirement', to which a 'TouchTrigger' brick is connected");
                    return;
                }
            }


            ObjectReference referenceToBrick = new ObjectReference();

            referenceToBrick.sceneObjectReference = new SceneObjectReference();
            referenceToBrick.sceneObjectReference.Update(TouchTrigger.gameObject);

            var criteria = tutorialPage.paragraphs[2].criteria;

            foreach (var criterion in criteria)
            {
                if (criterion.criterion as RequiredSelectionCriterion)
                {
                    (criterion.criterion as RequiredSelectionCriterion).SetObjectReferences(new List <ObjectReference>()
                    {
                        referenceToBrick
                    });
                    EditorUtility.SetDirty(tutorialPage);
                    AssetDatabase.SaveAssets();
                    break;
                }
            }
        }
Ejemplo n.º 16
0
 public TouchRect(Rectangle rect, TouchTrigger eventToTrigger, bool pointIsCenter = false, object state = null)
     : this(rect.X, rect.Y, rect.Width, rect.Height, eventToTrigger, pointIsCenter, state)
 {
 }
Ejemplo n.º 17
0
 public TouchRect(Point p, Point size, TouchTrigger eventToTrigger, bool pointIsCenter = false, object state = null)
     : this(p.X, p.Y, size.X, size.Y, eventToTrigger, pointIsCenter, state)
 {
 }
Ejemplo n.º 18
0
 public TouchRect(Rectangle rect, TouchTrigger eventToTrigger, object state = null) : this(rect.X, rect.Y, rect.Width, rect.Height, eventToTrigger, state)
 {
 }
Ejemplo n.º 19
0
 public TouchRect(Point p, int width, int height, TouchTrigger eventToTrigger, bool pointIsCenter = false, object state = null)
     : this(p.X, p.Y, width, height, eventToTrigger, pointIsCenter, state)
 {
 }