Made cursor work
This commit is contained in:
@@ -8,6 +8,6 @@ add_library(GameData STATIC GameData.cpp CharacterModule.cpp WaterModule.cpp Sun
|
||||
VehicleManagerModule.cpp AppModule.cpp SmartObject.cpp SlotsModule.cpp goap.cpp)
|
||||
target_link_libraries(GameData PUBLIC lua flecs::flecs_static OgreMain OgreBites
|
||||
OgrePaging OgreTerrain OgreOverlay
|
||||
PRIVATE sceneloader world-build physics)
|
||||
PRIVATE sceneloader world-build physics editor)
|
||||
target_include_directories(GameData PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${BULLET_INCLUDE_DIR} ../luaaa)
|
||||
target_compile_definitions(GameData PRIVATE FLECS_CPP_NO_AUTO_REGISTRATION)
|
||||
|
||||
@@ -39,6 +39,7 @@ struct Input {
|
||||
uint32_t control_prev;
|
||||
Vector3 motion;
|
||||
Vector2 mouse;
|
||||
Vector2 mouse_abs;
|
||||
float wheel_y;
|
||||
bool mouse_moved;
|
||||
bool wheel_moved;
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
#include "LuaData.h"
|
||||
#include "AppModule.h"
|
||||
#include "TerrainModule.h"
|
||||
#include "EditorGizmoModule.h"
|
||||
#include "GUIModule.h"
|
||||
namespace ECS
|
||||
{
|
||||
@@ -480,7 +481,6 @@ struct EditorGUIListener : public Ogre::RenderTargetListener {
|
||||
EditorGUIListener(Ogre::ImGuiOverlay *overlay)
|
||||
: Ogre::RenderTargetListener()
|
||||
{
|
||||
std::cout << "WAAAAAAA!!!!!" << std::endl;
|
||||
_midFont = createFont("midFont", "General",
|
||||
"Jupiteroid-Regular.ttf", 18.0f);
|
||||
_smallFont = createFont("smallFont", "General",
|
||||
@@ -741,13 +741,11 @@ struct EditorGUIListener : public Ogre::RenderTargetListener {
|
||||
x + j, y + i);
|
||||
if (terrain && terrain->isLoaded()) {
|
||||
terrain->dirty();
|
||||
terrain->updateDerivedData(true);
|
||||
terrain->updateGeometry();
|
||||
terrain->update(true);
|
||||
terrain->waitForDerivedProcesses();
|
||||
}
|
||||
}
|
||||
|
||||
ECS::get<Terrain>().mTerrainGroup->updateDerivedData(true);
|
||||
ECS::get<Terrain>().mTerrainGroup->updateGeometry();
|
||||
ECS::get<Terrain>().mTerrainGroup->update(true);
|
||||
}
|
||||
void setCameraPos()
|
||||
@@ -770,12 +768,7 @@ struct EditorGUIListener : public Ogre::RenderTargetListener {
|
||||
cameraPos =
|
||||
ECS::get<Camera>().mCameraGoal->_getDerivedPosition();
|
||||
ECS::get<Camera>().mCameraNode->_setDerivedPosition(cameraPos);
|
||||
std::cout << cameraPos << std::endl;
|
||||
std::cout << worldPos << std::endl;
|
||||
std::cout << selected_x << " " << selected_y << std::endl;
|
||||
ECS::get<Terrain>().mTerrainGroup->updateDerivedData(true);
|
||||
ECS::get<Terrain>().mTerrainGroup->updateGeometry();
|
||||
ECS::get<Terrain>().mTerrainGroup->update(true);
|
||||
updateHeightmap();
|
||||
}
|
||||
void worldMapView()
|
||||
{
|
||||
@@ -798,9 +791,6 @@ struct EditorGUIListener : public Ogre::RenderTargetListener {
|
||||
selected_x = TerrainModule::get_img_x(worldPos.x);
|
||||
selected_y = TerrainModule::get_img_y(worldPos.z);
|
||||
locationSelected = true;
|
||||
std::cout << worldPos << std::endl;
|
||||
std::cout << selected_x << " " << selected_y
|
||||
<< std::endl;
|
||||
OgreAssert(selected_x >= 0 &&
|
||||
selected_x < worldMap->getWidth(),
|
||||
"mix width");
|
||||
@@ -830,10 +820,6 @@ struct EditorGUIListener : public Ogre::RenderTargetListener {
|
||||
top_x = item_absolute_pos.x + 5;
|
||||
top_y = item_absolute_pos.y + 5;
|
||||
bool hovered = false;
|
||||
#if 0
|
||||
pos_x = mouse_absolute_pos.x - item_absolute_pos.x - 5;
|
||||
pos_y = mouse_absolute_pos.y - item_absolute_pos.y - 5;
|
||||
#endif
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImVec2 mouse_absolute_pos = ImGui::GetMousePos();
|
||||
ImVec2 item_absolute_pos = ImGui::GetItemRectMin();
|
||||
@@ -893,9 +879,6 @@ struct EditorGUIListener : public Ogre::RenderTargetListener {
|
||||
worldMapImage.getColourAt(selected_x, selected_y, 0).r);
|
||||
if (ImGui::Button("Update terrain")) {
|
||||
ECS::get<Terrain>().mTerrainGroup->update(true);
|
||||
ECS::get<Terrain>().mTerrainGroup->updateDerivedData(
|
||||
true);
|
||||
ECS::get<Terrain>().mTerrainGroup->updateGeometry();
|
||||
}
|
||||
ImGui::SliderFloat("Strength...", &strength, 0.0f, 0.2f);
|
||||
ImGui::SliderInt("Size", &size, 0, 8);
|
||||
|
||||
@@ -748,6 +748,13 @@ void PhysicsModule::controlPhysics(flecs::entity e, bool enable)
|
||||
e.remove<InWater>();
|
||||
}
|
||||
}
|
||||
bool PhysicsModule::raycastQuery(const Ogre::Vector3 &startPos,
|
||||
const Ogre::Vector3 &endPos,
|
||||
Ogre::Vector3 &position)
|
||||
{
|
||||
return JoltPhysicsWrapper::getSingleton().raycastQuery(startPos, endPos,
|
||||
position);
|
||||
}
|
||||
bool WaterBody::isInWater(const JPH::BodyID &id) const
|
||||
{
|
||||
flecs::entity e =
|
||||
|
||||
@@ -57,6 +57,9 @@ struct PhysicsModule {
|
||||
const Ogre::Vector3 &scale,
|
||||
int sampleCount);
|
||||
static void controlPhysics(flecs::entity e, bool enable);
|
||||
static bool raycastQuery(const Ogre::Vector3 &startPos,
|
||||
const Ogre::Vector3 &endPos,
|
||||
Ogre::Vector3 &position);
|
||||
};
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user