Ejemplo n.º 1
0
 void handleMouseButtonUp(VariantMap eventData)
 {
     isAdding = false;
     bunnyType++;
     bunnyType     %= 5;
     currentTexture = bunnyTextures [bunnyType];
 }
Ejemplo n.º 2
0
 void RenderMenu(VariantMap args)
 {
     if (ImGui.BeginMenu("SamplePlugin"))
     {
         ImGui.TextUnformatted("C# says hello");
         ImGui.EndMenu();
     }
 }
Ejemplo n.º 3
0
    public void HandleUpdate(StringHash eventType, IntPtr eventData)
    {
        VariantMap data = new VariantMap(eventData);

        // Take the frame time step, which is stored as a float
        float timeStep = data["TimeStep"].GetFloat();

        // Move the camera, scale movement with time step
        MoveCamera(timeStep);
    }
    private Application(IntPtr nativeInstance, Context context) : base(nativeInstance, context)
    {
        SetupHandle = Setup;
        StartHandle = Start;
        StopHandle  = Stop;

        engineParameters_ = new VariantMap(ApplicationEXT_GetEngineParametersPtr(NativeInstance));
        ApplicationEXT_SetCallback_Setup(NativeInstance, SetupHandle);
        ApplicationEXT_SetCallback_Start(NativeInstance, StartHandle);
        ApplicationEXT_SetCallback_Stop(NativeInstance, StopHandle);
    }
Ejemplo n.º 5
0
        public void SubscribeToEvent(StringHash e, Object sender, Action <StringHash, VariantMap> eventHandler)
        {
            var eventCallback = new EventCallbackDelegate((eventHash, argMap) =>
            {
                eventHandler(new StringHash(eventHash), VariantMap.wrap(argMap, false));
            });
            var handle   = GCHandle.ToIntPtr(GCHandle.Alloc(eventCallback));
            var callback = Marshal.GetFunctionPointerForDelegate(eventCallback);

            Urho3D_Object_SubscribeToEvent(swigCPtr, getCPtr(sender), e.Hash, callback, handle);
        }
Ejemplo n.º 6
0
        protected override void OnMouseUp(System.Windows.Forms.MouseEventArgs e)
        {
            Capture = false;
            this.Unfocus();

            VariantMap eventData = new VariantMap();

            SendEvent("CaptureEnded", eventData);
            eventData.Set("Button", new Variant((int)e.Button));
            SendEvent("MouseButtonUp", eventData);

            base.OnMouseUp(e);
        }
Ejemplo n.º 7
0
        public void OnNodeSelected(uint hash, VariantMap eventData)
        {
            Node      node = eventData.Get("Node").GetNode();
            Component comp = eventData.Get("Component").GetComponent();

            if (comp != null)
            {
                Selection = new object[] { comp };
            }
            else if (node != null)
            {
                Selection = new object[] { node };
            }
        }
Ejemplo n.º 8
0
 public void OnSceneLoaded(uint eventType, VariantMap eventData)
 {
     Scene = eventData.Get("Scene").GetScene();
     if (SceneChanged != null)
     {
         SceneChanged(Scene, new EventArgs {
         });
     }
     if (TreeRootChanged != null)
     {
         TreeRootChanged(this, new EventArgs {
         });
     }
 }
Ejemplo n.º 9
0
 protected override void OnKeyUp(System.Windows.Forms.KeyEventArgs e)
 {
     if (Capture)
     {
         VariantMap eventData = new VariantMap();
         eventData.Set("Raw", new Variant((uint)e.KeyCode));
         eventData.Set("ScanCode", new Variant(e.KeyValue));
         eventData.Set("Key", new Variant(e.KeyValue));
         SendEvent("KeyUp", eventData);
     }
     else
     {
         base.OnKeyUp(e);
     }
 }
Ejemplo n.º 10
0
        private void OnRender(VariantMap args)
        {
            OnRenderMenubar();

            var screenSize = ui.GetIO().DisplaySize;
            var dockPos    = new System.Numerics.Vector2(0, MenubarSize);
            var dockSize   = new System.Numerics.Vector2(screenSize.X, screenSize.Y - MenubarSize);

            ImGuiDock.RootDock(dockPos, dockSize);

            foreach (var tab in _tabs)
            {
                tab.OnRender();
            }
        }
