Renderer/src/main/java/electrosphere/entity/ClientEntityUtils.java
austin b5e8c71545
Some checks failed
studiorailgun/Renderer/pipeline/head There was a failure building this commit
toolbar state mostly working
2024-09-27 18:23:55 -04:00

55 lines
1.4 KiB
Java

package electrosphere.entity;
import java.util.List;
import org.joml.Quaterniond;
import org.joml.Vector3d;
import electrosphere.engine.Globals;
import electrosphere.entity.state.attach.AttachUtils;
import electrosphere.entity.types.collision.CollisionObjUtils;
/**
* Client only entity utility functions
*/
public class ClientEntityUtils {
/**
* Called when the creature is first spawned to serialize to all people in its initial chunk
* @param entity
* @param position
*/
public static void initiallyPositionEntity(Entity entity, Vector3d position, Quaterniond rotation){
//reposition entity
CollisionObjUtils.clientPositionCharacter(entity, position, rotation);
}
/**
* Destroys an entity on the client
* @param entity the entity to destroy
*/
public static void destroyEntity(Entity entity){
if(entity != null){
//
//destroy the child entities, too
if(AttachUtils.hasChildren(entity)){
List<Entity> children = AttachUtils.getChildrenList(entity);
for(Entity child : children){
ClientEntityUtils.destroyEntity(child);
}
}
//check for client-specific stuff
Globals.renderingEngine.getLightManager().destroyPointLight(entity);
//deregister all behavior trees
EntityUtils.cleanUpEntity(entity);
}
}
}