-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBlock.cpp
More file actions
77 lines (71 loc) · 3.2 KB
/
Copy pathBlock.cpp
File metadata and controls
77 lines (71 loc) · 3.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include "Block.h"
#include "Model.h"
#include "Resource.h"
Block::Block() {
static std::pair<Vector3f, Vector3f> positions[] = {
{ { 0, 0, 0.5 },{ 0, 0, 0 } },
{ { 0, -0.5, 0 },{ 90, 0, 0 } },
{ { 0.5, 0, 0 },{ 0, 90, 0 } },
{ { 0, 0, -0.5 },{ 0, 180, 0 } },
{ { 0, 0.5, 0 },{ -90, 0, 0 } },
{ { -0.5, 0, 0 },{ 0, -90, 0 } },
};
static Vector4f colors[] = {
/*{ 1, 1, 1, 1 },
{ 1, 1, 1, 1 },
{ 0.6f, 0.2f, 0.6f, 1 },
{ 1, 1, 1, 1 },
{ 0.20f, 0.75f, 1, 1 },
{ 1, 1, 1, 1 }*/
{ 1, 1, 1, 1 },
{ 1, 0.8f, 0.8f, 1 },
{ 0.8f, 0.8f, 1.f, 1 },
{ 0.8f, 1, 0.8f, 1 },
{ 0.20f, 0.75f, 1, 1 },
{ 1, 1, 0.8f, 1 }
};
for (std::pair<Vector3f, Vector3f> & position : positions) {
std::shared_ptr<Actor> child = this->createChild<Actor>();
child->setTransform(
Transform(child->getTransform())
.rotatePost(Rotation().rotateByEuler(position.second))
.translatePost(position.first)
);
child->createComponent<Model>()->bindMesh(Resource::meshes[Resource::Meshes::Blockside])
.bindDiffuseTexture(Resource::textures[Resource::Textures::Metal])
.bindNormalTexture(Resource::textures[Resource::Textures::MetalNormal])
.bindHeightTexture(Resource::textures[Resource::Textures::MetalHeight])
.bindShaderProgram(Resource::shaderPrograms[Resource::ShaderPrograms::MetalParallax]);
}
for (size_t i = 0; i < 6; ++i) {
(*this)[i]->getComponent<Model>()->setColor(colors[i]);
}
/*(*this)[0]->getComponent<Model>()->
bindDiffuseTexture(Resource::textures[Resource::Textures::Metal])
.bindNormalTexture(Resource::textures[Resource::Textures::MetalNormal])
.bindHeightTexture(Resource::textures[Resource::Textures::MetalHeight])
.bindShaderProgram(Resource::shaderPrograms[Resource::ShaderPrograms::MetalParallax]);
(*this)[1]->getComponent<Model>()->
bindDiffuseTexture(Resource::textures[Resource::Textures::Cobble])
.bindSpecularTexture(Resource::textures[Resource::Textures::CobbleSpecular])
.bindNormalTexture(Resource::textures[Resource::Textures::CobbleNormal])
.bindHeightTexture(Resource::textures[Resource::Textures::CobbleHeight])
.bindShaderProgram(Resource::shaderPrograms[Resource::ShaderPrograms::Cobble]);
(*this)[2]->getComponent<Model>()->
//bindDiffuseTexture(Resource::textures[Resource::Textures::Cushion])
bindNormalTexture(Resource::textures[Resource::Textures::CushionNormal])
.bindShaderProgram(Resource::shaderPrograms[Resource::ShaderPrograms::Cushion]);
(*this)[3]->getComponent<Model>()->
bindDiffuseTexture(Resource::textures[Resource::Textures::Wood])
.bindNormalTexture(Resource::textures[Resource::Textures::WoodNormal])
.bindShaderProgram(Resource::shaderPrograms[Resource::ShaderPrograms::Wood]);*/
(*this)[4]->getComponent<Model>()->
bindDiffuseTexture(nullptr)
.bindNormalTexture(Resource::textures[Resource::Textures::WaterNormal])
.bindShaderProgram(Resource::shaderPrograms[Resource::ShaderPrograms::Water]);
(*this)[5]->getComponent<Model>()->
bindDiffuseTexture(Resource::textures[Resource::Textures::Metal])
.bindNormalTexture(Resource::textures[Resource::Textures::MetalNormal])
.bindHeightTexture(Resource::textures[Resource::Textures::MetalHeight])
.bindShaderProgram(Resource::shaderPrograms[Resource::ShaderPrograms::MetalNormal]);
}