move more entities into clientState

This commit is contained in:
austin 2025-05-15 12:46:25 -04:00
parent a2b5de8863
commit 0266ba1b90
47 changed files with 224 additions and 222 deletions

View File

@ -1808,6 +1808,7 @@ Move clientScene to clientState
Move clientSceneWrapper to clientState
Move clientConnection to clientState
Move playerEntity to clientState
Move playerCamera to clientState
Move global cursor entities into cursorState
Move lots of global state to clientState

View File

@ -191,14 +191,14 @@ public class AudioEngine {
* Updates the orientation of the listener based on the global player camera
*/
private void updateListener(){
if(Globals.playerCamera != null){
if(Globals.clientState.playerCamera != null){
//position
Vector3d cameraPos = CameraEntityUtils.getCameraCenter(Globals.playerCamera);
Vector3d cameraPos = CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera);
listener.setPosition(cameraPos);
//orientation
Vector3d cameraEye = SpatialMathUtils.getOriginVector().rotate(CameraEntityUtils.getRotationQuat(Globals.playerCamera)).normalize();
Vector3d cameraUp = SpatialMathUtils.getUpVector().rotate(CameraEntityUtils.getRotationQuat(Globals.playerCamera)).normalize();
Vector3d cameraEye = SpatialMathUtils.getOriginVector().rotate(CameraEntityUtils.getRotationQuat(Globals.clientState.playerCamera)).normalize();
Vector3d cameraUp = SpatialMathUtils.getUpVector().rotate(CameraEntityUtils.getRotationQuat(Globals.clientState.playerCamera)).normalize();
listener.setOrientation(new Vector3f((float)cameraEye.x,(float)cameraEye.y,(float)cameraEye.z), new Vector3f((float)cameraUp.x,(float)cameraUp.y,(float)cameraUp.z));
}
}

View File

@ -101,8 +101,8 @@ public class VirtualAudioSourceManager {
*/
public void update(float deltaTime){
//update priority of all virtual audio sources based on distance from camera position
if(Globals.playerCamera!=null){
Vector3d cameraEarPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.playerCamera)).add(CameraEntityUtils.getCameraEye(Globals.playerCamera));
if(Globals.clientState.playerCamera!=null){
Vector3d cameraEarPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera)).add(CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera));
for(VirtualAudioSource source : virtualSourceQueue){
if(source.position!=null){
source.setPriority((int)cameraEarPos.distance(source.position));

View File

@ -132,6 +132,16 @@ public class ClientState {
*/
public Entity playerEntity;
/**
* the entity for the first person model (view model)
*/
public Entity firstPersonEntity;
/**
* the player camera entity
*/
public Entity playerCamera;
/**
* Constructor
*/

View File

@ -116,14 +116,14 @@ public class CameraEntityUtils {
*/
public static void initCamera(){
//destroy if it already exists
if(Globals.playerCamera != null){
Globals.clientState.clientSceneWrapper.getScene().deregisterEntity(Globals.playerCamera);
if(Globals.clientState.playerCamera != null){
Globals.clientState.clientSceneWrapper.getScene().deregisterEntity(Globals.clientState.playerCamera);
}
//create
if(Globals.controlHandler.cameraIsThirdPerson()){
Globals.playerCamera = CameraEntityUtils.spawnPlayerEntityTrackingCameraEntity();
Globals.clientState.playerCamera = CameraEntityUtils.spawnPlayerEntityTrackingCameraEntity();
} else {
Globals.playerCamera = CameraEntityUtils.spawnPlayerEntityTrackingCameraFirstPersonEntity(new Vector3d(0,0,0), SpatialMathUtils.getOriginVector());
Globals.clientState.playerCamera = CameraEntityUtils.spawnPlayerEntityTrackingCameraFirstPersonEntity(new Vector3d(0,0,0), SpatialMathUtils.getOriginVector());
}
}

View File

@ -31,7 +31,7 @@ public class Crosshair {
static final float TARGET_MAX_DIST = 1;
public static void checkTargetable(){
if(crossHairEntity != null && Globals.clientState.playerEntity != null && Globals.playerCamera != null){
if(crossHairEntity != null && Globals.clientState.playerEntity != null && Globals.clientState.playerCamera != null){
Vector3d parentPos = EntityUtils.getPosition(Globals.clientState.playerEntity);
// if(currentTarget == null){
if(!crosshairActive){
@ -40,7 +40,7 @@ public class Crosshair {
for(Entity entity : Globals.clientState.clientScene.getEntitiesWithTag(EntityTags.TARGETABLE)){
Vector3d entityPos = EntityUtils.getPosition(entity);
double currentDist = parentPos.distance(entityPos);
double currentAngleDiff = new Vector3d(entityPos).sub(parentPos).normalize().dot(new Vector3d(CameraEntityUtils.getCameraEye(Globals.playerCamera)));
double currentAngleDiff = new Vector3d(entityPos).sub(parentPos).normalize().dot(new Vector3d(CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera)));
if(currentDist + currentAngleDiff < dist && currentDist <= TARGET_MAX_DIST && entity != Globals.clientState.playerEntity){
target = entity;
dist = currentDist + currentAngleDiff;

View File

@ -21,8 +21,8 @@ public class InstanceUpdater {
*/
public static void updateInstancedActorPriority(){
Globals.profiler.beginCpuSample("updateInstancedActorPriority");
if(Globals.playerCamera != null){
Vector3d eyePosition = new Vector3d(CameraEntityUtils.getCameraEye(Globals.playerCamera));
if(Globals.clientState.playerCamera != null){
Vector3d eyePosition = new Vector3d(CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera));
Set<Entity> instancedEntities = Globals.clientState.clientScene.getEntitiesWithTag(EntityTags.DRAW_INSTANCED);
for(Entity entity : instancedEntities){
//set priority equal to distance

View File

@ -28,8 +28,8 @@ public class ButtonInteraction {
* Handles a button interaction event
*/
public static void handleButtonInteraction(){
if(Globals.clientState.playerEntity != null && Globals.playerCamera != null){
Entity camera = Globals.playerCamera;
if(Globals.clientState.playerEntity != null && Globals.clientState.playerCamera != null){
Entity camera = Globals.clientState.playerCamera;
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(camera)).mul(-1.0);
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(camera));
Entity target = ClientInteractionEngine.rayCast(centerPos, eyePos);

View File

@ -229,12 +229,12 @@ public class ClientInteractionEngine {
* Updates the interaction target label
*/
public static void updateInteractionTargetLabel(){
if(Globals.clientState.playerEntity != null && Globals.playerCamera != null){
if(Globals.clientState.playerEntity != null && Globals.clientState.playerCamera != null){
//clear block cursor
Globals.cursorState.hintClearBlockCursor();
boolean set = false;
Entity camera = Globals.playerCamera;
Entity camera = Globals.clientState.playerCamera;
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(camera));
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(camera));
Entity target = ClientInteractionEngine.rayCast(centerPos, new Vector3d(eyePos).mul(-1));

View File

@ -51,8 +51,8 @@ public class ItemActions {
* Attempts to perform the primary item action
*/
public static void attemptPrimaryItemAction(){
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(Globals.playerCamera));
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera));
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
Vector3d cursorPos = Globals.cursorState.getCursorPosition();
if(cursorPos == null){
cursorPos = Globals.clientState.clientSceneWrapper.getCollisionEngine().rayCastPosition(new Vector3d(centerPos), new Vector3d(eyePos).mul(-1.0), CollisionEngine.DEFAULT_INTERACT_DISTANCE);
@ -111,8 +111,8 @@ public class ItemActions {
* Repeats the primary item action
*/
public static void repeatPrimaryItemAction(){
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(Globals.playerCamera));
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera));
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
Vector3d cursorPos = Globals.cursorState.getCursorPosition();
if(cursorPos == null){
cursorPos = Globals.clientState.clientSceneWrapper.getCollisionEngine().rayCastPosition(new Vector3d(centerPos), new Vector3d(eyePos).mul(-1.0), CollisionEngine.DEFAULT_INTERACT_DISTANCE);
@ -136,8 +136,8 @@ public class ItemActions {
* Releases the primary item action
*/
public static void releasePrimaryItemAction(){
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(Globals.playerCamera));
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera));
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
Vector3d cursorPos = Globals.cursorState.getCursorPosition();
if(cursorPos == null){
cursorPos = Globals.clientState.clientSceneWrapper.getCollisionEngine().rayCastPosition(new Vector3d(centerPos), new Vector3d(eyePos).mul(-1.0), CollisionEngine.DEFAULT_INTERACT_DISTANCE);
@ -156,7 +156,7 @@ public class ItemActions {
));
//do any immediate client side calculations here (ie start playing an animation until we get response from server)
if(Globals.clientState.playerEntity != null){
// Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
// Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera);
ClientAttackTree attackTree = CreatureUtils.clientGetAttackTree(Globals.clientState.playerEntity);
if(attackTree != null){
// CreatureUtils.setFacingVector(Globals.playerCharacter, new Vector3d(-cameraEyeVector.x,0,-cameraEyeVector.z).normalize());
@ -169,8 +169,8 @@ public class ItemActions {
* Attempts to perform the secondary item action
*/
public static void attemptSecondaryItemAction(){
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(Globals.playerCamera));
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera));
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
Vector3d cursorPos = Globals.cursorState.getCursorPosition();
if(cursorPos == null){
cursorPos = Globals.clientState.clientSceneWrapper.getCollisionEngine().rayCastPosition(new Vector3d(centerPos), new Vector3d(eyePos).mul(-1.0), CollisionEngine.DEFAULT_INTERACT_DISTANCE);
@ -221,8 +221,8 @@ public class ItemActions {
* Repeats the secondary item action
*/
public static void repeatSecondaryItemAction(){
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(Globals.playerCamera));
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera));
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
Vector3d cursorPos = Globals.cursorState.getCursorPosition();
if(cursorPos == null){
cursorPos = Globals.clientState.clientSceneWrapper.getCollisionEngine().rayCastPosition(new Vector3d(centerPos), new Vector3d(eyePos).mul(-1.0), CollisionEngine.DEFAULT_INTERACT_DISTANCE);
@ -273,8 +273,8 @@ public class ItemActions {
* Releases the secondary item action
*/
public static void releaseSecondaryItemAction(){
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(Globals.playerCamera));
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera));
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
Vector3d cursorPos = Globals.cursorState.getCursorPosition();
if(cursorPos == null){
cursorPos = Globals.clientState.clientSceneWrapper.getCollisionEngine().rayCastPosition(new Vector3d(centerPos), new Vector3d(eyePos).mul(-1.0), CollisionEngine.DEFAULT_INTERACT_DISTANCE);

View File

@ -43,7 +43,7 @@ public class ScriptClientVoxelUtils {
@Export
public static void applyEdit(){
CollisionEngine collisionEngine = Globals.clientState.clientSceneWrapper.getCollisionEngine();
Entity camera = Globals.playerCamera;
Entity camera = Globals.clientState.playerCamera;
if(
collisionEngine != null &&
camera != null
@ -67,7 +67,7 @@ public class ScriptClientVoxelUtils {
@Export
public static void spawnWater(){
CollisionEngine collisionEngine = Globals.clientState.clientSceneWrapper.getCollisionEngine();
Entity camera = Globals.playerCamera;
Entity camera = Globals.clientState.playerCamera;
if(
collisionEngine != null &&
camera != null &&
@ -103,7 +103,7 @@ public class ScriptClientVoxelUtils {
@Export
public static void dig(){
CollisionEngine collisionEngine = Globals.clientState.clientSceneWrapper.getCollisionEngine();
Entity camera = Globals.playerCamera;
Entity camera = Globals.clientState.playerCamera;
if(
collisionEngine != null &&
camera != null

View File

@ -164,8 +164,8 @@ public class ClientSimulation {
private void updateFirstPersonAttachments(){
Globals.profiler.beginCpuSample("updateFirstPersonAttachments");
//update the facing vector when camera moves in first person
if(!Globals.controlHandler.cameraIsThirdPerson() && Globals.playerCamera != null && Globals.clientState.playerEntity != null){
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.playerCamera));
if(!Globals.controlHandler.cameraIsThirdPerson() && Globals.clientState.playerCamera != null && Globals.clientState.playerEntity != null){
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.clientState.playerCamera));
//flush equipped item state
if(ClientEquipState.hasEquipState(Globals.clientState.playerEntity)){
ClientEquipState equipState = ClientEquipState.getClientEquipState(Globals.clientState.playerEntity);

View File

@ -63,8 +63,8 @@ public class CharacterCustomizer {
CreatureData selectedRaceType = Globals.gameConfigCurrent.getCreatureTypeLoader().getType(race);
//spawn camera so renderer doesn't crash (once render pipeline is modularized this shouldn't be necessary)
Globals.playerCamera = CameraEntityUtils.spawnBasicCameraEntity(new Vector3d(0,0,0), new Vector3d(0,0.3f,1).normalize());
Globals.viewMatrix = CameraEntityUtils.getCameraViewMatrix(Globals.playerCamera);
Globals.clientState.playerCamera = CameraEntityUtils.spawnBasicCameraEntity(new Vector3d(0,0,0), new Vector3d(0,0.3f,1).normalize());
Globals.viewMatrix = CameraEntityUtils.getCameraViewMatrix(Globals.clientState.playerCamera);
//create actor panel
Actor characterActor = ActorUtils.createActorFromModelPath(selectedRaceType.getGraphicsTemplate().getModel().getPath());

View File

@ -85,7 +85,7 @@ public class ImGuiPlayerEntity {
if(ImGui.button("1st Person Details")){
ImGuiEntityMacros.showEntity(Globals.firstPersonEntity);
ImGuiEntityMacros.showEntity(Globals.clientState.firstPersonEntity);
}
ImGui.sameLine();
@ -152,8 +152,8 @@ public class ImGuiPlayerEntity {
* Draws camera data
*/
private static void drawCameraData(){
ImGui.text("Yaw: " + CameraEntityUtils.getCameraYaw(Globals.playerCamera));
ImGui.text("Pitch: " + CameraEntityUtils.getCameraPitch(Globals.playerCamera));
ImGui.text("Yaw: " + CameraEntityUtils.getCameraYaw(Globals.clientState.playerCamera));
ImGui.text("Pitch: " + CameraEntityUtils.getCameraPitch(Globals.clientState.playerCamera));
}
}

View File

@ -34,7 +34,7 @@ public class ImGuiClientServices {
if(ImGui.collapsingHeader("Draw Cells")){
if(ImGui.button("Debug DrawCell at camera position")){
Vector3i cameraWorldPos = Globals.clientState.clientWorldData.convertRealToWorldSpace(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3i cameraWorldPos = Globals.clientState.clientWorldData.convertRealToWorldSpace(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
DrawCell cell = Globals.clientState.clientDrawCellManager.getDrawCell(cameraWorldPos.x, cameraWorldPos.y, cameraWorldPos.z);
LoggerInterface.loggerEngine.WARNING("" + cell);
@ -60,17 +60,17 @@ public class ImGuiClientServices {
}
}
if(ImGui.button("Print debug info for FoliageCell at camera position")){
Vector3i cameraWorldPos = Globals.clientState.clientWorldData.convertRealToWorldSpace(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3i cameraWorldPos = Globals.clientState.clientWorldData.convertRealToWorldSpace(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
FoliageCell cell = Globals.clientState.foliageCellManager.getFoliageCell(cameraWorldPos.x, cameraWorldPos.y, cameraWorldPos.z);
LoggerInterface.loggerEngine.WARNING("" + cell);
}
if(ImGui.button("Debug FoliageCell evaluation at camera position")){
Vector3i cameraWorldPos = Globals.clientState.clientWorldData.convertRealToWorldSpace(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3i cameraWorldPos = Globals.clientState.clientWorldData.convertRealToWorldSpace(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
FoliageCell cell = Globals.clientState.foliageCellManager.getFoliageCell(cameraWorldPos.x, cameraWorldPos.y, cameraWorldPos.z);
cell.setTripDebug(true);
}
if(ImGui.button("Request terrain at camera position")){
Vector3i cameraWorldPos = Globals.clientState.clientWorldData.convertRealToWorldSpace(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3i cameraWorldPos = Globals.clientState.clientWorldData.convertRealToWorldSpace(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
Globals.clientState.clientTerrainManager.requestChunk(cameraWorldPos.x, cameraWorldPos.y, cameraWorldPos.z, 0);
}
}

View File

@ -189,7 +189,7 @@ public class ImGuiEntityMacros {
(
AttachUtils.hasChildren(detailViewEntity) ||
AttachUtils.getParent(detailViewEntity) != null ||
detailViewEntity == Globals.firstPersonEntity ||
detailViewEntity == Globals.clientState.firstPersonEntity ||
detailViewEntity == Globals.clientState.playerEntity ||
Globals.clientState.clientSceneWrapper.clientToServerMapContainsId(detailViewEntity.getId())
) &&
@ -363,8 +363,8 @@ public class ImGuiEntityMacros {
// FirstPersonTree firstPersonTree = FirstPersonTree.getTree(detailViewEntity);
if(ImGui.button("Visualize facing vectors")){
DebugVisualizerUtils.clientSpawnVectorVisualizer((Entity vector) -> {
EntityUtils.getPosition(vector).set(EntityUtils.getPosition(Globals.firstPersonEntity));
EntityUtils.getRotation(vector).set(EntityUtils.getRotation(Globals.firstPersonEntity));
EntityUtils.getPosition(vector).set(EntityUtils.getPosition(Globals.clientState.firstPersonEntity));
EntityUtils.getRotation(vector).set(EntityUtils.getRotation(Globals.clientState.firstPersonEntity));
});
DebugVisualizerUtils.clientSpawnVectorVisualizer((Entity vector) -> {
EntityUtils.getPosition(vector).set(EntityUtils.getPosition(Globals.clientState.playerEntity));
@ -494,9 +494,9 @@ public class ImGuiEntityMacros {
if(showLinkedEntitiesTab && ImGui.collapsingHeader("Linked entities")){
ImGui.indent();
if(detailViewEntity == Globals.clientState.playerEntity && ImGui.button("View Model")){
ImGuiEntityMacros.showEntity(Globals.firstPersonEntity);
ImGuiEntityMacros.showEntity(Globals.clientState.firstPersonEntity);
}
if(detailViewEntity == Globals.firstPersonEntity && ImGui.button("3rd Person Model")){
if(detailViewEntity == Globals.clientState.firstPersonEntity && ImGui.button("3rd Person Model")){
ImGuiEntityMacros.showEntity(Globals.clientState.playerEntity);
}
if(AttachUtils.getParent(detailViewEntity) != null && ImGui.button("Parent")){

View File

@ -169,8 +169,8 @@ public class MenuGeneratorsLevelEditor {
//spawn creature button
scrollable.addChild(Button.createButton("Spawn " + data.getId(), () -> {
LoggerInterface.loggerEngine.INFO("spawn " + data.getId() + "!");
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(Globals.playerCamera));
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera));
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
Realm realm = Globals.realmManager.getRealms().iterator().next();
CollisionEngine clientCollisionEngine = Globals.clientState.clientSceneWrapper.getCollisionEngine(); //using client collision engine so ray doesn't collide with player entity
Vector3d cursorPos = clientCollisionEngine.rayCastPosition(new Vector3d(centerPos), new Vector3d(eyePos).mul(-1.0), CollisionEngine.DEFAULT_INTERACT_DISTANCE).add(cursorVerticalOffset);
@ -199,8 +199,8 @@ public class MenuGeneratorsLevelEditor {
//spawn creature button
scrollable.addChild(Button.createButton("Spawn " + unitDefinition.getId(), () -> {
LoggerInterface.loggerEngine.INFO("spawn " + unitDefinition.getId() + "!");
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(Globals.playerCamera));
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera));
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
Realm realm = Globals.realmManager.getRealms().iterator().next();
CollisionEngine clientCollisionEngine = Globals.clientState.clientSceneWrapper.getCollisionEngine(); //using client collision engine so ray doesn't collide with player entity
Vector3d cursorPos = clientCollisionEngine.rayCastPosition(new Vector3d(centerPos), new Vector3d(eyePos).mul(-1.0), CollisionEngine.DEFAULT_INTERACT_DISTANCE);
@ -232,8 +232,8 @@ public class MenuGeneratorsLevelEditor {
//spawn foliage button
scrollable.addChild(Button.createButton("Spawn " + data.getId(), () -> {
LoggerInterface.loggerEngine.INFO("spawn " + data.getId() + "!");
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(Globals.playerCamera));
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera));
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
Realm realm = Globals.realmManager.getRealms().iterator().next();
CollisionEngine clientCollisionEngine = Globals.clientState.clientSceneWrapper.getCollisionEngine(); //using client collision engine so ray doesn't collide with player entity
Vector3d cursorPos = clientCollisionEngine.rayCastPosition(new Vector3d(centerPos), new Vector3d(eyePos).mul(-1.0), CollisionEngine.DEFAULT_INTERACT_DISTANCE).add(cursorVerticalOffset);
@ -261,8 +261,8 @@ public class MenuGeneratorsLevelEditor {
//spawn foliage button
scrollable.addChild(Button.createButton("Spawn " + item.getId(), () -> {
LoggerInterface.loggerEngine.INFO("spawn " + item.getId() + "!");
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(Globals.playerCamera));
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera));
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
Realm realm = Globals.realmManager.getRealms().iterator().next();
CollisionEngine clientCollisionEngine = Globals.clientState.clientSceneWrapper.getCollisionEngine(); //using client collision engine so ray doesn't collide with player entity
Vector3d cursorPos = clientCollisionEngine.rayCastPosition(new Vector3d(centerPos), new Vector3d(eyePos).mul(-1.0), CollisionEngine.DEFAULT_INTERACT_DISTANCE).add(cursorVerticalOffset);
@ -291,8 +291,8 @@ public class MenuGeneratorsLevelEditor {
//spawn object button
scrollable.addChild(Button.createButton("Spawn " + object.getId(), () -> {
LoggerInterface.loggerEngine.INFO("spawn " + object.getId() + "!");
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(Globals.playerCamera));
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera));
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
Realm realm = Globals.realmManager.getRealms().iterator().next();
CollisionEngine clientCollisionEngine = Globals.clientState.clientSceneWrapper.getCollisionEngine(); //using client collision engine so ray doesn't collide with player entity
Vector3d cursorPos = clientCollisionEngine.rayCastPosition(new Vector3d(centerPos), new Vector3d(eyePos).mul(-1.0), CollisionEngine.DEFAULT_INTERACT_DISTANCE).add(cursorVerticalOffset);

View File

@ -98,8 +98,8 @@ public class MenuGeneratorsUITesting {
formEl.addChild(InputMacros.createToggle("Test Toggle", false, null));
//actor panel
if(Globals.playerCamera == null){
Globals.playerCamera = CameraEntityUtils.spawnBasicCameraEntity(new Vector3d(0,0,0), new Vector3d(-1,0,0));
if(Globals.clientState.playerCamera == null){
Globals.clientState.playerCamera = CameraEntityUtils.spawnBasicCameraEntity(new Vector3d(0,0,0), new Vector3d(-1,0,0));
}
ActorPanel actorPanel = ActorPanel.create(ActorUtils.createActorFromModelPath(AssetDataStrings.UNITCUBE));
formEl.addChild(actorPanel);

View File

@ -34,8 +34,8 @@ public class ScriptLevelEditorUtils {
if(Globals.clientState.selectedSpawntype != null){
if(Globals.clientState.selectedSpawntype instanceof CreatureData){
LoggerInterface.loggerEngine.INFO("spawn " + Globals.clientState.selectedSpawntype.getId() + "!");
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(Globals.playerCamera));
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera));
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
Realm realm = Globals.realmManager.getRealms().iterator().next();
CollisionEngine clientCollisionEngine = Globals.clientState.clientSceneWrapper.getCollisionEngine(); //using client collision engine so ray doesn't collide with player entity
Vector3d cursorPos = clientCollisionEngine.rayCastPosition(new Vector3d(centerPos), new Vector3d(eyePos).mul(-1.0), CollisionEngine.DEFAULT_INTERACT_DISTANCE);
@ -46,8 +46,8 @@ public class ScriptLevelEditorUtils {
CreatureUtils.serverSpawnBasicCreature(realm, cursorPos, Globals.clientState.selectedSpawntype.getId(), null);
} else if(Globals.clientState.selectedSpawntype instanceof Item){
LoggerInterface.loggerEngine.INFO("spawn " + Globals.clientState.selectedSpawntype.getId() + "!");
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(Globals.playerCamera));
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera));
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
Realm realm = Globals.realmManager.getRealms().iterator().next();
CollisionEngine clientCollisionEngine = Globals.clientState.clientSceneWrapper.getCollisionEngine(); //using client collision engine so ray doesn't collide with player entity
Vector3d cursorPos = clientCollisionEngine.rayCastPosition(new Vector3d(centerPos), new Vector3d(eyePos).mul(-1.0), CollisionEngine.DEFAULT_INTERACT_DISTANCE);
@ -58,8 +58,8 @@ public class ScriptLevelEditorUtils {
ItemUtils.serverSpawnBasicItem(realm, cursorPos, Globals.clientState.selectedSpawntype.getId());
} else if(Globals.clientState.selectedSpawntype instanceof FoliageType){
LoggerInterface.loggerEngine.INFO("spawn " + Globals.clientState.selectedSpawntype.getId() + "!");
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(Globals.playerCamera));
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera));
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
Realm realm = Globals.realmManager.getRealms().iterator().next();
CollisionEngine clientCollisionEngine = Globals.clientState.clientSceneWrapper.getCollisionEngine(); //using client collision engine so ray doesn't collide with player entity
Vector3d cursorPos = clientCollisionEngine.rayCastPosition(new Vector3d(centerPos), new Vector3d(eyePos).mul(-1.0), CollisionEngine.DEFAULT_INTERACT_DISTANCE);
@ -70,8 +70,8 @@ public class ScriptLevelEditorUtils {
FoliageUtils.serverSpawnTreeFoliage(realm, cursorPos, Globals.clientState.selectedSpawntype.getId());
} else {
LoggerInterface.loggerEngine.INFO("spawn " + Globals.clientState.selectedSpawntype.getId() + "!");
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(Globals.playerCamera));
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera));
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
Realm realm = Globals.realmManager.getRealms().iterator().next();
CollisionEngine clientCollisionEngine = Globals.clientState.clientSceneWrapper.getCollisionEngine(); //using client collision engine so ray doesn't collide with player entity
Vector3d cursorPos = clientCollisionEngine.rayCastPosition(new Vector3d(centerPos), new Vector3d(eyePos).mul(-1.0), CollisionEngine.DEFAULT_INTERACT_DISTANCE);
@ -89,8 +89,8 @@ public class ScriptLevelEditorUtils {
*/
@Export
public static void inspectEntity(){
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(Globals.playerCamera));
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d eyePos = new Vector3d(CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera));
Vector3d centerPos = new Vector3d(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
CollisionEngine clientCollisionEngine = Globals.clientState.clientSceneWrapper.getCollisionEngine(); //using client collision engine so ray doesn't collide with player entity
Entity target = clientCollisionEngine.rayCast(new Vector3d(centerPos), new Vector3d(eyePos).mul(-1.0), CollisionEngine.DEFAULT_INTERACT_DISTANCE);
//show detail view here

View File

@ -106,7 +106,7 @@ public class CameraHandler {
public void updateGlobalCamera(){
Globals.profiler.beginCpuSample("updateGlobalCamera");
if(update){
if(Globals.playerCamera != null){
if(Globals.clientState.playerCamera != null){
cameraSpeed = 2.5f * (float)Globals.timekeeper.getMostRecentRawFrametime();
if(Crosshair.getCrosshairActive()){
@ -118,12 +118,12 @@ public class CameraHandler {
yaw = (float)Math.toDegrees(Math.atan2(diffed.z, diffed.x));
CameraEntityUtils.setCameraPitch(Globals.playerCamera, pitch);
CameraEntityUtils.setCameraYaw(Globals.playerCamera, yaw);
CameraEntityUtils.setCameraPitch(Globals.clientState.playerCamera, pitch);
CameraEntityUtils.setCameraYaw(Globals.clientState.playerCamera, yaw);
} else {
CameraEntityUtils.setCameraPitch(Globals.playerCamera, pitch);
CameraEntityUtils.setCameraYaw(Globals.playerCamera, yaw);
CameraEntityUtils.setCameraPitch(Globals.clientState.playerCamera, pitch);
CameraEntityUtils.setCameraYaw(Globals.clientState.playerCamera, yaw);
Quaterniond pitchQuat = new Quaterniond().fromAxisAngleDeg(SpatialMathUtils.getLeftVector(), -pitch);
Quaterniond yawQuat = new Quaterniond().fromAxisAngleDeg(SpatialMathUtils.getUpVector(), -yaw);
@ -134,16 +134,16 @@ public class CameraHandler {
}
if(trackPlayerEntity && Globals.clientState.playerEntity != null){
Vector3d entityPos = EntityUtils.getPosition(Globals.clientState.playerEntity);
CameraEntityUtils.setCameraCenter(Globals.playerCamera, new Vector3d(entityPos).add(CameraEntityUtils.getOrbitalCameraRadialOffset(Globals.playerCamera)));
CameraEntityUtils.setCameraCenter(Globals.clientState.playerCamera, new Vector3d(entityPos).add(CameraEntityUtils.getOrbitalCameraRadialOffset(Globals.clientState.playerCamera)));
}
//update view matrix offset
float xFactor = (float)Math.cos(yaw / 180.0f * Math.PI);
float yFactor = (float)Math.sin(yaw / 180.0f * Math.PI);
Vector3d radialOffset = CameraEntityUtils.getOrbitalCameraRadialOffset(Globals.playerCamera);
Vector3d radialOffset = CameraEntityUtils.getOrbitalCameraRadialOffset(Globals.clientState.playerCamera);
Vector3d trueOffset = new Vector3d(radialOffset).mul(xFactor,1.0f,yFactor);
CameraEntityUtils.setOrbitalCameraRadialOffset(Globals.playerCamera, trueOffset);
cameraRotationVector.mul(CameraEntityUtils.getOrbitalCameraDistance(Globals.playerCamera));
CameraEntityUtils.setCameraEye(Globals.playerCamera, cameraRotationVector);
CameraEntityUtils.setOrbitalCameraRadialOffset(Globals.clientState.playerCamera, trueOffset);
cameraRotationVector.mul(CameraEntityUtils.getOrbitalCameraDistance(Globals.clientState.playerCamera));
CameraEntityUtils.setCameraEye(Globals.clientState.playerCamera, cameraRotationVector);
//tell the server that we changed where we're looking, if we're in first person
int perspectiveVal = CameraHandler.CAMERA_PERSPECTIVE_FIRST;
@ -163,7 +163,7 @@ public class CameraHandler {
}
//the view matrix
Globals.viewMatrix = CameraEntityUtils.getCameraViewMatrix(Globals.playerCamera);
Globals.viewMatrix = CameraEntityUtils.getCameraViewMatrix(Globals.clientState.playerCamera);
//update the cursor on client side
Globals.cursorState.updatePlayerCursor();

View File

@ -49,58 +49,58 @@ public class ControlCategoryFreecam {
){
freeCameraControlList.add(controlMap.get(FREECAM_UP));
controlMap.get(FREECAM_UP).setOnRepeat(new ControlMethod(){public void execute(MouseState mouseState){
Vector3d playerCameraCenterPos = CameraEntityUtils.getCameraCenter(Globals.playerCamera);
Vector3d playerCameraCenterPos = CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera);
playerCameraCenterPos.add(0,0.1f,0);
CameraEntityUtils.setCameraCenter(Globals.playerCamera,playerCameraCenterPos);
CameraEntityUtils.setCameraCenter(Globals.clientState.playerCamera,playerCameraCenterPos);
}});
freeCameraControlList.add(controlMap.get(FREECAM_DOWN));
controlMap.get(FREECAM_DOWN).setOnRepeat(new ControlMethod(){public void execute(MouseState mouseState){
Vector3d playerCameraCenterPos = CameraEntityUtils.getCameraCenter(Globals.playerCamera);
Vector3d playerCameraCenterPos = CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera);
playerCameraCenterPos.add(0,-0.1f,0);
CameraEntityUtils.setCameraCenter(Globals.playerCamera,playerCameraCenterPos);
CameraEntityUtils.setCameraCenter(Globals.clientState.playerCamera,playerCameraCenterPos);
}});
freeCameraControlList.add(controlMap.get(FREECAM_FORWARD));
ControlMethod freeCamForwardCallback = new ControlMethod(){public void execute(MouseState mouseState){
Vector3d playerCameraCenterPos = CameraEntityUtils.getCameraCenter(Globals.playerCamera);
Vector3d playerCameraEyePos = CameraEntityUtils.getCameraEye(Globals.playerCamera);
Vector3d playerCameraCenterPos = CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera);
Vector3d playerCameraEyePos = CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera);
playerCameraCenterPos.add(new Vector3d(playerCameraEyePos).normalize().mul(-0.1f));
CameraEntityUtils.setCameraCenter(Globals.playerCamera,playerCameraCenterPos);
CameraEntityUtils.setCameraCenter(Globals.clientState.playerCamera,playerCameraCenterPos);
}};
controlMap.get(FREECAM_FORWARD).setOnClick(freeCamForwardCallback);
controlMap.get(FREECAM_FORWARD).setOnRepeat(freeCamForwardCallback);
freeCameraControlList.add(controlMap.get(FREECAM_BACKWARD));
ControlMethod freeCamBackwardCallback = new ControlMethod(){public void execute(MouseState mouseState){
Vector3d playerCameraCenterPos = CameraEntityUtils.getCameraCenter(Globals.playerCamera);
Vector3d playerCameraEyePos = CameraEntityUtils.getCameraEye(Globals.playerCamera);
Vector3d playerCameraCenterPos = CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera);
Vector3d playerCameraEyePos = CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera);
playerCameraCenterPos.add(new Vector3d(playerCameraEyePos).normalize().mul(0.1f));
CameraEntityUtils.setCameraCenter(Globals.playerCamera,playerCameraCenterPos);
CameraEntityUtils.setCameraCenter(Globals.clientState.playerCamera,playerCameraCenterPos);
}};
controlMap.get(FREECAM_BACKWARD).setOnClick(freeCamBackwardCallback);
controlMap.get(FREECAM_BACKWARD).setOnRepeat(freeCamBackwardCallback);
freeCameraControlList.add(controlMap.get(FREECAM_LEFT));
ControlMethod freeCamLeftCallback = new ControlMethod(){public void execute(MouseState mouseState){
Vector3d playerCameraCenterPos = CameraEntityUtils.getCameraCenter(Globals.playerCamera);
Vector3d playerCameraEyePos = CameraEntityUtils.getCameraEye(Globals.playerCamera);
Vector3d playerCameraCenterPos = CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera);
Vector3d playerCameraEyePos = CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera);
Vector3d modifiedVec = new Vector3d(playerCameraEyePos.x,0,playerCameraEyePos.z).rotateY((float)(-90 * Math.PI / 180)).normalize();
playerCameraCenterPos.add(new Vector3d(modifiedVec).mul(0.1f));
CameraEntityUtils.setCameraCenter(Globals.playerCamera,playerCameraCenterPos);
CameraEntityUtils.setCameraCenter(Globals.clientState.playerCamera,playerCameraCenterPos);
}};
controlMap.get(FREECAM_LEFT).setOnClick(freeCamLeftCallback);
controlMap.get(FREECAM_LEFT).setOnRepeat(freeCamLeftCallback);
freeCameraControlList.add(controlMap.get(FREECAM_RIGHT));
ControlMethod freeCamRightCallback = new ControlMethod(){public void execute(MouseState mouseState){
Vector3d playerCameraCenterPos = CameraEntityUtils.getCameraCenter(Globals.playerCamera);
Vector3d playerCameraEyePos = CameraEntityUtils.getCameraEye(Globals.playerCamera);
Vector3d playerCameraCenterPos = CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera);
Vector3d playerCameraEyePos = CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera);
Vector3d modifiedVec = new Vector3d(playerCameraEyePos.x,0,playerCameraEyePos.z).rotateY((float)(90 * Math.PI / 180)).normalize();
playerCameraCenterPos.add(new Vector3d(modifiedVec).mul(0.1f));
CameraEntityUtils.setCameraCenter(Globals.playerCamera,playerCameraCenterPos);
CameraEntityUtils.setCameraCenter(Globals.clientState.playerCamera,playerCameraCenterPos);
}};
controlMap.get(FREECAM_RIGHT).setOnClick(freeCamRightCallback);
controlMap.get(FREECAM_RIGHT).setOnRepeat(freeCamRightCallback);

View File

@ -132,18 +132,18 @@ public class ControlCategoryMainGame {
if(movementTree instanceof ClientGroundMovementTree){
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
if(controlMap.get(DATA_STRING_INPUT_CODE_STRAFE_LEFT).isState()){
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.playerCamera));
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.clientState.playerCamera));
groundTree.start(MovementRelativeFacing.FORWARD_LEFT);
} else if(controlMap.get(DATA_STRING_INPUT_CODE_STRAFE_RIGHT).isState()){
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.playerCamera));
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.clientState.playerCamera));
groundTree.start(MovementRelativeFacing.FORWARD_RIGHT);
} else {
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.playerCamera));
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.clientState.playerCamera));
groundTree.start(MovementRelativeFacing.FORWARD);
}
} else if(ClientEditorMovementTree.getClientEditorMovementTree(Globals.clientState.playerEntity) != null){
ClientEditorMovementTree clientEditorMovementTree = ClientEditorMovementTree.getClientEditorMovementTree(Globals.clientState.playerEntity);
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.playerCamera));
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.clientState.playerCamera));
clientEditorMovementTree.start(electrosphere.entity.state.movement.editor.ClientEditorMovementTree.EditorMovementRelativeFacing.FORWARD);
}
}
@ -154,18 +154,18 @@ public class ControlCategoryMainGame {
if(movementTree instanceof ClientGroundMovementTree){
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
if(controlMap.get(DATA_STRING_INPUT_CODE_STRAFE_LEFT).isState()){
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.playerCamera));
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.clientState.playerCamera));
groundTree.start(MovementRelativeFacing.FORWARD_LEFT);
} else if(controlMap.get(DATA_STRING_INPUT_CODE_STRAFE_RIGHT).isState()){
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.playerCamera));
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.clientState.playerCamera));
groundTree.start(MovementRelativeFacing.FORWARD_RIGHT);
} else {
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.playerCamera));
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.clientState.playerCamera));
groundTree.start(MovementRelativeFacing.FORWARD);
}
} else if(ClientEditorMovementTree.getClientEditorMovementTree(Globals.clientState.playerEntity) != null){
ClientEditorMovementTree clientEditorMovementTree = ClientEditorMovementTree.getClientEditorMovementTree(Globals.clientState.playerEntity);
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.playerCamera));
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.clientState.playerCamera));
clientEditorMovementTree.start(electrosphere.entity.state.movement.editor.ClientEditorMovementTree.EditorMovementRelativeFacing.FORWARD);
}
}
@ -191,7 +191,7 @@ public class ControlCategoryMainGame {
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.clientState.playerEntity);
if(movementTree instanceof ClientGroundMovementTree){
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
Vector3d cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
Vector3d cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera);
if(controlMap.get(DATA_STRING_INPUT_CODE_STRAFE_LEFT).isState()){
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, new Vector3d(-cameraEyeVector.x,0,-cameraEyeVector.z).rotateY(3.0/4.0*Math.PI).normalize());
groundTree.start(MovementRelativeFacing.BACKWARD_LEFT);
@ -199,12 +199,12 @@ public class ControlCategoryMainGame {
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, new Vector3d(-cameraEyeVector.x,0,-cameraEyeVector.z).rotateY(5.0/4.0*Math.PI).normalize());
groundTree.start(MovementRelativeFacing.BACKWARD_RIGHT);
} else {
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.playerCamera));
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.clientState.playerCamera));
groundTree.start(MovementRelativeFacing.BACKWARD);
}
} else if(ClientEditorMovementTree.getClientEditorMovementTree(Globals.clientState.playerEntity) != null){
ClientEditorMovementTree clientEditorMovementTree = ClientEditorMovementTree.getClientEditorMovementTree(Globals.clientState.playerEntity);
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.playerCamera));
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.clientState.playerCamera));
clientEditorMovementTree.start(electrosphere.entity.state.movement.editor.ClientEditorMovementTree.EditorMovementRelativeFacing.BACKWARD);
}
}
@ -214,7 +214,7 @@ public class ControlCategoryMainGame {
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.clientState.playerEntity);
if(movementTree instanceof ClientGroundMovementTree){
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
Vector3d cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
Vector3d cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera);
if(controlMap.get(DATA_STRING_INPUT_CODE_STRAFE_LEFT).isState()){
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, new Vector3d(-cameraEyeVector.x,0,-cameraEyeVector.z).rotateY(3.0/4.0*Math.PI).normalize());
groundTree.start(MovementRelativeFacing.BACKWARD_LEFT);
@ -222,12 +222,12 @@ public class ControlCategoryMainGame {
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, new Vector3d(-cameraEyeVector.x,0,-cameraEyeVector.z).rotateY(5.0/4.0*Math.PI).normalize());
groundTree.start(MovementRelativeFacing.BACKWARD_RIGHT);
} else {
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.playerCamera));
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.clientState.playerCamera));
groundTree.start(MovementRelativeFacing.BACKWARD);
}
} else if(ClientEditorMovementTree.getClientEditorMovementTree(Globals.clientState.playerEntity) != null){
ClientEditorMovementTree clientEditorMovementTree = ClientEditorMovementTree.getClientEditorMovementTree(Globals.clientState.playerEntity);
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.playerCamera));
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.clientState.playerCamera));
clientEditorMovementTree.start(electrosphere.entity.state.movement.editor.ClientEditorMovementTree.EditorMovementRelativeFacing.BACKWARD);
}
}
@ -253,7 +253,7 @@ public class ControlCategoryMainGame {
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.clientState.playerEntity);
if(movementTree instanceof ClientGroundMovementTree){
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
Vector3d cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
Vector3d cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera);
if(
(controlMap.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).isIsKey() && !Globals.controlCallback.getKey(controlMap.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).getKeyValue())) &&
(controlMap.get(DATA_STRING_INPUT_CODE_MOVEMENT_BACKWARD).isIsKey() && !Globals.controlCallback.getKey(controlMap.get(DATA_STRING_INPUT_CODE_MOVEMENT_BACKWARD).getKeyValue()))
@ -262,7 +262,7 @@ public class ControlCategoryMainGame {
groundTree.start(MovementRelativeFacing.FORWARD);
}
} else if(ClientEditorMovementTree.getClientEditorMovementTree(Globals.clientState.playerEntity) != null){
Vector3d cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
Vector3d cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera);
ClientEditorMovementTree clientEditorMovementTree = ClientEditorMovementTree.getClientEditorMovementTree(Globals.clientState.playerEntity);
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, new Vector3d(-cameraEyeVector.x,0,-cameraEyeVector.z).rotateY(Math.PI/2.0).normalize());
clientEditorMovementTree.start(electrosphere.entity.state.movement.editor.ClientEditorMovementTree.EditorMovementRelativeFacing.FORWARD);
@ -274,7 +274,7 @@ public class ControlCategoryMainGame {
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.clientState.playerEntity);
if(movementTree instanceof ClientGroundMovementTree){
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
Vector3d cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
Vector3d cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera);
if(
(controlMap.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).isIsKey() && !Globals.controlCallback.getKey(controlMap.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).getKeyValue())) &&
(controlMap.get(DATA_STRING_INPUT_CODE_MOVEMENT_BACKWARD).isIsKey() && !Globals.controlCallback.getKey(controlMap.get(DATA_STRING_INPUT_CODE_MOVEMENT_BACKWARD).getKeyValue()))
@ -283,7 +283,7 @@ public class ControlCategoryMainGame {
groundTree.start(MovementRelativeFacing.FORWARD);
}
} else if(ClientEditorMovementTree.getClientEditorMovementTree(Globals.clientState.playerEntity) != null){
Vector3d cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
Vector3d cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera);
ClientEditorMovementTree clientEditorMovementTree = ClientEditorMovementTree.getClientEditorMovementTree(Globals.clientState.playerEntity);
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, new Vector3d(-cameraEyeVector.x,0,-cameraEyeVector.z).rotateY(Math.PI/2.0).normalize());
clientEditorMovementTree.start(electrosphere.entity.state.movement.editor.ClientEditorMovementTree.EditorMovementRelativeFacing.FORWARD);
@ -311,7 +311,7 @@ public class ControlCategoryMainGame {
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.clientState.playerEntity);
if(movementTree instanceof ClientGroundMovementTree){
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
Vector3d cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
Vector3d cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera);
if(
(controlMap.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).isIsKey() && !Globals.controlCallback.getKey(controlMap.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).getKeyValue())) &&
(controlMap.get(DATA_STRING_INPUT_CODE_MOVEMENT_BACKWARD).isIsKey() && !Globals.controlCallback.getKey(controlMap.get(DATA_STRING_INPUT_CODE_MOVEMENT_BACKWARD).getKeyValue()))
@ -320,7 +320,7 @@ public class ControlCategoryMainGame {
groundTree.start(MovementRelativeFacing.FORWARD);
}
} else if(ClientEditorMovementTree.getClientEditorMovementTree(Globals.clientState.playerEntity) != null){
Vector3d cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
Vector3d cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera);
ClientEditorMovementTree clientEditorMovementTree = ClientEditorMovementTree.getClientEditorMovementTree(Globals.clientState.playerEntity);
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, new Vector3d(-cameraEyeVector.x,0,-cameraEyeVector.z).rotateY(-Math.PI/2.0).normalize());
clientEditorMovementTree.start(electrosphere.entity.state.movement.editor.ClientEditorMovementTree.EditorMovementRelativeFacing.FORWARD);
@ -332,7 +332,7 @@ public class ControlCategoryMainGame {
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.clientState.playerEntity);
if(movementTree instanceof ClientGroundMovementTree){
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
Vector3d cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
Vector3d cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera);
if(
(controlMap.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).isIsKey() && !Globals.controlCallback.getKey(controlMap.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).getKeyValue())) &&
(controlMap.get(DATA_STRING_INPUT_CODE_MOVEMENT_BACKWARD).isIsKey() && !Globals.controlCallback.getKey(controlMap.get(DATA_STRING_INPUT_CODE_MOVEMENT_BACKWARD).getKeyValue()))
@ -341,7 +341,7 @@ public class ControlCategoryMainGame {
groundTree.start(MovementRelativeFacing.FORWARD);
}
} else if(ClientEditorMovementTree.getClientEditorMovementTree(Globals.clientState.playerEntity) != null){
Vector3d cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
Vector3d cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera);
ClientEditorMovementTree clientEditorMovementTree = ClientEditorMovementTree.getClientEditorMovementTree(Globals.clientState.playerEntity);
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, new Vector3d(-cameraEyeVector.x,0,-cameraEyeVector.z).rotateY(-Math.PI/2.0).normalize());
clientEditorMovementTree.start(electrosphere.entity.state.movement.editor.ClientEditorMovementTree.EditorMovementRelativeFacing.FORWARD);
@ -378,7 +378,7 @@ public class ControlCategoryMainGame {
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.clientState.playerEntity);
if(movementTree instanceof ClientGroundMovementTree){
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.playerCamera));
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.clientState.playerCamera));
if(
(groundTree.getState()==MovementTreeState.IDLE || groundTree.getState()==MovementTreeState.SLOWDOWN) &&
(controlMap.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).isIsKey() && !Globals.controlCallback.getKey(controlMap.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).getKeyValue())) &&
@ -388,7 +388,7 @@ public class ControlCategoryMainGame {
}
} else if(ClientEditorMovementTree.getClientEditorMovementTree(Globals.clientState.playerEntity) != null){
ClientEditorMovementTree clientEditorMovementTree = ClientEditorMovementTree.getClientEditorMovementTree(Globals.clientState.playerEntity);
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.playerCamera));
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.clientState.playerCamera));
clientEditorMovementTree.start(electrosphere.entity.state.movement.editor.ClientEditorMovementTree.EditorMovementRelativeFacing.LEFT);
}
}
@ -398,7 +398,7 @@ public class ControlCategoryMainGame {
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.clientState.playerEntity);
if(movementTree instanceof ClientGroundMovementTree){
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.playerCamera));
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.clientState.playerCamera));
if(
(groundTree.getState()==MovementTreeState.IDLE || groundTree.getState()==MovementTreeState.SLOWDOWN) &&
(controlMap.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).isIsKey() && !Globals.controlCallback.getKey(controlMap.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).getKeyValue())) &&
@ -408,7 +408,7 @@ public class ControlCategoryMainGame {
}
} else if(ClientEditorMovementTree.getClientEditorMovementTree(Globals.clientState.playerEntity) != null){
ClientEditorMovementTree clientEditorMovementTree = ClientEditorMovementTree.getClientEditorMovementTree(Globals.clientState.playerEntity);
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.playerCamera));
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.clientState.playerCamera));
clientEditorMovementTree.start(electrosphere.entity.state.movement.editor.ClientEditorMovementTree.EditorMovementRelativeFacing.LEFT);
}
}
@ -434,7 +434,7 @@ public class ControlCategoryMainGame {
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.clientState.playerEntity);
if(movementTree instanceof ClientGroundMovementTree){
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.playerCamera));
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.clientState.playerCamera));
if(
(groundTree.getState()==MovementTreeState.IDLE || groundTree.getState()==MovementTreeState.SLOWDOWN) &&
(controlMap.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).isIsKey() && !Globals.controlCallback.getKey(controlMap.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).getKeyValue())) &&
@ -444,7 +444,7 @@ public class ControlCategoryMainGame {
}
} else if(ClientEditorMovementTree.getClientEditorMovementTree(Globals.clientState.playerEntity) != null){
ClientEditorMovementTree clientEditorMovementTree = ClientEditorMovementTree.getClientEditorMovementTree(Globals.clientState.playerEntity);
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.playerCamera));
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.clientState.playerCamera));
clientEditorMovementTree.start(electrosphere.entity.state.movement.editor.ClientEditorMovementTree.EditorMovementRelativeFacing.RIGHT);
}
}
@ -454,7 +454,7 @@ public class ControlCategoryMainGame {
BehaviorTree movementTree = CreatureUtils.clientGetEntityMovementTree(Globals.clientState.playerEntity);
if(movementTree instanceof ClientGroundMovementTree){
ClientGroundMovementTree groundTree = (ClientGroundMovementTree) movementTree;
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.playerCamera));
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.clientState.playerCamera));
if(
(groundTree.getState()==MovementTreeState.IDLE || groundTree.getState()==MovementTreeState.SLOWDOWN) &&
(controlMap.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).isIsKey() && !Globals.controlCallback.getKey(controlMap.get(DATA_STRING_INPUT_CODE_MOVEMENT_FORWARD).getKeyValue())) &&
@ -464,7 +464,7 @@ public class ControlCategoryMainGame {
}
} else if(ClientEditorMovementTree.getClientEditorMovementTree(Globals.clientState.playerEntity) != null){
ClientEditorMovementTree clientEditorMovementTree = ClientEditorMovementTree.getClientEditorMovementTree(Globals.clientState.playerEntity);
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.playerCamera));
CreatureUtils.setFacingVector(Globals.clientState.playerEntity, CameraEntityUtils.getFacingVec(Globals.clientState.playerCamera));
clientEditorMovementTree.start(electrosphere.entity.state.movement.editor.ClientEditorMovementTree.EditorMovementRelativeFacing.RIGHT);
}
}

