mirror of
https://github.com/celisej567/mcpe.git
synced 2026-01-05 18:10:09 +03:00
* Add proper firework rendering
This commit is contained in:
@@ -46,10 +46,8 @@ EntityRenderDispatcher::EntityRenderDispatcher() :
|
||||
m_TntRenderer.init(this);
|
||||
m_CameraRenderer.init(this);
|
||||
m_ItemRenderer.init(this);
|
||||
|
||||
#ifdef ENH_ALLOW_SAND_GRAVITY
|
||||
m_RocketRenderer.init(this);
|
||||
m_FallingTileRenderer.init(this);
|
||||
#endif
|
||||
}
|
||||
|
||||
float EntityRenderDispatcher::distanceToSqr(float x, float y, float z)
|
||||
@@ -94,11 +92,11 @@ EntityRenderer* EntityRenderDispatcher::getRenderer(int renderType)
|
||||
return &m_PigRenderer;
|
||||
case RENDER_CREEPER:
|
||||
return &m_CreeperRenderer;
|
||||
case RENDER_ROCKET:
|
||||
return &m_RocketRenderer;
|
||||
// TODO
|
||||
#ifdef ENH_ALLOW_SAND_GRAVITY
|
||||
case RENDER_FALLING_TILE:
|
||||
return &m_FallingTileRenderer;
|
||||
#endif
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
#include "CowRenderer.hpp"
|
||||
#include "ChickenRenderer.hpp"
|
||||
#include "CreeperRenderer.hpp"
|
||||
#include "RocketRenderer.hpp"
|
||||
|
||||
class Minecraft;
|
||||
class Font;
|
||||
@@ -59,6 +60,7 @@ public:
|
||||
//SheepRenderer m_SheepRenderer;
|
||||
//SheepFurRenderer m_SheepFurRenderer;
|
||||
TripodCameraRenderer m_CameraRenderer;
|
||||
RocketRenderer m_RocketRenderer;
|
||||
Textures* m_pTextures;
|
||||
Level* m_pLevel;
|
||||
Minecraft* m_pMinecraft;
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
/********************************************************************
|
||||
Minecraft: Pocket Edition - Decompilation Project
|
||||
Copyright (C) 2023 iProgramInCpp
|
||||
|
||||
The following code is licensed under the BSD 1 clause license.
|
||||
SPDX-License-Identifier: BSD-1-Clause
|
||||
********************************************************************/
|
||||
|
||||
#include "RocketRenderer.hpp"
|
||||
#include "client/app/Minecraft.hpp"
|
||||
|
||||
RocketRenderer::RocketRenderer() :
|
||||
m_tile()
|
||||
{
|
||||
field_4 = 0.5f;
|
||||
}
|
||||
|
||||
void RocketRenderer::render(Entity* entity, float x, float y, float z, float a, float b)
|
||||
{
|
||||
glPushMatrix();
|
||||
glTranslatef(x, y, z);
|
||||
|
||||
Tesselator& t = Tesselator::instance;
|
||||
t.color(1.0f, 1.0f, 1.0f);
|
||||
|
||||
float brightness = entity->getBrightness(1.0f);
|
||||
|
||||
bindTexture("gui/items.png");
|
||||
t.begin();
|
||||
|
||||
m_renderer.renderTile(&m_tile, 0, brightness);
|
||||
t.draw();
|
||||
|
||||
glPopMatrix();
|
||||
}
|
||||
|
||||
FakeRocketTile::FakeRocketTile() : Tile(0, 16*2+14, Material::plant)
|
||||
{
|
||||
}
|
||||
|
||||
int FakeRocketTile::getRenderShape()
|
||||
{
|
||||
return SHAPE_CROSS;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
/********************************************************************
|
||||
Minecraft: Pocket Edition - Decompilation Project
|
||||
Copyright (C) 2023 iProgramInCpp
|
||||
|
||||
The following code is licensed under the BSD 1 clause license.
|
||||
SPDX-License-Identifier: BSD-1-Clause
|
||||
********************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "EntityRenderer.hpp"
|
||||
#include "client/renderer/TileRenderer.hpp"
|
||||
#include "world/tile/Tile.hpp"
|
||||
#include "world/entity/TripodCamera.hpp"
|
||||
|
||||
class FakeRocketTile : public Tile
|
||||
{
|
||||
public:
|
||||
FakeRocketTile();
|
||||
int getRenderShape() override;
|
||||
};
|
||||
|
||||
class RocketRenderer : public EntityRenderer
|
||||
{
|
||||
public:
|
||||
RocketRenderer();
|
||||
void render(Entity*, float, float, float, float, float) override;
|
||||
|
||||
public:
|
||||
TileRenderer m_renderer;
|
||||
FakeRocketTile m_tile;
|
||||
};
|
||||
|
||||
|
||||
@@ -36,6 +36,7 @@ enum eEntityRenderType
|
||||
RENDER_SKELETON,
|
||||
RENDER_SPIDER,
|
||||
RENDER_CREEPER,
|
||||
RENDER_ROCKET,
|
||||
|
||||
// custom
|
||||
RENDER_FALLING_TILE = 50,
|
||||
|
||||
@@ -14,11 +14,11 @@ Rocket::Rocket(Level* level, float x, float y, float z) : Entity(level)
|
||||
{
|
||||
field_B8C = 0;
|
||||
field_B90 = 80;
|
||||
field_C8 = RENDER_CAMERA;
|
||||
field_C8 = RENDER_ROCKET;
|
||||
|
||||
field_34 = 1;
|
||||
|
||||
setSize(1.0f, 1.5f);
|
||||
setSize(0.1f, 1.0f);
|
||||
field_84 = field_8C * 0.5f - 0.25f;
|
||||
|
||||
setPos(x, y, z);
|
||||
|
||||
Reference in New Issue
Block a user