//---------------------------------------------------------------------- // Override Abstract methods //---------------------------------------------------------------------- override protected DLink DerivedCreateNode() { DLink pNode = new GameObjectRef(); Debug.Assert(pNode != null); return(pNode); }
public GameObjectRef Attach(GameObject pGameObject) { GameObjectRef pNode = (GameObjectRef)BaseAdd(); Debug.Assert(pNode != null); pNode.Set(pGameObject); return(pNode); }
//---------------------------------------------------------------------- // Constructor / Destructor //---------------------------------------------------------------------- public GameObjectManager(int reserveNum = 3, int reserveGrow = 1) : base(reserveNum, reserveGrow) { // make sure values are ressonable Debug.Assert(reserveNum > 0); Debug.Assert(reserveGrow > 0); this.pGameObjectCompare = new GameObjectRef(); this.pNullGameObject = new NullGameObject(); this.pGameObjectCompare.SetGameObject(this.pNullGameObject); }
public void Update() { GameObjectRef pNode = (GameObjectRef)BaseGetActive(); while (pNode != null) { if (pNode.GetGameObject() != null) { // Update the node pNode.GetGameObject().Update(); } pNode = (GameObjectRef)pNode.GetNext(); } }
public GameObject Find(GameObject.Name name) { // Compare functions only compares two Nodes pGameObjectCompare.GetGameObject().SetName(name); GameObjectRef pNode = (GameObjectRef)BaseFind(pGameObjectCompare); if (pNode != null) { return(pNode.GetGameObject()); } return(null); }
// Currently necessary for Detach() since GameObject.Name is not unique private Boolean HashCodeCompare(DLink pLinkA, DLink pLinkB) { Debug.Assert(pLinkA != null); Debug.Assert(pLinkB != null); GameObjectRef pDataA = (GameObjectRef)pLinkA; GameObjectRef pDataB = (GameObjectRef)pLinkB; Boolean status = false; if (pDataA.GetGameObject().GetHashCode() == pDataB.GetGameObject().GetHashCode()) { status = true; } return(status); }
override protected Boolean DerivedCompare(DLink pLinkA, DLink pLinkB) { // This is used in baseFind() Debug.Assert(pLinkA != null); Debug.Assert(pLinkB != null); GameObjectRef pDataA = (GameObjectRef)pLinkA; GameObjectRef pDataB = (GameObjectRef)pLinkB; Boolean status = false; if (pDataA.GetGameObject().GetName() == pDataB.GetGameObject().GetName()) { status = true; } return(status); }
protected override void DerivedDestroyNode(DLink pLink) { GameObjectRef pGameObjectRef = (GameObjectRef)pLink; pGameObjectRef.SetGameObject(null); }