add weather to level
This commit is contained in:
parent
82fdd0d609
commit
e6754048f6
@ -30,7 +30,7 @@ function behavior:draw()
|
|||||||
shader:send("color", { self.color.x, self.color.y, self.color.z })
|
shader:send("color", { self.color.x, self.color.y, self.color.z })
|
||||||
shader:send("time", love.timer.getTime() + self.seed)
|
shader:send("time", love.timer.getTime() + self.seed)
|
||||||
love.graphics.setShader(shader)
|
love.graphics.setShader(shader)
|
||||||
love.graphics.setBlendMode("add")
|
-- love.graphics.setBlendMode("add")
|
||||||
love.graphics.draw(Tree.assets.files.masks.circle128, self.position.x - self.intensity / 2,
|
love.graphics.draw(Tree.assets.files.masks.circle128, self.position.x - self.intensity / 2,
|
||||||
self.position.y - self.intensity / 2, 0, self.intensity / 128,
|
self.position.y - self.intensity / 2, 0, self.intensity / 128,
|
||||||
self.intensity / 128)
|
self.intensity / 128)
|
||||||
|
|||||||
@ -27,7 +27,8 @@ local function new(type, template)
|
|||||||
selector = (require "lib.level.selector").new(),
|
selector = (require "lib.level.selector").new(),
|
||||||
camera = (require "lib.level.camera").new(),
|
camera = (require "lib.level.camera").new(),
|
||||||
turnOrder = (require "lib.level.turn_order").new(),
|
turnOrder = (require "lib.level.turn_order").new(),
|
||||||
render = (require "lib.level.render").new()
|
render = (require "lib.level.render").new(),
|
||||||
|
weather = (require "lib.level.weather").new { ambientLight = Vec3 { 0.36, 0.42, 0.6 }, skyLight = Vec3 { 0.9, 0.9, 0.9 } }
|
||||||
}, level)
|
}, level)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -9,16 +9,17 @@ local render = {}
|
|||||||
render.__index = render
|
render.__index = render
|
||||||
|
|
||||||
function render:clear()
|
function render:clear()
|
||||||
|
local weather = Tree.level.weather
|
||||||
love.graphics.setCanvas(self.shadowLayer)
|
love.graphics.setCanvas(self.shadowLayer)
|
||||||
love.graphics.clear()
|
love.graphics.clear()
|
||||||
love.graphics.setCanvas(self.spriteLayer)
|
love.graphics.setCanvas(self.spriteLayer)
|
||||||
love.graphics.clear()
|
love.graphics.clear()
|
||||||
love.graphics.setCanvas(self.spriteLightLayer)
|
love.graphics.setCanvas(self.spriteLightLayer)
|
||||||
love.graphics.clear()
|
love.graphics.clear(weather.skyLight.x, weather.skyLight.y, weather.skyLight.z)
|
||||||
love.graphics.setCanvas(self.floorLayer)
|
love.graphics.setCanvas(self.floorLayer)
|
||||||
love.graphics.clear()
|
love.graphics.clear()
|
||||||
love.graphics.setCanvas(self.lightLayer)
|
love.graphics.setCanvas(self.lightLayer)
|
||||||
love.graphics.clear()
|
love.graphics.clear(weather.skyLight.x, weather.skyLight.y, weather.skyLight.z)
|
||||||
love.graphics.setCanvas(self.overlayLayer)
|
love.graphics.setCanvas(self.overlayLayer)
|
||||||
love.graphics.clear()
|
love.graphics.clear()
|
||||||
end
|
end
|
||||||
@ -55,6 +56,7 @@ end
|
|||||||
|
|
||||||
function render:draw()
|
function render:draw()
|
||||||
-- пол -> тени -> спрайты -> свет -> оверлей
|
-- пол -> тени -> спрайты -> свет -> оверлей
|
||||||
|
local weather = Tree.level.weather
|
||||||
love.graphics.setCanvas(self.lightLayer)
|
love.graphics.setCanvas(self.lightLayer)
|
||||||
love.graphics.draw(applyBlur(self.shadowLayer, 4 * Tree.level.camera.scale))
|
love.graphics.draw(applyBlur(self.shadowLayer, 4 * Tree.level.camera.scale))
|
||||||
love.graphics.setCanvas()
|
love.graphics.setCanvas()
|
||||||
@ -65,7 +67,7 @@ function render:draw()
|
|||||||
local lightShader = Tree.assets.files.shaders.light_postprocess
|
local lightShader = Tree.assets.files.shaders.light_postprocess
|
||||||
lightShader:send("scene", self.floorLayer)
|
lightShader:send("scene", self.floorLayer)
|
||||||
lightShader:send("light", self.lightLayer)
|
lightShader:send("light", self.lightLayer)
|
||||||
lightShader:send("ambient", { 0.24, 0.28, 0.40 })
|
lightShader:send("ambient", { weather.ambientLight.x, weather.ambientLight.y, weather.ambientLight.z })
|
||||||
love.graphics.setShader(lightShader)
|
love.graphics.setShader(lightShader)
|
||||||
love.graphics.draw(self.floorLayer)
|
love.graphics.draw(self.floorLayer)
|
||||||
|
|
||||||
|
|||||||
12
lib/level/weather.lua
Normal file
12
lib/level/weather.lua
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
--- @class Weather
|
||||||
|
--- @field skyLight Vec3
|
||||||
|
--- @field ambientLight Vec3
|
||||||
|
local weather = {}
|
||||||
|
|
||||||
|
--- @param proto Weather
|
||||||
|
--- @return Weather
|
||||||
|
local function new(proto)
|
||||||
|
return setmetatable(proto, { __index = weather })
|
||||||
|
end
|
||||||
|
|
||||||
|
return { new = new }
|
||||||
Loading…
x
Reference in New Issue
Block a user