This commit is contained in:
2025-05-13 02:46:21 +03:00
parent 143e16692e
commit 86914b7fcc
610 changed files with 92343 additions and 2 deletions
@@ -0,0 +1,13 @@
#ifndef EditorCameraInputController_h__
#define EditorCameraInputController_h__
#include <GOCCameraFree.h>
namespace LifeWorldEditor
{
class GOCEditorCameraInputController : public LifeGame::GOCLogic
{
};
}
#endif // EditorCameraInputController_h__
+151
View File
@@ -0,0 +1,151 @@
#include "LifeWorldEditor.h"
#include <GUIMenu.h>
#include <GUIToolStrip.h>
#include <GUIToolStripMenu.h>
#include <GUISplitPanel.h>
#include <GUIOutput.h>
#include <EntityFactory.h>
#include <InputActionProvider.h>
#include <GOCCameraFree.h>
LifeWorldEditor::LifeWorldEditor(void){
}
LifeWorldEditor::~LifeWorldEditor(void){
}
int32 LifeWorldEditor::Load(){
int32 window_width = 1024;
int32 window_height = 600;
main_window = new RenderWindowWin();
main_window->SetSize(window_width, window_height);
main_window->CenterWindow();
game = new LifeGame::Game();
game->SetResourcesPath(STR("D:\\!development\\Programming\\Projects\\Data\\"));
game->InitInput(window_width, window_height, main_window);
game->InitVideo(LifeGraphics::RT_DIRECTX_11, window_width, window_height);
main_out = game->GetGraphics()->CreateRenderOutput(main_window);
editor_scene = new LifeGame::World(game, new LifeGame::IPhysicsWorld(), main_out);
game->GetInput()->AddListener(editor_scene);
LifeGUI::GUIOverlay* ovrl = editor_scene->GetGUI()->GetOverlay("MainGui", true);
editor_scene->GetGUI()->SwitchOverlay("MainGui");
LifeGUI::GUIToolStrip* main_menu = new LifeGUI::GUIToolStrip();
main_menu->SetDock(LifeGUI::DOCK_TOP);
main_menu->SetHeight(20);
ovrl->AddChild(main_menu);
LifeGUI::GUIToolStripMenu* menu1 = new LifeGUI::GUIToolStripMenu();
menu1->SetCaption("Trololo");
menu1->GetMenu()->AddItem("OMFG",false);
main_menu->AddItem(menu1);
LifeGUI::GUISplitPanel* split_container = new LifeGUI::GUISplitPanel();
split_container->SetDock(LifeGUI::DOCK_FILL);
split_container->SetSplitterHorisontal(false);
ovrl->AddChild(split_container);
LifeGUI::GUIRenderWindow* wnd = new LifeGUI::GUIRenderWindow();
wnd->GetGUIWindow()->SetDock(LifeGUI::DOCK_FILL);
split_container->GetContainer1()->AddChild(wnd->GetGUIWindow());
LifeGame::GUIOutput* scene_out = LifeGame::GUIOutput::Create(wnd, game->GetGraphics()->GetRenderer());
wnd->GetGUIWindow()->SetPicture( LifeGUI::GUIManager::me()->GetDataManager()->getImage("alpha.bmp"));
game_scene = new LifeGame::World(game, new LifeGame::IPhysicsWorld(), scene_out);
wnd->GetInputSystem()->AddListener(game_scene);
LifeGUI::GUIOverlay* hud = game_scene->GetGUI()->GetOverlay("HUD", true);
game_scene->GetGUI()->SwitchOverlay("HUD");
LifeGUI::GUIToolStrip* main_game_menu = new LifeGUI::GUIToolStrip();
main_game_menu->SetDock(LifeGUI::DOCK_TOP);
main_game_menu->SetHeight(20);
hud->AddChild(main_game_menu);
LifeGUI::GUIToolStripMenu* menu = new LifeGUI::GUIToolStripMenu();
menu->SetCaption("Trololo");
menu->GetMenu()->AddItem("OMFG",false);
main_game_menu->AddItem(menu);
/* LifeGame::Player* player = (LifeGame::Player*)LifeGame::EntityFactory::me()->BuildEntity(AS_STRING("root/Data/Entities/thing.xml"), game);
player->GetTransform()->SetPosition(LifeMath::float3(0.3f,0.5f,0.2f));
player->GetTransform()->SetRotation(LifeMath::float3(0.0f,1.0f,0.0f), 1.0f);
game_scene->AddEntity(player);*/
LifeGraphics::Light* l = new LifeGraphics::Light(LifeGraphics::LT_POINT);
l->setRange(20);
game_scene->GetGraphicsScene()->PushNode(l);
l->getTransform()->SetPosition(LifeMath::float3(4,0.5f,-4.0f));
l->color = LifeMath::float3(1,1,1);
l->intensity = 1.0f;
LifeGraphics::IObjectMesh* tower = new LifeGraphics::IObjectMesh("root/Data/Objects/Tower_opt.vmf");
game_scene->GetGraphicsScene()->PushNode(tower);
tower->getTransform()->SetPosition(LifeMath::float3(0,0,0));
LifeGame::GameCamera* mainCamera = new LifeGame::GameCamera(1.33f);
mainCamera->GetTransform()->SetPosition(LifeMath::float3(0.3f,0.5f,-0.5f));
mainCamera->getCam()->setDirection(LifeMath::float3(0,0.5f, 0));
//mainCamera->GetTransform()->SetRotation(LifeMath::float3(0.0f,1.0f,0.0f), 1.0f);
game_scene->AddEntity(mainCamera);
game_scene->SetMainCamera(mainCamera);
LifeGame::ActionSystem::me()->AddAction("MoveForward");
LifeGame::ActionSystem::me()->AddAction("MoveBackward");
LifeGame::ActionSystem::me()->AddAction("MoveLeft");
LifeGame::ActionSystem::me()->AddAction("MoveRight");
LifeGame::ActionSystem::me()->AddAction("RotateYaw");
LifeGame::ActionSystem::me()->AddAction("RotatePitch");
LifeGame::InputActionProvider* input_action = new LifeGame::InputActionProvider();
input_action->Map(LifeCore::KEY_W, LifeCore::KA_HOLD, "MoveForward");
input_action->Map(LifeCore::KEY_A, LifeCore::KA_HOLD, "MoveLeft");
input_action->Map(LifeCore::KEY_D, LifeCore::KA_HOLD, "MoveRight");
input_action->Map(LifeCore::KEY_S, LifeCore::KA_HOLD, "MoveBackward");
input_action->Map(LifeCore::MOUSE_AXIS_X, "RotateYaw");
input_action->Map(LifeCore::MOUSE_AXIS_Y, "RotatePitch");
game_scene->AddActionProvider(input_action);
input_action->SetInputSystem(wnd->GetInputSystem());
LifeGame::Entity* editor_player = new LifeGame::Entity();
LifeGame::GOCCameraFree* editor_player_controller = new LifeGame::GOCCameraFree();
editor_player_controller->SetCamera(mainCamera);
editor_player->AddLogicEntity(editor_player_controller);
game_scene->AddEntity(editor_player);
LifeGame::ActionSystem::me()->GetAction("MoveForward")->AddListener(editor_player_controller);
LifeGame::ActionSystem::me()->GetAction("MoveLeft")->AddListener(editor_player_controller);
LifeGame::ActionSystem::me()->GetAction("MoveBackward")->AddListener(editor_player_controller);
LifeGame::ActionSystem::me()->GetAction("MoveRight")->AddListener(editor_player_controller);
LifeGame::ActionSystem::me()->GetAction("RotateYaw")->AddListener(editor_player_controller);
LifeGame::ActionSystem::me()->GetAction("RotatePitch")->AddListener(editor_player_controller);
return 0;
}
uint32 LifeWorldEditor::Run(){
while(true){
game->GetInput()->Capture();
game->processWorld(game_scene);
game->processWorld(editor_scene);
Sleep(1);
}
return 0;
}
+22
View File
@@ -0,0 +1,22 @@
#ifndef LifeWorldEditor_h__
#define LifeWorldEditor_h__
#include <Game.h>
#include <log/CLog.h>
class LifeWorldEditor
{
public:
LifeWorldEditor(void);
~LifeWorldEditor(void);
int32 Load();
uint32 Run();
private:
LifeGame::World* game_scene;
LifeGame::Game* game;
LifeGame::World* editor_scene;
LifeCore::IRenderWindow* main_window;
LifeGraphics::IRenderOutput* main_out;
};
#endif // LifeWorldEditor_h__
+173
View File
@@ -0,0 +1,173 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{999B1AB0-CF3F-46EC-B0B5-164504EE3D6D}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>LifeWorldEditor</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)$(ProjectName)\bin\</OutDir>
<IntDir>$(SolutionDir)$(ProjectName)\tmp\$(Configuration)\</IntDir>
<TargetName>$(ProjectName)_d</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)$(ProjectName)\bin\</OutDir>
<IntDir>$(SolutionDir)$(ProjectName)\tmp\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>$(REPO_DIR)\bullet-2.78\src;$(REPO_DIR)\ois-v1-3\includes;$(SolutionDir)\LifeGraphics\src;$(SolutionDir)\LifeCore\src;$(SolutionDir)\LifeSound\src;$(SolutionDir)\LifeGame\src;$(REPO_DIR)/angelscript/include;$(SolutionDir)\LifeGUI\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(DXSDK_DIR)\Lib\x86;$(SolutionDir)\LifeCore\lib;$(SolutionDir)\LifeGraphics\lib;$(SolutionDir)\LifeGUI\lib;$(SolutionDir)\LifeSound\lib;$(SolutionDir)\LifeGame\lib;$(REPO_DIR)\bullet-2.78\msvc\2008\lib\Debug;$(REPO_DIR)\ois-v1-3\lib\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>OIS_static_d.lib;LifeGUI_d.lib;LifeGame_d.lib;LifeGraphics_d.lib;LifeSound_d.lib;LifeCore_d.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>$(REPO_DIR)\bullet-2.78\src;$(REPO_DIR)\ois-v1-3\includes;$(SolutionDir)\LifeGraphics\include;$(SolutionDir)\LifeCore\include;$(SolutionDir)\LifeSound\include;$(SolutionDir)\LifeGame\include;$(REPO_DIR)/angelscript/include;$(SolutionDir)\LifeGUI\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(DXSDK_DIR)\Lib\x86;$(SolutionDir)\LifeCore\lib;$(SolutionDir)\LifeGraphics\lib;$(SolutionDir)\LifeGUI\lib;$(SolutionDir)\LifeSound\lib;$(SolutionDir)\LifeGame\lib;$(REPO_DIR)\bullet-2.78\msvc\2008\lib\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>LifeGUI_d.lib;LifeGame_d.lib;LifeGraphics_d.lib;LifeSound_d.lib;LifeCore_d.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>$(REPO_DIR)\bullet-2.78\src;$(REPO_DIR)\ois-v1-3\includes;$(SolutionDir)\LifeGraphics\src;$(SolutionDir)\LifeCore\src;$(SolutionDir)\LifeSound\src;$(SolutionDir)\LifeGame\src;$(REPO_DIR)/angelscript/include;$(SolutionDir)\LifeGUI\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>$(DXSDK_DIR)\Lib\x86;$(SolutionDir)\LifeCore\lib;$(SolutionDir)\LifeEngine\lib;$(SolutionDir)\LifeSound\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>LifeEngine.lib;LifeSound.lib;LifeCore.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>$(SolutionDir)\LifeEngine\include;$(SolutionDir)\LifeCore\include;$(SolutionDir)\LifeSound\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>$(DXSDK_DIR)\Lib\x86;$(SolutionDir)\LifeCore\lib;$(SolutionDir)\LifeEngine\lib;$(SolutionDir)\LifeSound\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>LifeEngine.lib;LifeSound.lib;LifeCore.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="LifeWorldEditor.cpp" />
<ClCompile Include="main.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="EditorCameraInputController.h" />
<ClInclude Include="LifeWorldEditor.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
+7
View File
@@ -0,0 +1,7 @@
#include "LifeWorldEditor.h"
int main(int argc, char* argv[]){
LifeWorldEditor* editor = new LifeWorldEditor();
editor->Load();
return editor->Run();
}