载入中...
搜索中...
未找到
DayNight.h
浏览该文件的文档.
1#pragma once
2
3#include "common/Module.h"
4
5#include <string>
6#include <vector>
7
8namespace eve::graphics {
9class Graphics;
10class Light3D;
11} // namespace eve::graphics
12
13namespace eve::daynight {
14
39class DayNight : public Module {
40public:
42
43 DayNight();
44 ~DayNight() override;
45
47 void init(graphics::Graphics *gfx);
49 void update(float dt, graphics::Graphics *gfx);
50
51 // ---- clock ----
52 void setTimeOfDay(float hours); // 0..24
53 float getTimeOfDay() const;
54 void setSpeed(float hoursPerRealHour); // default 1.0
55 float getSpeed() const;
56 void setPaused(bool paused);
57 bool isPaused() const;
59 bool isNight() const;
60
61 // ---- sun ----
63 float getSunElevation() const;
65 float getSunAzimuth() const;
67 float getSunDirX() const;
68 float getSunDirY() const;
69 float getSunDirZ() const;
71 float getSunIntensity() const;
72
73 // ---- sky / ambient (sampled by the scene) ----
74 float getSkyR() const;
75 float getSkyG() const;
76 float getSkyB() const;
77 float getAmbientR() const;
78 float getAmbientG() const;
79 float getAmbientB() const;
80 float getAmbientBrightness() const;
81
82 // ---- skybox ----
83 void setSkyboxEnabled(bool enabled);
84 bool isSkyboxEnabled() const;
85
86 // ---- night lighting ----
88 void setNightLight(const std::string &name, bool enabled);
89 bool isNightLight(const std::string &name) const;
90 static const char *const kNamedLights[];
91 static const int kNamedLightCount;
92
94 void setFirePosition(float x, float y, float z);
96 void addFirefly(float x, float y, float z);
97 void clearFireflies();
98 int getFireflyCount() const;
99
100private:
101 struct Impl;
102 Impl *impl_ = nullptr;
103};
104
105} // namespace eve::daynight
int y
Definition Grass.cpp:135
int z
Definition Grass.cpp:135
int x
Definition Grass.cpp:135
const char * name
Definition RockMesh.cpp:21
bool enabled
DayNight module — a time-of-day cycle that drives the sun, sky and light.
Definition DayNight.h:39
float getSpeed() const
Definition DayNight.cpp:189
int getFireflyCount() const
Definition DayNight.cpp:280
float getSunDirY() const
Definition DayNight.cpp:198
float getSkyR() const
Definition DayNight.cpp:203
float getSkyG() const
Definition DayNight.cpp:204
float getSkyB() const
Definition DayNight.cpp:205
bool isNight() const
True when the sun is below the horizon (night).
Definition DayNight.cpp:193
float getSunDirZ() const
Definition DayNight.cpp:199
void setPaused(bool paused)
Definition DayNight.cpp:190
void setSkyboxEnabled(bool enabled)
Definition DayNight.cpp:227
void init(graphics::Graphics *gfx)
Idempotent; builds lights / sky cubemap on first call.
Definition DayNight.cpp:286
static const int kNamedLightCount
Definition DayNight.h:91
float getSunIntensity() const
0..1 sun energy; ramps to 0 below the horizon.
Definition DayNight.cpp:200
float getTimeOfDay() const
Definition DayNight.cpp:186
float getAmbientR() const
Definition DayNight.cpp:210
bool isNightLight(const std::string &name) const
Definition DayNight.cpp:245
float getAmbientB() const
Definition DayNight.cpp:218
float getSunAzimuth() const
Solar azimuth in degrees, measured clockwise from +Z.
Definition DayNight.cpp:196
bool isSkyboxEnabled() const
Definition DayNight.cpp:231
void setFirePosition(float x, float y, float z)
Position of the campfire point light (fire system).
Definition DayNight.cpp:252
void addFirefly(float x, float y, float z)
Add one firefly anchor (world space); up to kMaxFireflies.
Definition DayNight.cpp:261
float getAmbientG() const
Definition DayNight.cpp:214
static const char *const kNamedLights[]
Definition DayNight.h:90
void setSpeed(float hoursPerRealHour)
Definition DayNight.cpp:188
float getSunElevation() const
Solar elevation in degrees (max at local noon, ~70°).
Definition DayNight.cpp:195
void setNightLight(const std::string &name, bool enabled)
Enable a named light system: "moonlight"|"starlight"|"fire"|"fireflies".
Definition DayNight.cpp:237
float getAmbientBrightness() const
Definition DayNight.cpp:206
float getSunDirX() const
World-space direction pointing AT the sun (normalized).
Definition DayNight.cpp:197
void setTimeOfDay(float hours)
Definition DayNight.cpp:181
void update(float dt, graphics::Graphics *gfx)
Advance the clock and push sun/sky/light state; before gfx.render3D().
Definition DayNight.cpp:316
卡牌游戏 UI 工具模块:工厂 + 脚本绑定入口。 功能参考 ycarowr/UiCard:扇形手牌布局、抽牌/洗牌、悬浮放大、拖拽到落牌区、 敌方手牌(背面/偷看)、费用不足置灰,以及可实时调节的布局...
Definition AnimTrail.h:6