Refactor farm building speed to builder unit action_speeds and enable infinite charges
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
#include "matrix2d.h"
|
||||
#include <math.h>
|
||||
#include "qscenerenderer.h"
|
||||
#include "gamemanager.h"
|
||||
#include <QVector3D>
|
||||
QImage * Tile::m_image_grass = NULL;
|
||||
QOpenGLTexture * Tile::m_texture_grass = NULL;
|
||||
@@ -27,6 +28,8 @@ QOpenGLTexture * Tile::m_texture_redrock = NULL;
|
||||
QImage * Tile::m_image_redrock = NULL;
|
||||
QOpenGLTexture * Tile::m_texture_forest = NULL;
|
||||
QImage * Tile::m_image_forest = NULL;
|
||||
QOpenGLTexture * Tile::m_texture_farm = NULL;
|
||||
QImage * Tile::m_image_farm = NULL;
|
||||
|
||||
Vertex * Tile::m_vertices= NULL;
|
||||
int Tile::m_numVertex;
|
||||
@@ -147,6 +150,8 @@ void Tile::init(QSceneRenderer* s, int x, int y)
|
||||
Tile::m_image_redrock = new QImage("/home/bart/project/tiletest/images/Texturelabs_RedRock_seamless.jpg");
|
||||
if (Tile::m_image_forest == NULL)
|
||||
Tile::m_image_forest = new QImage("/home/bart/project/tiletest/images/Texturelabs_Forest_seamless.jpg");
|
||||
if (Tile::m_image_farm == NULL)
|
||||
Tile::m_image_farm = new QImage("/home/bart/project/tiletest/images/farm.jpeg");
|
||||
|
||||
if (Tile::m_texture_grass == NULL) {
|
||||
m_texture_grass = new QOpenGLTexture(*m_image_grass);
|
||||
@@ -232,6 +237,13 @@ void Tile::init(QSceneRenderer* s, int x, int y)
|
||||
m_texture_forest->setMagnificationFilter(QOpenGLTexture::Linear);
|
||||
m_texture_forest->generateMipMaps();
|
||||
}
|
||||
if (Tile::m_texture_farm == NULL && Tile::m_image_farm != NULL) {
|
||||
m_texture_farm = new QOpenGLTexture(*m_image_farm);
|
||||
m_texture_farm->setWrapMode(QOpenGLTexture::Repeat);
|
||||
m_texture_farm->setMinificationFilter(QOpenGLTexture::LinearMipMapLinear);
|
||||
m_texture_farm->setMagnificationFilter(QOpenGLTexture::Linear);
|
||||
m_texture_farm->generateMipMaps();
|
||||
}
|
||||
|
||||
if (first){
|
||||
m_program = new QOpenGLShaderProgram();
|
||||
@@ -302,6 +314,9 @@ void Tile::paint(QMatrix4x4 p, QVector3D& cameraPosition,QVector3D& cameraUpDire
|
||||
m_texture_redsand->bind(9);
|
||||
m_texture_redrock->bind(10);
|
||||
m_texture_forest->bind(11);
|
||||
if (m_texture_farm) {
|
||||
m_texture_farm->bind(12);
|
||||
}
|
||||
// Render using our shader
|
||||
m_program->bind();
|
||||
|
||||
@@ -334,6 +349,18 @@ void Tile::paint(QMatrix4x4 p, QVector3D& cameraPosition,QVector3D& cameraUpDire
|
||||
m_program->setUniformValue("texRedSand", 9);
|
||||
m_program->setUniformValue("texRedRock", 10);
|
||||
m_program->setUniformValue("texForest", 11);
|
||||
m_program->setUniformValue("texFarm", 12);
|
||||
|
||||
const TileImprovement *imp = GameManager::instance().getImprovementAt(m_x, m_y);
|
||||
bool isFarm = (imp != nullptr && imp->improvementId == "farm");
|
||||
m_program->setUniformValue("isFarm", isFarm ? 1 : 0);
|
||||
|
||||
const ImprovementConfig *farmCfg = TerrainYieldManager::instance().getImprovementConfig("farm");
|
||||
float fScale = farmCfg ? farmCfg->textureScale : 0.6f;
|
||||
int mappingMode = (farmCfg && farmCfg->textureMapping == "hex") ? 1 : 0;
|
||||
m_program->setUniformValue("farmTextureScale", fScale);
|
||||
m_program->setUniformValue("farmMappingMode", mappingMode);
|
||||
|
||||
m_program->setUniformValue("time", time);
|
||||
m_program->setUniformValue("riverMask", (int)m_riverMask);
|
||||
m_object.bind();
|
||||
|
||||
Reference in New Issue
Block a user