mirror of
https://github.com/celisej567/mcpe.git
synced 2026-01-05 18:10:09 +03:00
* Add ItemSpriteRenderer
This commit is contained in:
36
source/World/Renderer/ItemSpriteRenderer.cpp
Normal file
36
source/World/Renderer/ItemSpriteRenderer.cpp
Normal 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();
|
||||
}
|
||||
14
source/World/Renderer/ItemSpriteRenderer.hpp
Normal file
14
source/World/Renderer/ItemSpriteRenderer.hpp
Normal 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;
|
||||
};
|
||||
|
||||
@@ -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" />
|
||||
|
||||
@@ -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">
|
||||
|
||||
Reference in New Issue
Block a user