stuck on getting revolver and musket to switch idk why it wouldnt let me push earlier

This commit is contained in:
Will_Allen 2026-07-07 20:57:33 +01:00
parent 94858a7cad
commit 7bad787477
3 changed files with 787 additions and 928 deletions

View file

@ -105,14 +105,25 @@ public class GameCore implements GameLogic {
ModelData MusketData = ModelLoader.LoadModel("resources/models/musket/musket.json");
List<MaterialData> MusketMat = ModelLoader.LoadMaterials("resources/models/musket/musket_mat.json");
var Musket = new PlayerActor("DebugCamera","Player", MusketData.ID(), new Vector3f(0,5f,-5f)).SetCameraOffset(new Vector3f(0,1.0f,0));
var Musket = new PlayerActor("DebugCamera","Player_Musket", MusketData.ID(), new Vector3f(0,5f,-5f)).SetCameraOffset(new Vector3f(0,1.0f,0));
Musket.SetPositionOffset(new Vector3f(0.5f,1.0f,-1.25f));
Musket.SetRotation(0,(float)Math.toRadians(180),0);
Musket.CreatePhysicsController( ConvexMesh.Box(0.5f,0.75f,0.5f),200f);
PlayerActorID = "Player";
PlayerActorID = "Player_Musket";
RigidPhysicsController physicsController = (RigidPhysicsController) Musket.GetPhysicsController();
RigidBody.RigidBodyRegister.get(physicsController.RigidBodyID).LockRotation();
ModelData RevolverData = ModelLoader.LoadModel("resources/models/Revolver/Revolver.json");
List<MaterialData> RevolverMat = ModelLoader.LoadMaterials("resources/models/Revolver/Revolver_mat.json");
var Revolver = new PlayerActor("NULL","Player_Revolver", RevolverData.ID(), new Vector3f(0,5f,-5f)).SetCameraOffset(new Vector3f(0,1.0f,0));
Revolver.SetPositionOffset(new Vector3f(0.5f,1.0f,-1.25f));
Revolver.SetRotation(0,(float)Math.toRadians(180),0);
Revolver.CreatePhysicsController( ConvexMesh.Box(0.5f,0.75f,0.5f),200f);
// if I put PlayerActorID = "Player_Revolver" it just crashes
try {
Melona.GenerateCollisionMesh(MelonaData);
Melona.SetPhysicsType(Actor.PhysicsControllerType.T4JLegacyCollision);
@ -123,14 +134,17 @@ public class GameCore implements GameLogic {
mesh.RegisterMesh();
scene.AddActor(Melona);
scene.AddActor(Musket);
scene.AddActor(Revolver);
ActorEditorComponents.add(new EditorActorComponent(Melona,new Vector3f(0,0f,-5f),new Vector3f(1.0f,1.8f,1.0f)));
CubeActors.forEach(scene::AddActor);
List<MaterialData> materials = new ArrayList<>();
materials.addAll(MelonaDataMat);
materials.addAll(MusketMat);
materials.addAll(RevolverMat);
models.add(MelonaData);
models.add(MusketData);
models.add(RevolverData);
Camera camera = scene.GetCamera();
camera.SetPosition(0,0,0);
camera.SetRotation(0,0,0);
@ -193,7 +207,9 @@ public class GameCore implements GameLogic {
//RigidBody.RigidBodyRegister.get(physicsController.RigidBodyID).LinearVelocity.set(0,0,-20f -(40f * (float)Math.random()));
scene.AddActor(Melona);
}
public void SetPlayerActorID(String id) {
this.PlayerActorID = id;
}
public void SpawnNewActor(EngineInstance engineInstance, Vector3f Position, Vector3f Rotation, Vector3f Direction){
var scene = engineInstance.scene();
Camera camera = scene.GetCamera();

View file

@ -51,6 +51,9 @@ public class Scene implements IScene {
private DynamicTerrainMesh terrainMesh;
private int Jumps = 0;
private final int MaxJumps = 2;
public PlayerActor CurrentWeapon;
public PlayerActor Musket;
public PlayerActor Revolver;
public List<String> ActiveGUIs = new ArrayList<>();
public Map<String, GUIOverlay> GUIReg = new HashMap<>();
@ -198,6 +201,8 @@ public class Scene implements IScene {
return Actors.remove(actor.GetID());
}
public void SetCurrentWeapon(PlayerActor Weapon) {this.CurrentWeapon = Weapon; }
public void SetUpAudio(EngineInstance engineInstance) {
}
@ -219,6 +224,26 @@ public class Scene implements IScene {
if (input.keyPressed(GLFW_KEY_ENTER)) {
parent.SpawnNewActor(engineInstance, new Vector3f((float) (5 * Math.random()), 20 + (float) (10 * Math.random()), (float) (5 * Math.random())), new Vector3f(-1f + (float) (2 * Math.random()), -1f + (float) (2 * Math.random()), -1f + (float) (2 * Math.random())), new Vector3f((float) Math.random(), (float) Math.random(), (float) Math.random()));
}
if (input.keySinglePress(GLFW_KEY_R) && CurrentWeapon != Revolver) {
scene.RemoveActor(Musket);
scene.AddActor(Revolver);
CurrentWeapon = Revolver;
playerActor = Revolver;
parent.SetPlayerActorID(Revolver.GetID());
Musket.AttachedCameraID = "NULL";
Revolver.AttachedCameraID = "DebugCamera";
}
if (input.keySinglePress(GLFW_KEY_M) && CurrentWeapon != Musket) {
scene.RemoveActor(Revolver);
scene.AddActor(Musket);
CurrentWeapon = Musket;
playerActor = Musket;
parent.SetPlayerActorID(Musket.GetID());
Musket.AttachedCameraID = "DebugCamera";
Revolver.AttachedCameraID = "NULL";
}
if (input.keyPressed(GLFW_KEY_1)) {
Gimbal.universalType = Gimbal.GimbalType.Move;
}