Ejemplo n.º 11
0
        protected override void OnMouseDown(System.Windows.Forms.MouseEventArgs e)
        {
            this.Focus();
            Capture        = true;
            lastPosition.x = e.X;
            lastPosition.y = e.Y;

            VariantMap eventData = new VariantMap();

            SendEvent("CaptureStarted", eventData);

            eventData.Set("Button", new Variant((int)e.Button));
            SendEvent("MouseButtonDown", eventData);

            base.OnMouseDown(e);
        }
Ejemplo n.º 12
0
 private void OnUpdate(VariantMap args)
 {
     if (IsDockActive && _isMouseHoveringViewport)
     {
         _view.Camera.GetComponent <DebugCameraController>().Update(args[Update.TimeStep].Float);
         if (!_wasFocused)
         {
             _wasFocused = true;
             _eventArgs.Clear();
             _eventArgs[InspectHierarchy.HierarchyProvider] = Variant.FromObject(this);
             SendEvent <InspectHierarchy>(_eventArgs);
         }
     }
     else
     {
         _wasFocused = false;
     }
 }
Ejemplo n.º 13
0
 public bool WriteObject(Variant value, bool withType = false)
 {
     if (withType)
     {
         Write(AMF0_OBJECT);
     }
     foreach (var item in _keysOrder.Where(x => value.Children.ContainsKey(x)).ToArray())
     {
         WriteShortString(item);
         WriteVariant(value[item]);
         value.Children.Remove(item);
     }
     foreach (var item in value.Children)
     {
         WriteShortString(item.Key.StartsWith(Defines.VAR_INDEX_VALUE) ? VariantMap.IndexStringToIntString(item.Key) : item.Key);
         WriteVariant(item.Value);
     }
     Write(_endofObject);
     return(true);
 }
Ejemplo n.º 14
0
        public static void Fill(VariantMap map, VariantMapList values)
        {
            string[] varNames = Enum.GetNames(typeof(VariantType));
            foreach (VariantMapRecord rec in values)
            {
                Variant var     = new Variant();
                string  keyname = rec.Key;
                string  name    = varNames[(int)rec.Type];
                string  value   = rec.Value;

                var.FromString(varNames[(int)rec.Type], rec.Value);
                if (rec.Key != null)
                {
                    map.Set(rec.Key, var);
                }
                else
                {
                    map.Set(rec.ExplicitKey, var);
                }
            }
        }
Ejemplo n.º 15
0
        protected override void OnMouseWheel(System.Windows.Forms.MouseEventArgs e)
        {
            VariantMap eventData = new VariantMap();

            if (e.Button == System.Windows.Forms.MouseButtons.Left)
            {
                eventData.Set("Buttons", new UrhoBackend.Variant((int)0));
            }
            if (e.Button == System.Windows.Forms.MouseButtons.Right)
            {
                eventData.Set("Buttons", new UrhoBackend.Variant((int)1));
            }
            if (e.Button == System.Windows.Forms.MouseButtons.Middle)
            {
                eventData.Set("Buttons", new UrhoBackend.Variant((int)2));
            }

            eventData.Set("Wheel", new Variant(e.Delta));
            SendEvent("MouseWheel", eventData);
            base.OnMouseWheel(e);
        }
Ejemplo n.º 16
0
        private Variant ToPrimitives(List <DirtyInfo> info)
        {
            var vm = GlobalPool <VariantMap> .GetObject();

            var result = Variant.Get(vm);

            vm.IsArray     = true;
            vm.ArrayLength = info.Count;
            for (var i = 0; i < vm.ArrayLength; i++)
            {
                var primitive = Variant.GetMap(new VariantMapHelper {
                    { Defines.RM_SHAREDOBJECTPRIMITIVE_TYPE, info[i].Type }
                });
                switch (info[i].Type)
                {
                case Defines.SOT_SC_UPDATE_DATA_ACK:

                case Defines.SOT_SC_DELETE_DATA:
                    primitive[Defines.RM_SHAREDOBJECTPRIMITIVE_PAYLOAD] = Variant.GetList(info[i].PropertyName);
                    break;

                case Defines.SOT_SC_UPDATE_DATA:
                    primitive[Defines.RM_SHAREDOBJECTPRIMITIVE_PAYLOAD] = Variant.GetMap(new VariantMapHelper
                    {
                        { info[i].PropertyName, Payload[info[i].PropertyName].Clone() }
                    });
                    break;

                case Defines.SOT_SC_INITIAL_DATA:
                case Defines.SOT_SC_CLEAR_DATA:
                    break;

                default:
                    Logger.ASSERT("Unable to handle primitive type:{0}", info[i].Type);
                    break;
                }
                vm[VariantMap.GetIndexString(i)] = primitive;
            }
            return(result);
        }