View File

@ -197,7 +197,7 @@ public class CursorState {
*/
public void updatePlayerCursor(){
CollisionEngine collisionEngine = Globals.clientState.clientSceneWrapper.getCollisionEngine();
Entity camera = Globals.playerCamera;
Entity camera = Globals.clientState.playerCamera;
if(
collisionEngine != null &&
camera != null &&

View File

@ -348,13 +348,6 @@ public class Globals {
//collision world data
public static CollisionWorldData commonWorldData;
//the player camera entity
public static Entity playerCamera;
//the entity for the first person modal (view model)
public static Entity firstPersonEntity;
/**
* The target of the interaction
@ -653,8 +646,6 @@ public class Globals {
* Unloads scene
*/
public static void unloadScene(){
Globals.playerCamera = null;
Globals.firstPersonEntity = null;
Globals.playerManager = new PlayerManager();
Globals.clientState.clientScene = new Scene();
Globals.clientState.clientSceneWrapper = new ClientSceneWrapper(Globals.clientState.clientScene, new CollisionEngine(), CollisionEngine.create(new ClientChemistryCollisionCallback()), new CollisionEngine());

View File

@ -159,7 +159,7 @@ public class ClientLoading {
Globals.controlHandler.hintUpdateControlState(ControlHandler.ControlsState.NO_INPUT);
//init camera
Globals.playerCamera = CameraEntityUtils.spawnBasicCameraEntity(new Vector3d(0,0,0), new Vector3d(-1,0,0));
Globals.clientState.playerCamera = CameraEntityUtils.spawnBasicCameraEntity(new Vector3d(0,0,0), new Vector3d(-1,0,0));
Globals.cameraHandler.setTrackPlayerEntity(false);
Globals.cameraHandler.setUpdate(false);
//initialize the "real" objects simulation

View File

@ -83,8 +83,8 @@ public class ClientEntityUtils {
}
HitboxCollectionState.destroyHitboxState(entity,false);
ClientInteractionEngine.destroyCollidableTemplate(entity);
if(entity == Globals.clientState.playerEntity && Globals.firstPersonEntity != null){
ClientEntityUtils.destroyEntity(Globals.firstPersonEntity);
if(entity == Globals.clientState.playerEntity && Globals.clientState.firstPersonEntity != null){
ClientEntityUtils.destroyEntity(Globals.clientState.firstPersonEntity);
}
}
}

View File

@ -280,7 +280,7 @@ public class StateTransitionUtil {
//Interrupt animation in first person
//
if(animation != null){
FirstPersonTree.conditionallyInterruptAnimation(Globals.firstPersonEntity, animation);
FirstPersonTree.conditionallyInterruptAnimation(Globals.clientState.firstPersonEntity, animation);
}
}
}

View File

@ -622,8 +622,8 @@ public class AttachUtils {
getChildrenList(parent).remove(toAttach);
}
//special case handling for view model
if(parent == Globals.clientState.playerEntity && getChildrenList(Globals.firstPersonEntity) != null){
getChildrenList(Globals.firstPersonEntity).remove(toAttach);
if(parent == Globals.clientState.playerEntity && getChildrenList(Globals.clientState.firstPersonEntity) != null){
getChildrenList(Globals.clientState.firstPersonEntity).remove(toAttach);
}
return bone;
}

View File

@ -566,7 +566,7 @@ public class ClientAttackTree implements BehaviorTree {
String animName = this.currentMove.getAttackState().getAnimation().getNameThirdPerson();
actor.setFreezeFrames(animName, this.currentMove.getHitstun());
if(parent == Globals.clientState.playerEntity && !Globals.controlHandler.cameraIsThirdPerson()){
Actor viewmodelActor = EntityUtils.getActor(Globals.firstPersonEntity);
Actor viewmodelActor = EntityUtils.getActor(Globals.clientState.firstPersonEntity);
animName = this.currentMove.getAttackState().getAnimation().getNameFirstPerson();
viewmodelActor.setFreezeFrames(animName, this.currentMove.getHitstun());
}

View File

@ -103,8 +103,8 @@ public class FirstPersonTree implements BehaviorTree {
* @param offset The offset to start the animation at
*/
public void playAnimation(String animationName, int priority, double offset){
if(Globals.firstPersonEntity != null){
Actor actor = EntityUtils.getActor(Globals.firstPersonEntity);
if(Globals.clientState.firstPersonEntity != null){
Actor actor = EntityUtils.getActor(Globals.clientState.firstPersonEntity);
if(
(!actor.isPlayingAnimation() || !actor.isPlayingAnimation(animationName)) &&
(Globals.assetManager.fetchModel(actor.getModelPath()) != null && Globals.assetManager.fetchModel(actor.getModelPath()).getAnimation(animationName) != null)
@ -129,8 +129,8 @@ public class FirstPersonTree implements BehaviorTree {
* @param offset The offset to start the animation at
*/
public void playAnimation(TreeDataAnimation animation, double offset){
if(Globals.firstPersonEntity != null){
Actor actor = EntityUtils.getActor(Globals.firstPersonEntity);
if(Globals.clientState.firstPersonEntity != null){
Actor actor = EntityUtils.getActor(Globals.clientState.firstPersonEntity);
if(
(!actor.isPlayingAnimation() || !actor.isPlayingAnimation(animation.getNameFirstPerson())) &&
(Globals.assetManager.fetchModel(actor.getModelPath()) != null && Globals.assetManager.fetchModel(actor.getModelPath()).getAnimation(animation.getNameFirstPerson()) != null)
@ -146,8 +146,8 @@ public class FirstPersonTree implements BehaviorTree {
* @param animationName the name of the animation
*/
public void interruptAnimation(TreeDataAnimation animation){
if(Globals.firstPersonEntity != null){
Actor actor = EntityUtils.getActor(Globals.firstPersonEntity);
if(Globals.clientState.firstPersonEntity != null){
Actor actor = EntityUtils.getActor(Globals.clientState.firstPersonEntity);
if(
(actor.isPlayingAnimation() || actor.isPlayingAnimation(animation.getNameFirstPerson())) &&
(Globals.assetManager.fetchModel(actor.getModelPath()) != null && Globals.assetManager.fetchModel(actor.getModelPath()).getAnimation(animation.getNameFirstPerson()) != null)
@ -164,8 +164,8 @@ public class FirstPersonTree implements BehaviorTree {
* @param priority The priority of the animation
*/
public static void conditionallyPlayAnimation(Entity entity, String animationName, int priority, double offset){
if(entity != null && entity == Globals.clientState.playerEntity && Globals.firstPersonEntity != null && FirstPersonTree.hasTree(Globals.firstPersonEntity)){
FirstPersonTree.getTree(Globals.firstPersonEntity).playAnimation(animationName, priority);
if(entity != null && entity == Globals.clientState.playerEntity && Globals.clientState.firstPersonEntity != null && FirstPersonTree.hasTree(Globals.clientState.firstPersonEntity)){
FirstPersonTree.getTree(Globals.clientState.firstPersonEntity).playAnimation(animationName, priority);
}
}
@ -185,8 +185,8 @@ public class FirstPersonTree implements BehaviorTree {
* @param animationName the name of the animation
*/
public static void conditionallyPlayAnimation(Entity entity, TreeDataAnimation animation){
if(entity != null && entity == Globals.clientState.playerEntity && Globals.firstPersonEntity != null && FirstPersonTree.hasTree(Globals.firstPersonEntity)){
FirstPersonTree.getTree(Globals.firstPersonEntity).playAnimation(animation);
if(entity != null && entity == Globals.clientState.playerEntity && Globals.clientState.firstPersonEntity != null && FirstPersonTree.hasTree(Globals.clientState.firstPersonEntity)){
FirstPersonTree.getTree(Globals.clientState.firstPersonEntity).playAnimation(animation);
}
}
@ -197,8 +197,8 @@ public class FirstPersonTree implements BehaviorTree {
* @param offset The offset to start the animation at
*/
public static void conditionallyPlayAnimation(Entity entity, TreeDataAnimation animation, double offset){
if(entity != null && entity == Globals.clientState.playerEntity && FirstPersonTree.hasTree(Globals.firstPersonEntity)){
FirstPersonTree.getTree(Globals.firstPersonEntity).playAnimation(animation,offset);
if(entity != null && entity == Globals.clientState.playerEntity && FirstPersonTree.hasTree(Globals.clientState.firstPersonEntity)){
FirstPersonTree.getTree(Globals.clientState.firstPersonEntity).playAnimation(animation,offset);
}
}
@ -208,8 +208,8 @@ public class FirstPersonTree implements BehaviorTree {
* @param animation The animation
*/
public static void conditionallyInterruptAnimation(Entity entity, TreeDataAnimation animation){
if(entity != null && entity == Globals.clientState.playerEntity && FirstPersonTree.hasTree(Globals.firstPersonEntity)){
FirstPersonTree.getTree(Globals.firstPersonEntity).interruptAnimation(animation);
if(entity != null && entity == Globals.clientState.playerEntity && FirstPersonTree.hasTree(Globals.clientState.firstPersonEntity)){
FirstPersonTree.getTree(Globals.clientState.firstPersonEntity).interruptAnimation(animation);
}
}

View File

@ -100,7 +100,7 @@ public class ClientParticleTree implements BehaviorTree {
public void simulate(float deltaTime){
InstancedActor instancedActor = InstancedActor.getInstancedActor(parent);
Vector3d position = EntityUtils.getPosition(parent);
Vector3d cameraPos = CameraEntityUtils.getCameraCenter(Globals.playerCamera);
Vector3d cameraPos = CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera);
//update position
position.add(velocity);

View File

@ -136,7 +136,7 @@ public class ClientEquipState implements BehaviorTree {
meshMask.queueMesh(modelName, toDraw);
}
//attach to parent bone
if(parent != Globals.firstPersonEntity || Globals.controlHandler.cameraIsThirdPerson()){
if(parent != Globals.clientState.firstPersonEntity || Globals.controlHandler.cameraIsThirdPerson()){
AttachUtils.clientAttachEntityToEntityAtBone(
parent,
toEquip,
@ -146,7 +146,7 @@ public class ClientEquipState implements BehaviorTree {
);
} else {
AttachUtils.clientAttachEntityToEntityAtBone(
Globals.firstPersonEntity,
Globals.clientState.firstPersonEntity,
toEquip,
point.getFirstPersonBone(),
AttachUtils.getEquipPointVectorOffset(point.getOffsetVectorFirstPerson()),
@ -174,7 +174,7 @@ public class ClientEquipState implements BehaviorTree {
}
//actually equip
equipMap.put(point.getEquipPointId(),toEquip);
if(parent != Globals.firstPersonEntity || Globals.controlHandler.cameraIsThirdPerson()){
if(parent != Globals.clientState.firstPersonEntity || Globals.controlHandler.cameraIsThirdPerson()){
AttachUtils.clientAttachEntityToEntityAtBone(
parent,
toEquip,
@ -184,7 +184,7 @@ public class ClientEquipState implements BehaviorTree {
);
} else {
AttachUtils.clientAttachEntityToEntityAtBone(
Globals.firstPersonEntity,
Globals.clientState.firstPersonEntity,
toEquip,
point.getFirstPersonBone(),
AttachUtils.getEquipPointVectorOffset(point.getOffsetVectorFirstPerson()),
@ -410,7 +410,7 @@ public class ClientEquipState implements BehaviorTree {
EquipPoint point = this.getEquipPoint(occupiedPoint);
Entity toEquip = this.equipMap.get(point.getEquipPointId());
if(AttachUtils.getParent(toEquip) != Globals.clientState.playerEntity){
AttachUtils.clientDetatchEntityFromEntityAtBone(Globals.firstPersonEntity, toEquip);
AttachUtils.clientDetatchEntityFromEntityAtBone(Globals.clientState.firstPersonEntity, toEquip);
AttachUtils.clientAttachEntityToEntityAtBone(
Globals.clientState.playerEntity,
toEquip,
@ -426,17 +426,17 @@ public class ClientEquipState implements BehaviorTree {
for(String occupiedPoint : this.getEquippedPoints()){
EquipPoint point = this.getEquipPoint(occupiedPoint);
Entity toEquip = this.equipMap.get(point.getEquipPointId());
if(AttachUtils.getParent(toEquip) != Globals.firstPersonEntity){
if(AttachUtils.getParent(toEquip) != Globals.clientState.firstPersonEntity){
AttachUtils.clientDetatchEntityFromEntityAtBone(Globals.clientState.playerEntity, toEquip);
AttachUtils.clientAttachEntityToEntityAtBone(
Globals.firstPersonEntity,
Globals.clientState.firstPersonEntity,
toEquip,
point.getFirstPersonBone(),
AttachUtils.getEquipPointVectorOffset(point.getOffsetVectorFirstPerson()),
AttachUtils.getEquipPointRotationOffset(point.getOffsetRotationFirstPerson())
);
} else {
AttachUtils.clientUpdateEntityTransforms(toEquip, Globals.firstPersonEntity);
AttachUtils.clientUpdateEntityTransforms(toEquip, Globals.clientState.firstPersonEntity);
}
}
}

View File

@ -121,7 +121,7 @@ public class ClientToolbarState implements BehaviorTree {
meshMask.queueMesh(modelName, toDraw);
}
//attach to parent bone
if(parent != Globals.firstPersonEntity || Globals.controlHandler.cameraIsThirdPerson()){
if(parent != Globals.clientState.firstPersonEntity || Globals.controlHandler.cameraIsThirdPerson()){
AttachUtils.clientAttachEntityToEntityAtBone(
parent,
toEquip,
@ -131,7 +131,7 @@ public class ClientToolbarState implements BehaviorTree {
);
} else {
AttachUtils.clientAttachEntityToEntityAtBone(
Globals.firstPersonEntity,
Globals.clientState.firstPersonEntity,
toEquip,
targetPoint.getFirstPersonBone(),
AttachUtils.getEquipPointVectorOffset(targetPoint.getOffsetVectorFirstPerson()),
@ -158,7 +158,7 @@ public class ClientToolbarState implements BehaviorTree {
}
}
//actually equip
if(parent != Globals.firstPersonEntity || Globals.controlHandler.cameraIsThirdPerson()){
if(parent != Globals.clientState.firstPersonEntity || Globals.controlHandler.cameraIsThirdPerson()){
AttachUtils.clientAttachEntityToEntityAtBone(
parent,
toEquip,
@ -168,7 +168,7 @@ public class ClientToolbarState implements BehaviorTree {
);
} else {
AttachUtils.clientAttachEntityToEntityAtBone(
Globals.firstPersonEntity,
Globals.clientState.firstPersonEntity,
toEquip,
targetPoint.getFirstPersonBone(),
AttachUtils.getEquipPointVectorOffset(targetPoint.getOffsetVectorFirstPerson()),

View File

@ -47,7 +47,7 @@ public class AmbientFoliage implements BehaviorTree {
EntityUtils.getScale(parent).set(growthLevel);
//rotate to face cameras
// Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.playerCamera);
// Vector3f cameraEyeVector = CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera);
// EntityUtils.getRotation(parent).rotateTo(MathUtils.ORIGIN_VECTOR, new Vector3d(cameraEyeVector));

View File

@ -192,7 +192,7 @@ public class EntityProtocol implements ClientProtocolTemplate<EntityMessage> {
Globals.clientCharacterID = message.getentityID();
Globals.clientState.playerEntity = target;
if(viewModelData != null && viewModelData.getFirstPersonModelPath() != null){
Globals.firstPersonEntity = CreatureUtils.clientCreateViewModel(
Globals.clientState.firstPersonEntity = CreatureUtils.clientCreateViewModel(
creatureTypeRaw,
null
);

View File

@ -500,7 +500,7 @@ public class RenderingEngine {
}
//Update light buffer
lightManager.update(renderPipelineState,openGLState,Globals.playerCamera);
lightManager.update(renderPipelineState,openGLState,Globals.clientState.playerCamera);
this.checkError();
@ -766,7 +766,7 @@ public class RenderingEngine {
*/
private boolean shouldRunPipelines(){
boolean rVal =
Globals.playerCamera != null
Globals.clientState.playerCamera != null
;
return rVal;
}

View File

@ -380,8 +380,8 @@ public class Mesh {
openGLState.glBindBufferBase(LightManager.DIRECT_LIGHT_SSBO_BIND_POINT, lightManager.getDirectLightSSBO());
//set uniforms required
openGLState.getActiveShader().setUniform(openGLState, "zNear", CameraEntityUtils.getNearClip(Globals.playerCamera));
openGLState.getActiveShader().setUniform(openGLState, "zFar", CameraEntityUtils.getFarClip(Globals.playerCamera));
openGLState.getActiveShader().setUniform(openGLState, "zNear", CameraEntityUtils.getNearClip(Globals.clientState.playerCamera));
openGLState.getActiveShader().setUniform(openGLState, "zFar", CameraEntityUtils.getFarClip(Globals.clientState.playerCamera));
openGLState.getActiveShader().setUniform(openGLState, "gridSize", new Vector3i(LightManager.LIGHT_CLUSTER_WIDTH_X,LightManager.LIGHT_CLUSTER_WIDTH_Y,LightManager.LIGHT_CLUSTER_WIDTH_Z));
openGLState.getActiveShader().setUniform(openGLState, "screenDimensions", openGLState.getViewport());
@ -483,7 +483,7 @@ public class Mesh {
openGLState.getActiveShader().setUniform(openGLState, "model", parent.getModelMatrix());
openGLState.getActiveShader().setUniform(openGLState, "view", Globals.viewMatrix);
openGLState.getActiveShader().setUniform(openGLState, "projection", Globals.projectionMatrix);
openGLState.getActiveShader().setUniform(openGLState, "viewPos", CameraEntityUtils.getCameraEye(Globals.playerCamera));
openGLState.getActiveShader().setUniform(openGLState, "viewPos", CameraEntityUtils.getCameraEye(Globals.clientState.playerCamera));
Vector3f worldPos = new Vector3f((float)parent.getWorldPos().x,(float)parent.getWorldPos().y,(float)parent.getWorldPos().z);
openGLState.getActiveShader().setUniform(openGLState, "modelWorldPos", worldPos);
openGLState.getActiveShader().setUniform(openGLState, "lightSpaceMatrix", Globals.lightDepthMatrix);

View File

@ -28,10 +28,10 @@ public class FirstPersonItemsPipeline implements RenderPipeline {
@Override
public void render(OpenGLState openGLState, RenderPipelineState renderPipelineState) {
if(Globals.firstPersonEntity != null && !Globals.controlHandler.cameraIsThirdPerson()){
if(Globals.clientState.firstPersonEntity != null && !Globals.controlHandler.cameraIsThirdPerson()){
//update logic
if(Globals.cameraHandler.getTrackPlayerEntity()){
updateFirstPersonModelPosition(Globals.firstPersonEntity);
updateFirstPersonModelPosition(Globals.clientState.firstPersonEntity);
}
//setup opengl state
@ -52,27 +52,27 @@ public class FirstPersonItemsPipeline implements RenderPipeline {
//
//Draw viewmodel
{
Vector3d position = EntityUtils.getPosition(Globals.firstPersonEntity);
Actor actor = EntityUtils.getActor(Globals.firstPersonEntity);
Vector3d position = EntityUtils.getPosition(Globals.clientState.firstPersonEntity);
Actor actor = EntityUtils.getActor(Globals.clientState.firstPersonEntity);
//calculate camera-modified vector3d
Vector3d cameraModifiedPosition = new Vector3d(position).sub(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d cameraModifiedPosition = new Vector3d(position).sub(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
//calculate and apply model transform
modelTransformMatrix.identity();
modelTransformMatrix.translate(cameraModifiedPosition);
modelTransformMatrix.rotate(EntityUtils.getRotation(Globals.firstPersonEntity));
modelTransformMatrix.scale(new Vector3d(EntityUtils.getScale(Globals.firstPersonEntity)));
modelTransformMatrix.rotate(EntityUtils.getRotation(Globals.clientState.firstPersonEntity));
modelTransformMatrix.scale(new Vector3d(EntityUtils.getScale(Globals.clientState.firstPersonEntity)));
actor.applySpatialData(modelTransformMatrix,position);
//draw
actor.draw(renderPipelineState, openGLState);
}
//draw children of viewmodel
if(AttachUtils.hasChildren(Globals.firstPersonEntity)){
for(Entity child : AttachUtils.getChildrenList(Globals.firstPersonEntity)){
if(AttachUtils.hasChildren(Globals.clientState.firstPersonEntity)){
for(Entity child : AttachUtils.getChildrenList(Globals.clientState.firstPersonEntity)){
Vector3d position = EntityUtils.getPosition(child);
Actor actor = EntityUtils.getActor(child);
//calculate camera-modified vector3d
Vector3d cameraModifiedPosition = new Vector3d(position).sub(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d cameraModifiedPosition = new Vector3d(position).sub(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
//calculate and apply model transform
modelTransformMatrix.identity();
modelTransformMatrix.translate(cameraModifiedPosition);
@ -96,13 +96,13 @@ public class FirstPersonItemsPipeline implements RenderPipeline {
FirstPersonTree tree = FirstPersonTree.getTree(target);
Matrix4d rotationMat = CameraEntityUtils.getRotationMat(Globals.playerCamera);
EntityUtils.getRotation(Globals.firstPersonEntity).set(CameraEntityUtils.getRotationQuat(Globals.playerCamera));
Matrix4d rotationMat = CameraEntityUtils.getRotationMat(Globals.clientState.playerCamera);
EntityUtils.getRotation(Globals.clientState.firstPersonEntity).set(CameraEntityUtils.getRotationQuat(Globals.clientState.playerCamera));
Vector3d playerPos = EntityUtils.getPosition(Globals.clientState.playerEntity);
Vector4d behindCameraOffsetRaw = rotationMat.transform(new Vector4d(0,tree.getCameraViewDirOffsetY(),tree.getCameraViewDirOffsetZ(),1)); //pushes the model behind the camera
Vector3d behindCameraOffset = new Vector3d(behindCameraOffsetRaw.x,behindCameraOffsetRaw.y,behindCameraOffsetRaw.z);
EntityUtils.getPosition(Globals.firstPersonEntity).set(playerPos).add(0.0f,tree.getHeightFromOrigin(),0.0f).add(behindCameraOffset);
EntityUtils.getPosition(Globals.clientState.firstPersonEntity).set(playerPos).add(0.0f,tree.getHeightFromOrigin(),0.0f).add(behindCameraOffset);
if(ClientEquipState.hasEquipState(Globals.clientState.playerEntity)){
ClientEquipState clientEquipState = ClientEquipState.getClientEquipState(Globals.clientState.playerEntity);

View File

@ -32,7 +32,7 @@ public class FoliagePipeline implements RenderPipeline {
if(foliageEntities != null){
for(Entity foliageEntity : foliageEntities){
Matrix4d modelMatrix = new Matrix4d();
Vector3d cameraCenter = CameraEntityUtils.getCameraCenter(Globals.playerCamera);
Vector3d cameraCenter = CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera);
Vector3d realPosition = EntityUtils.getPosition(foliageEntity);
Vector3d cameraModifiedPosition = new Vector3d(realPosition).sub(cameraCenter);

View File

@ -65,7 +65,7 @@ public class MainContentNoOITPipeline implements RenderPipeline {
//fetch actor
Actor currentActor = EntityUtils.getActor(currentEntity);
//calculate camera-modified vector3d
Vector3d cameraModifiedPosition = new Vector3d(position).sub(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d cameraModifiedPosition = new Vector3d(position).sub(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
//calculate and apply model transform
RenderingEngine.modelTransformMatrix.identity();
RenderingEngine.modelTransformMatrix.translate(cameraModifiedPosition);

View File

@ -75,7 +75,7 @@ public class MainContentPipeline implements RenderPipeline {
Set<Entity> solidsNonInstanced = Globals.clientState.clientScene.getEntitiesWithTag(EntityTags.DRAWABLE);
Vector3d positionVec = new Vector3d();
Vector3d scaleVec = new Vector3d();
Vector3d cameraCenterVec = CameraEntityUtils.getCameraCenter(Globals.playerCamera);
Vector3d cameraCenterVec = CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera);
for(Entity currentEntity : solidsNonInstanced){
Vector3d position = EntityUtils.getPosition(currentEntity);
if(MainContentPipeline.shouldDrawSolidPass(currentEntity)){
@ -107,7 +107,7 @@ public class MainContentPipeline implements RenderPipeline {
if(InstancedActor.getInstanceModelAttribute(currentEntity) != null){
ShaderAttribute modelAttribute = InstancedActor.getInstanceModelAttribute(currentEntity);
//calculate model matrix
Vector3d cameraModifiedPosition = positionVec.set(position).sub(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d cameraModifiedPosition = positionVec.set(position).sub(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
Quaterniond rotation = EntityUtils.getRotation(currentEntity);
// modelTransformMatrix.identity();
modelTransformMatrix.identity().translationRotateScale(
@ -168,7 +168,7 @@ public class MainContentPipeline implements RenderPipeline {
//fetch actor
Actor currentActor = EntityUtils.getActor(currentEntity);
//calculate camera-modified vector3d
Vector3d cameraModifiedPosition = positionVec.set(position).sub(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d cameraModifiedPosition = positionVec.set(position).sub(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
//calculate and apply model transform
modelTransformMatrix.identity();
modelTransformMatrix.translate(cameraModifiedPosition);
@ -190,7 +190,7 @@ public class MainContentPipeline implements RenderPipeline {
if(InstancedActor.getInstanceModelAttribute(currentEntity) != null){
ShaderAttribute modelAttribute = InstancedActor.getInstanceModelAttribute(currentEntity);
//calculate model matrix
Vector3d cameraModifiedPosition = positionVec.set(position).sub(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d cameraModifiedPosition = positionVec.set(position).sub(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
Quaterniond rotation = EntityUtils.getRotation(currentEntity);
// modelTransformMatrix.identity();
modelTransformMatrix.identity().translationRotateScale(
@ -272,7 +272,7 @@ public class MainContentPipeline implements RenderPipeline {
static boolean entityBlacklist(Entity entity){
return
//don't draw first person view in this pipeline ever
entity == Globals.firstPersonEntity ||
entity == Globals.clientState.firstPersonEntity ||
//don't draw third person view if camera is first person
(
@ -287,10 +287,10 @@ public class MainContentPipeline implements RenderPipeline {
//don't draw items if they're attached to viewmodel
(
Globals.firstPersonEntity != null &&
Globals.clientState.firstPersonEntity != null &&
!Globals.controlHandler.cameraIsThirdPerson() &&
AttachUtils.hasParent(entity) &&
AttachUtils.getParent(entity) == Globals.firstPersonEntity
AttachUtils.getParent(entity) == Globals.clientState.firstPersonEntity
)
;
}

View File

@ -69,7 +69,7 @@ public class NormalsForOutlinePipeline implements RenderPipeline {
//fetch actor
Actor currentActor = EntityUtils.getActor(currentEntity);
//calculate camera-modified vector3d
Vector3d cameraModifiedPosition = new Vector3d(position).sub(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d cameraModifiedPosition = new Vector3d(position).sub(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
//calculate and apply model transform
modelTransformMatrix.identity();
modelTransformMatrix.translate(cameraModifiedPosition);
@ -112,7 +112,7 @@ public class NormalsForOutlinePipeline implements RenderPipeline {
static boolean entityBlacklist(Entity entity){
return
//don't draw first person view in this pipeline ever
entity == Globals.firstPersonEntity ||
entity == Globals.clientState.firstPersonEntity ||
//don't draw third person view if camera is first person
(
@ -127,10 +127,10 @@ public class NormalsForOutlinePipeline implements RenderPipeline {
//don't draw items if they're attached to viewmodel
(
Globals.firstPersonEntity != null &&
Globals.clientState.firstPersonEntity != null &&
!Globals.controlHandler.cameraIsThirdPerson() &&
AttachUtils.hasParent(entity) &&
AttachUtils.getParent(entity) == Globals.firstPersonEntity
AttachUtils.getParent(entity) == Globals.clientState.firstPersonEntity
)
;
}

View File

@ -113,7 +113,7 @@ public class ShadowMapPipeline implements RenderPipeline {
//fetch actor
Actor currentActor = EntityUtils.getActor(currentEntity);
//calculate camera-modified vector3d
Vector3d cameraCenter = scaleVec.set(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d cameraCenter = scaleVec.set(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
Vector3d cameraModifiedPosition = posVec.set(position).sub(cameraCenter);
//calculate and apply model transform
modelTransformMatrix = modelTransformMatrix.identity();

View File

@ -77,7 +77,7 @@ public class VolumeBufferPipeline implements RenderPipeline {
//fetch actor
Actor currentActor = EntityUtils.getActor(currentEntity);
//calculate camera-modified vector3d
Vector3d cameraModifiedPosition = new Vector3d(position).sub(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d cameraModifiedPosition = new Vector3d(position).sub(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
modelTransformMatrix = modelTransformMatrix.identity();
modelTransformMatrix.translate(cameraModifiedPosition);
modelTransformMatrix.rotate(EntityUtils.getRotation(currentEntity));
@ -98,7 +98,7 @@ public class VolumeBufferPipeline implements RenderPipeline {
//fetch actor
Actor currentActor = EntityUtils.getActor(currentEntity);
//calculate camera-modified vector3d
Vector3d cameraModifiedPosition = new Vector3d(position).sub(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d cameraModifiedPosition = new Vector3d(position).sub(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
//set projection matrix
modelTransformMatrix = modelTransformMatrix.identity();
modelTransformMatrix.translate(cameraModifiedPosition);
@ -134,7 +134,7 @@ public class VolumeBufferPipeline implements RenderPipeline {
//fetch actor
Actor currentActor = EntityUtils.getActor(currentEntity);
//calculate camera-modified vector3d
Vector3d cameraModifiedPosition = new Vector3d(position).sub(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d cameraModifiedPosition = new Vector3d(position).sub(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
//calculate and apply model transform
modelTransformMatrix = modelTransformMatrix.identity();
modelTransformMatrix.translate(cameraModifiedPosition);

View File

@ -75,7 +75,7 @@ public class DebugBonesPipeline implements RenderPipeline {
Quaterniond boneRot = MathBones.getBoneWorldRotation(targetEntity, bone.boneID);
//put pos + rot into model
Vector3d cameraModifiedPosition = new Vector3d(bonePos).sub(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d cameraModifiedPosition = new Vector3d(bonePos).sub(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
modelTransformMatrix.identity();
modelTransformMatrix.translate(cameraModifiedPosition);
modelTransformMatrix.rotate(boneRot);

View File

@ -90,7 +90,7 @@ public class DebugContentPipeline implements RenderPipeline {
}
Vector3d position = PhysicsUtils.odeVecToJomlVec(sphereView.getPosition());
//calculate camera-modified vector3d
Vector3d cameraModifiedPosition = new Vector3d(position).sub(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d cameraModifiedPosition = new Vector3d(position).sub(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
modelTransformMatrix.identity();
modelTransformMatrix.translate(cameraModifiedPosition);
modelTransformMatrix.scale(sphereView.getRadius() * 2);
@ -109,7 +109,7 @@ public class DebugContentPipeline implements RenderPipeline {
}
Vector3d position = PhysicsUtils.odeVecToJomlVec(capsuleView.getPosition());
//calculate camera-modified vector3d
Vector3d cameraModifiedPosition = new Vector3d(position).sub(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d cameraModifiedPosition = new Vector3d(position).sub(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
modelTransformMatrix.identity();
modelTransformMatrix.translate(cameraModifiedPosition);
//since you're directly accessing the quat from the body, need to adjust it to be in the correct orientation
@ -146,7 +146,7 @@ public class DebugContentPipeline implements RenderPipeline {
}
Vector3d position = PhysicsUtils.odeVecToJomlVec(sphereView.getPosition());
//calculate camera-modified vector3d
Vector3d cameraModifiedPosition = new Vector3d(position).sub(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d cameraModifiedPosition = new Vector3d(position).sub(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
modelTransformMatrix.identity();
modelTransformMatrix.translate(cameraModifiedPosition);
modelTransformMatrix.scale(sphereView.getRadius() * 2);
@ -165,7 +165,7 @@ public class DebugContentPipeline implements RenderPipeline {
}
Vector3d position = PhysicsUtils.odeVecToJomlVec(capsuleView.getPosition());
//calculate camera-modified vector3d
Vector3d cameraModifiedPosition = new Vector3d(position).sub(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d cameraModifiedPosition = new Vector3d(position).sub(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
modelTransformMatrix.identity();
modelTransformMatrix.translate(cameraModifiedPosition);
//since you're directly accessing the quat from the body, need to adjust it to be in the correct orientation
@ -201,7 +201,7 @@ public class DebugContentPipeline implements RenderPipeline {
}
Vector3d position = EntityUtils.getPosition(physicsEntity);
//calculate camera-modified vector3d
Vector3d cameraModifiedPosition = new Vector3d(position).add(template.getOffsetX(),template.getOffsetY(),template.getOffsetZ()).sub(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d cameraModifiedPosition = new Vector3d(position).add(template.getOffsetX(),template.getOffsetY(),template.getOffsetZ()).sub(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
modelTransformMatrix.identity();
modelTransformMatrix.translate(cameraModifiedPosition);
modelTransformMatrix.rotate(EntityUtils.getRotation(physicsEntity));
@ -220,7 +220,7 @@ public class DebugContentPipeline implements RenderPipeline {
Vector3d position = EntityUtils.getPosition(physicsEntity);
Quaterniond rotation = EntityUtils.getRotation(physicsEntity);
//calculate camera-modified vector3d
Vector3d cameraModifiedPosition = new Vector3d(position).add(template.getOffsetX(),template.getOffsetY(),template.getOffsetZ()).sub(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d cameraModifiedPosition = new Vector3d(position).add(template.getOffsetX(),template.getOffsetY(),template.getOffsetZ()).sub(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
modelTransformMatrix.identity();
modelTransformMatrix.translate(cameraModifiedPosition);
modelTransformMatrix.rotate(rotation);
@ -251,7 +251,7 @@ public class DebugContentPipeline implements RenderPipeline {
}
Vector3d position = EntityUtils.getPosition(entity);
//calculate camera-modified vector3d
Vector3d cameraModifiedPosition = new Vector3d(position).add(0,gridAlignedData.getHeight() * BlockChunkData.BLOCK_SIZE_MULTIPLIER / 2.0f,0).sub(CameraEntityUtils.getCameraCenter(Globals.playerCamera));
Vector3d cameraModifiedPosition = new Vector3d(position).add(0,gridAlignedData.getHeight() * BlockChunkData.BLOCK_SIZE_MULTIPLIER / 2.0f,0).sub(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera));
modelTransformMatrix.identity();
modelTransformMatrix.translate(cameraModifiedPosition);
modelTransformMatrix.rotate(EntityUtils.getRotation(entity));

View File

@ -236,8 +236,8 @@ public class ActorPanel extends BufferedStandardDrawableContainerElement impleme
Globals.cameraHandler.updateRadialOffset(new Vector3d(actorPosition));
double radius = actorModel.getBoundingSphere().r;
this.cameraRadius = radius + DEFAULT_STANDOFF_DIST;
CameraEntityUtils.setOrbitalCameraDistance(Globals.playerCamera, (float)(this.cameraRadius));
CameraEntityUtils.setCameraCenter(Globals.playerCamera, new Vector3d(0,(float)(this.cameraRadius - DEFAULT_STANDOFF_DIST),0));
CameraEntityUtils.setOrbitalCameraDistance(Globals.clientState.playerCamera, (float)(this.cameraRadius));
CameraEntityUtils.setCameraCenter(Globals.clientState.playerCamera, new Vector3d(0,(float)(this.cameraRadius - DEFAULT_STANDOFF_DIST),0));
hasOffsetFromBoundingSphere = true;
}
@ -364,7 +364,7 @@ public class ActorPanel extends BufferedStandardDrawableContainerElement impleme
*/
private void recalculateModelMatrix(){
modelMatrix.identity();
modelMatrix.translate(new Vector3d(actorPosition).sub(CameraEntityUtils.getCameraCenter(Globals.playerCamera)));
modelMatrix.translate(new Vector3d(actorPosition).sub(CameraEntityUtils.getCameraCenter(Globals.clientState.playerCamera)));
modelMatrix.rotate(actorRotation);
modelMatrix.scale(new Vector3d(actorScale));
actor.applySpatialData(modelMatrix,new Vector3d(actorPosition));
@ -453,7 +453,7 @@ public class ActorPanel extends BufferedStandardDrawableContainerElement impleme
if(this.cameraRadius < MIN_ZOOM){
this.cameraRadius = MIN_ZOOM;
}
CameraEntityUtils.setOrbitalCameraDistance(Globals.playerCamera, (float)cameraRadius);
CameraEntityUtils.setOrbitalCameraDistance(Globals.clientState.playerCamera, (float)cameraRadius);
propagate = false;
}
}