Ejemplo n.º 1
0
 public void Click(Renderer source, Vector2 point, Size2 screen, Physic.ClickButton button)
 {
     foreach (var obj in source.Objects)
     {
         if (ClickObject(source, point, obj, new RectangleF(0, 0, screen.Width, screen.Height), screen, button))
         {
             return;
         }
     }
 }
Ejemplo n.º 2
0
        bool ClickObject(Renderer source, Vector2 point, FlatPrototype prot, RectangleF parent, Size2 screen, Physic.ClickButton button)
        {
            var bounds   = GetBounds(prot, parent, screen);
            var contains = bounds.Contains(point);
            var found    = false;
            var force    = prot.Parameter.ContainsKey("MouseSolid") && (bool)prot.Parameter["MouseSolid"].Value;

            if (!force || contains)
            {
                foreach (var sub in prot.Container)
                {
                    if (ClickObject(source, point, sub, bounds, screen, button))
                    {
                        return(true);
                    }
                }
            }
            if (contains)
            {
                foreach (var anim in prot.Animations)
                {
                    foreach (var act in anim.Activations)
                    {
                        if ((act is Physic.ClickAnimation) && act.Enabled)
                        {
                            var click = (Physic.ClickAnimation)act;
                            if (click.Button.Exists && click.Button.Value != button)
                            {
                                continue;
                            }
                            source.Animation.ExecuteAnimation(anim);
                            found = true;
                            break;
                        }
                    }
                }
            }
            return(force && found);
        }