Ejemplo n.º 17
0
        public static VariantMapList Get(object src, PropertyDescriptor desc, VariantMap map)
        {
            Scene scene = src as Scene;

            if (scene == null)
            {
                Node nd = src as Node;
                if (nd == null)
                {
                    UrhoBackend.Component cp = src as UrhoBackend.Component;
                    scene = cp.GetScene();
                }
                else
                {
                    scene = nd.GetScene();
                }
            }

            VariantMapList    keys     = new VariantMapList(desc, src);
            List <string>     varNames = new List <string>(Enum.GetNames(typeof(VariantType)));
            List <StringHash> hashes   = map.Keys();

            foreach (StringHash sh in hashes)
            {
                Variant          v     = map.Get(sh);
                string           value = v.ToString();
                VariantType      vt    = (VariantType)varNames.IndexOf(v.GetVarType());
                VariantMapRecord rec   = new VariantMapRecord(keys)
                {
                    ExplicitKey = sh, Type = (VariantType)v.GetVarTypeID(), Value = v.ToString()
                };
                if (scene != null)
                {
                    rec.Key = VariableUtils.GetVariableName(scene, rec.ExplicitKey);
                }
                rec.Enabled = true;
                keys.Add(rec);
            }
            return(keys);
        }
Ejemplo n.º 18
0
        public void OnNodeDeleted(uint hash, VariantMap eventData)
        {
            Node      node = eventData.Get("Node").GetNode();
            Component comp = eventData.Get("Component").GetComponent();

            if (comp != null)
            {
                if (NodeDeleted != null)
                {
                    NodeDeleted(comp, new EventArgs {
                    });
                }
            }
            else if (node != null)
            {
                if (NodeDeleted != null)
                {
                    NodeDeleted(node, new EventArgs {
                    });
                }
            }
        }
Ejemplo n.º 19
0
 public Variant(VariantMap value)
 {
     Value = value;
     ValueType = VariantType.Map;
 }
Ejemplo n.º 20
0
 //TODO: Should be BeginRendering event
 private void HandleRenderUpdate(VariantMap obj)
 {
 }
Ejemplo n.º 21
0
        private void HandleNodeCollision(VariantMap args)
        {
            //RigidBody body = args.Body;
            //RigidBody otherBody = args.OtherBody;

            //Node node = body.Node;
            //String name = node.Name;
            //Node otherNode = otherBody.Node;
            //String otherName = otherNode.Name;

            //// Detect if there is ground within stepping range
            //if (args.Trigger)
            //{
            //    if (name == "DropDetect")
            //    {
            //        dropDetected_ = false;
            //        return;
            //    }

            //    if (name == "StandDetect")
            //    {
            //        okToStand_ = false;
            //        return;
            //    }

            //    if (name == "GroundDetect")
            //    {
            //        nearGround_ = true;
            //        return;
            //    }
            //}

            //// Filter out collisions with DropDetect as otherNode, for some reason this can cause a crouch-jump glitch ?
            //if (otherName == "DropDetect")
            //{
            //    // dropDetected_ = false;
            //    return;
            //}

            //if (otherName == "StandDetect")
            //    return;

            //if (otherName == "GroundDetect")
            //    return;

            ///*if (name != "Character")
            //    return;*/

            //Vector3 vel = body.LinearVelocity;
            //float YY = (Node.Position.Y);
            //CollisionShape colShape = Node.GetComponent<CollisionShape>();
            //float height = colShape.Position.Y;

            //foreach (var contacts in args.Contacts)
            //{
            //    Vector3 contactPosition = contacts.ContactPosition;
            //    Vector3 contactNormal = contacts.ContactNormal;
            //    float contactDistance = contacts.ContactDistance;
            //    float contactImpulse = contacts.ContactImpulse;

            //    // Prevent bounce from corner impact
            //    if (contactImpulse > 200.0f)
            //        highImpulseDetected_ = true;


            //    // If contact is below node center and mostly vertical, assume it's a ground contact
            //    if (contactPosition.Y < YY + height)
            //    {
            //        float level = Math.Abs(contactNormal.Y);
            //        if (level > 0.75)
            //            onGround_ = true;
            //    }
            //}
        }
