예제 #1
0
    private void OnTriggerEnter(Collider other)
    {
        ComponentPointer <Pickup> pointer = other.GetComponent <ComponentPointer <Pickup> >();

        if (pointer == null)
        {
            return;
        }

        Pickup pickup = pointer.PointedComponent;

        if (pickup != null)
        {
            pickup.NotifySuccessfulPickup();
        }
    }
 public object[] GetValueEnum(string section, string item)
 {
     if (_methodPointer != null)
     {
         ISourceValueEnumProvider svep = _methodPointer.Owner.ObjectInstance as ISourceValueEnumProvider;
         if (svep == null)
         {
             ComponentPointer cip = _methodPointer.Owner.ObjectInstance as ComponentPointer;
             if (cip != null)
             {
                 svep = cip.ObjectInstance as ISourceValueEnumProvider;
             }
         }
         if (svep != null)
         {
             return(svep.GetValueEnum(section, item));
         }
     }
     return(null);
 }
예제 #3
0
    private void OnTriggerEnter(Collider other)
    {
        ComponentPointer <RoadTile> pointer = other.GetComponent <ComponentPointer <RoadTile> >();

        if (pointer != null)
        {
            if (pointer.PointedComponent.TileType != RoadTile.Type.Straight)
            {
                RotatorLink link = pointer.PointedComponent.GetComponent <RotatorLink>();
                if (link != null)
                {
                    if (!foundRotators.ContainsKey(link.Rotator))
                    {
                        availableRotators.Add(link.Rotator);
                    }
                    foundRotators.AddOrCreate(link.Rotator, link);
                }
            }

            currentTile = pointer.PointedComponent;
        }
    }
예제 #4
0
    private void OnTriggerExit(Collider other)
    {
        ComponentPointer <RoadTile> pointer = other.GetComponent <ComponentPointer <RoadTile> >();

        if (pointer != null)
        {
            if (pointer.PointedComponent.TileType != RoadTile.Type.Straight)
            {
                RotatorLink link = pointer.PointedComponent.GetComponent <RotatorLink>();
                if (link != null)
                {
                    foundRotators.DecreaseOrRemove(link.Rotator, link);
                    if (!foundRotators.ContainsKey(link.Rotator))
                    {
                        availableRotators.Remove(link.Rotator);
                    }
                }
            }

            pointer.PointedComponent.Passed = true;
        }
    }