* Add ItemSpriteRenderer

This commit is contained in:
iProgramInCpp
2023-08-03 12:44:43 +03:00
parent 4a9ae0ebd1
commit 456981c680
4 changed files with 58 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
#include "ItemSpriteRenderer.hpp"
#include "EntityRenderDispatcher.hpp"
ItemSpriteRenderer::ItemSpriteRenderer(int sprite)
{
m_sprite = sprite;
}
void ItemSpriteRenderer::render(Entity* pEntity, float x, float y, float z, float a, float b)
{
glPushMatrix();
glTranslatef(x, y, z);
glEnable(GL_RESCALE_NORMAL);
glScalef(0.5f, 0.5f, 0.5f);
bindTexture(C_ITEMS_NAME);
float texU_1 = float(16 * (m_sprite % 16)) / 256.0f;
float texU_2 = float(16 * (m_sprite % 16 + 1)) / 256.0f;
float texV_1 = float(16 * (m_sprite / 16)) / 256.0f;
float texV_2 = float(16 * (m_sprite / 16 + 1)) / 256.0f;
glRotatef(180.0f - m_pDispatcher->m_yaw, 0.0f, 1.0f, 0.0f);
glRotatef(-m_pDispatcher->m_pitch, 1.0f, 0.0f, 0.0f);
Tesselator& t = Tesselator::instance;
t.begin();
t.color(1.0f, 1.0f, 1.0f);
t.vertexUV(-0.5f, -0.25f, 0.0f, float(16 * (m_sprite % 16)) / 256.0f, float(16 * (m_sprite / 16 + 1)) / 256.0f);
t.vertexUV(+0.5f, -0.25f, 0.0f, float(16 * (m_sprite % 16 + 1)) / 256.0f, float(16 * (m_sprite / 16 + 1)) / 256.0f);
t.vertexUV(+0.5f, +0.75f, 0.0f, float(16 * (m_sprite % 16 + 1)) / 256.0f, float(16 * (m_sprite / 16)) / 256.0f);
t.vertexUV(-0.5f, +0.75f, 0.0f, float(16 * (m_sprite % 16)) / 256.0f, float(16 * (m_sprite / 16)) / 256.0f);
t.draw();
glDisable(GL_RESCALE_NORMAL);
glPopMatrix();
}

View File

@@ -0,0 +1,14 @@
#pragma once
#include "EntityRenderer.hpp"
class ItemSpriteRenderer : public EntityRenderer
{
public:
ItemSpriteRenderer(int sprite);
void render(Entity*, float x, float y, float z, float a, float b) override;
public:
int m_sprite;
};

View File

@@ -150,6 +150,7 @@
<ClInclude Include="..\source\World\Renderer\HumanoidMobRenderer.hpp" />
<ClInclude Include="..\source\World\Renderer\ItemInHandRenderer.hpp" />
<ClInclude Include="..\source\World\Renderer\ItemRenderer.hpp" />
<ClInclude Include="..\source\World\Renderer\ItemSpriteRenderer.hpp" />
<ClInclude Include="..\source\World\Renderer\LevelRenderer.hpp" />
<ClInclude Include="..\source\World\Renderer\MobRenderer.hpp" />
<ClInclude Include="..\source\World\Renderer\TileRenderer.hpp" />
@@ -472,6 +473,7 @@
<ClCompile Include="..\source\World\Renderer\HumanoidMobRenderer.cpp" />
<ClCompile Include="..\source\World\Renderer\ItemInHandRenderer.cpp" />
<ClCompile Include="..\source\World\Renderer\ItemRenderer.cpp" />
<ClCompile Include="..\source\World\Renderer\ItemSpriteRenderer.cpp" />
<ClCompile Include="..\source\World\Renderer\LevelRenderer.cpp" />
<ClCompile Include="..\source\World\Renderer\MobRenderer.cpp" />
<ClCompile Include="..\source\World\Renderer\TileRenderer.cpp" />

View File

@@ -1074,6 +1074,9 @@
<ClCompile Include="..\source\GUI\Screen\CreateWorldScreen.cpp">
<Filter>Source Files\GUI\Screen</Filter>
</ClCompile>
<ClCompile Include="..\source\World\Renderer\ItemSpriteRenderer.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\source\Options.hpp">
@@ -1955,6 +1958,9 @@
<ClInclude Include="..\source\GUI\Screen\CreateWorldScreen.hpp">
<Filter>Header Files\GUI\Screen</Filter>
</ClInclude>
<ClInclude Include="..\source\World\Renderer\ItemSpriteRenderer.hpp">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<Text Include="..\thirdparty\raknet\CMakeLists.txt">