Ejemplo n.º 22
0
 void handleMouseButtonDown(VariantMap eventData)
 {
     isAdding = true;
 }
Ejemplo n.º 23
0
 public void SetValue(VariantMap value)
 {
     Value = value;
     ValueType = VariantType.Map;
 }
Ejemplo n.º 24
0
        private static void EventHandlerCallback(IntPtr actionHandle, uint eventHash, IntPtr argMap)
        {
            var eventHandler = (Action <StringHash, VariantMap>)GCHandle.FromIntPtr(actionHandle).Target;

            eventHandler(new StringHash(eventHash), VariantMap.wrap(argMap, false));
        }
Ejemplo n.º 25
0
 protected void OnInspect(VariantMap args)
 {
     _inspectable = (IInspectable)args[InspectItem.Inspectable].Object;
 }
Ejemplo n.º 26
0
 public void SendEvent <T>(VariantMap args)
 {
     SendEvent(GetEventType <T>(), args);
 }
Ejemplo n.º 27
0
 public void SetValue(IList<Variant> array)
 {
     var vm = new VariantMap();
     Value = vm;
     ValueType = VariantType.Map;
     vm.IsArray = true;
     vm.ArrayLength = array.Count;
     for (var i = 0; i < vm.ArrayLength; i++)
     {
         vm[VariantMap.GetIndexString(i)] = array[i];
     }
 }
Ejemplo n.º 28
0
    void handleUpdate(VariantMap eventData)
    {
        if (isAdding)
        {
            var scale   = new Vector2();
            var initPos = new Vector2(minX, maxY);


            for (var i = 0; i < amount; i++)
            {
                var bunny = new Bunny();
                bunnies.Add(bunny);

                var node = scene.CreateChild();
                bunny.node = node;

                var sprite = (StaticSprite2D)node.CreateComponent("StaticSprite2D");
                sprite.BlendMode = BlendMode.BLEND_ALPHA;
                sprite.Sprite    = currentTexture;

                node.Position2D = bunny.position = initPos;
                bunny.speed.x   = (float)(random.NextDouble() * 10);
                bunny.speed.y   = (float)(random.NextDouble() * 10) - 5;


                scale.x      = scale.y = (0.5f + ((float)random.NextDouble()) * 0.5f);
                node.Scale2D = scale;

                node.Rotation2D = (((float)random.NextDouble()) - 0.5f);
            }
        }

        foreach (var bunny in bunnies)
        {
            var px = bunny.position.x;
            var py = bunny.position.y;

            var speedX = bunny.speed.x;
            var speedY = bunny.speed.y;

            px += speedX * .002f;
            py += speedY * .002f;

            if (px > maxX)
            {
                speedX *= -1;
                px      = maxX;
            }
            else if (px < minX)
            {
                speedX *= -1;
                px      = minX;
            }

            if (py > maxY)
            {
                speedY = 0;
                py     = maxY;
            }
            else if (py < minY)
            {
                speedY *= -0.95f;

                if (((float)random.NextDouble()) > 0.5f)
                {
                    speedY -= ((float)random.NextDouble()) * 6f;
                }

                py = minY;
            }

            bunny.speed.x = speedX;
            bunny.speed.y = speedY + gravity;

            bunny.position.x      = px;
            bunny.position.y      = py;
            bunny.node.Position2D = bunny.position;
            ;
        }
    }
Ejemplo n.º 29
0
 private void OnInspect(VariantMap args)
 {
     _hierarchyProvider = (IHierarchyProvider)args[InspectHierarchy.HierarchyProvider].Object;
 }
Ejemplo n.º 30
0
        internal static void HandleEventWithoutType(IntPtr gcHandle, uint type, IntPtr args)
        {
            var callback = (Action <VariantMap>)GCHandle.FromIntPtr(gcHandle).Target;

            callback.Invoke(VariantMap.GetManagedInstance(args, false));
        }