mirror of
				https://github.com/yeslayla/golang-game-framework.git
				synced 2025-11-04 08:43:06 +01:00 
			
		
		
		
	Work towards deletion system
This commit is contained in:
		@ -15,4 +15,5 @@ type INode interface {
 | 
			
		||||
	IsProcessing() bool
 | 
			
		||||
	GetProcessMode() ProcessMode
 | 
			
		||||
	SetProcessMode(ProcessMode)
 | 
			
		||||
	Free() error
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										21
									
								
								node/node.go
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								node/node.go
									
									
									
									
									
								
							@ -1,6 +1,7 @@
 | 
			
		||||
package node
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"log"
 | 
			
		||||
 | 
			
		||||
	"github.com/manleydev/golang-game-framework/rendering"
 | 
			
		||||
@ -112,6 +113,26 @@ func (node *Node) GetName() string {
 | 
			
		||||
	return node.Name
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (node *Node) Free() error {
 | 
			
		||||
 | 
			
		||||
	var parent *Node = node.parent.(*Node)
 | 
			
		||||
	if err := parent.removeChild(node); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	node.parent = nil
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (node *Node) removeChild(target *Node) error {
 | 
			
		||||
	for i, child := range node.children {
 | 
			
		||||
		if child == target {
 | 
			
		||||
			node.children = append(node.children[:i], node.children[i+1:]...)
 | 
			
		||||
			return nil
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return fmt.Errorf("Could not remove child '%s', child not found on parent!", target.Name)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (node *Node) GetChild(index int) INode {
 | 
			
		||||
	if index < len(node.children) {
 | 
			
		||||
		return nil
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user