示例#1
0
 public void Detach(IActor actor)
 {
     if (HandleHasDestroyed(actor.Handle))
     {
         return;
     }
     ActorInternals.Node_Detach(GetPointerFromObj(actor));
 }
示例#2
0
 public string GetName(IActor handle)
 {
     if (HandleHasDestroyed(handle.Handle))
     {
         return(string.Empty);
     }
     return(ActorInternals.Node_GetName(GetPointerFromObj(handle)));
 }
示例#3
0
 public void Destroy(IActor handle)
 {
     if (HandleHasDestroyed(handle.Handle))
     {
         return;
     }
     ActorInternals.Node_Destroy(GetPointerFromObj(handle));
 }
示例#4
0
 public bool IsEnabled(IActor src)
 {
     if (HandleHasDestroyed(src.Handle))
     {
         return(false);
     }
     return(ActorInternals.Node_IsEnabled(GetPointerFromObj(src)));
 }
示例#5
0
 public bool HasComponent(IActor actor, Type type)
 {
     if (HandleHasDestroyed(actor.Handle))
     {
         return(false);
     }
     return(ActorInternals.Node_HasComponent(GetPointerFromObj(actor), GetHashCodeFromType(type)));
 }
示例#6
0
 public void RemoveComponent(IActor actor, Type type)
 {
     if (HandleHasDestroyed(actor.Handle))
     {
         return;
     }
     ActorInternals.Node_RemoveComponent(GetPointerFromObj(actor), GetHashCodeFromType(type));
 }
示例#7
0
 public int GetId(IActor src)
 {
     if (HandleHasDestroyed(src.Handle))
     {
         return(-1);
     }
     return((int)ActorInternals.Node_GetID(GetPointerFromObj(src)));
 }
示例#8
0
 public void SetName(IActor handle, string value)
 {
     if (HandleHasDestroyed(handle.Handle))
     {
         return;
     }
     ActorInternals.Node_SetName(GetPointerFromObj(handle), value);
 }
示例#9
0
 public void SetEnabled(IActor src, bool value)
 {
     if (HandleHasDestroyed(src.Handle))
     {
         return;
     }
     ActorInternals.Node_SetEnabled(GetPointerFromObj(src), value);
 }
示例#10
0
        public IReadOnlyList <IActor> GetChildren(IActor handle)
        {
            if (HandleHasDestroyed(handle.Handle))
            {
                return(Constants.EmptyActorList);
            }
            Handler list = ActorInternals.Node_GetChildren(GetPointerFromObj(handle));

            return(new InternalList <IActor>(list, ListGetterCallback));
        }
示例#11
0
        public IActor Clone(IActor actor)
        {
            if (HandleHasDestroyed(actor.Handle))
            {
                return(null);
            }
            Handler handler = ActorInternals.Node_Clone(GetPointerFromObj(actor));

            return(Wrap(handler));
        }
示例#12
0
        public IComponent GetComponent(IActor actor, Type type)
        {
            if (HandleHasDestroyed(actor.Handle))
            {
                return(null);
            }
            IntPtr componentPtr = ActorInternals.Node_GetComponent(GetPointerFromObj(actor), GetHashCodeFromType(type));

            return((RootDriver.ComponentDriver as ComponentDriver).ListGetterCallback(componentPtr));
        }
示例#13
0
 public void RemoveChild(IActor src, IActor handle)
 {
     if (HandleHasDestroyed(src.Handle) || HandleHasDestroyed(handle.Handle))
     {
         return;
     }
     ActorInternals.Node_RemoveChild(
         GetPointerFromObj(src),
         GetPointerFromObj(handle)
         );
 }
示例#14
0
        public IReadOnlyList <IComponent> GetAllComponents(IActor actor)
        {
            if (HandleHasDestroyed(actor.Handle))
            {
                return(Constants.EmptyComponentList);
            }

            Handler handler = ActorInternals.Node_GetAllComponents(GetPointerFromObj(actor));

            return(new InternalList <IComponent>(handler, (RootDriver.ComponentDriver as ComponentDriver).ListGetterCallback));
        }
示例#15
0
        public IComponent CreateComponent(IActor actor, Type type)
        {
            if (HandleHasDestroyed(actor.Handle))
            {
                return(null);
            }

            IntPtr componentPtr = ActorInternals.Node_CreateComponent(GetPointerFromObj(actor), GetHashCodeFromType(type));

            return(TryBindReferenceHolder(componentPtr, (handle) => RootDriver.ComponentDriver.Wrap(type, handle)));
        }
示例#16
0
 public void SetParent(IActor actor, IActor target)
 {
     if (actor is null)
     {
         return;
     }
     ActorInternals.Node_SetParent(
         GetPointerFromObj(actor),
         GetPointerFromObj(target)
         );
 }
        public IReadOnlyList <IActor> GetActors(IWorld world)
        {
            if (HandleHasDestroyed(world.Handle))
            {
                return(Constants.EmptyActorList);
            }
            // Urho3D Scene inherits Node Type
            Handler handler = ActorInternals.Node_GetChildren(GetPointerFromObj(world));

            return(new InternalList <IActor>(handler, (RootDriver.ActorDriver as ActorDriver).ListGetterCallback));
        }
示例#18
0
        public IActor GetParent(IActor actor)
        {
            if (HandleHasDestroyed(actor.Handle))
            {
                return(null);
            }
            IntPtr ptr = ActorInternals.Node_GetParent(GetPointerFromObj(actor));

            if (ptr.Equals(IntPtr.Zero))
            {
                return(null);
            }
            return(TryBindReferenceHolder(ptr, Wrap));
        }
示例#19
0
        public IWorld GetWorld(IActor actor)
        {
            if (HandleHasDestroyed(actor.Handle))
            {
                return(null);
            }
            IntPtr handler = ActorInternals.Node_GetScene(GetPointerFromObj(actor));

            if (handler.Equals(IntPtr.Zero))
            {
                return(null);
            }
            return(TryBindReferenceHolder(handler, (RootDriver.WorldDriver as WorldDriver).Wrap));
        }