mirror of
https://github.com/IgorTimofeev/MineOS.git
synced 2025-12-20 02:59:20 +01:00
Fix wallpapers
This commit is contained in:
parent
ec55f179f4
commit
318c96d948
@ -36,8 +36,8 @@ local function reset()
|
||||
local resX, resY = screen.getResolution()
|
||||
for i = 1, config.lineCount do
|
||||
table.insert(points, {
|
||||
x = math.random(0, resX - 1),
|
||||
y = math.random(0, (resY - 1) * 2),
|
||||
x = math.random(0, wallpaper.width - 1),
|
||||
y = math.random(0, (wallpaper.height - 1) * 2),
|
||||
vx = (2 * math.random() - 1) * 25,
|
||||
vy = (2 * math.random() - 1) * 25
|
||||
})
|
||||
|
||||
@ -15,7 +15,8 @@ local config = {
|
||||
snowflakeColor = 0xFFFFFF,
|
||||
snowflakeAmount = 20,
|
||||
maxStackHeight = 10,
|
||||
maxWind = 2
|
||||
maxWind = 2,
|
||||
speed = 1
|
||||
}
|
||||
|
||||
if filesystem.exists(configPath) then
|
||||
@ -81,8 +82,8 @@ wallpaper.draw = function(wallpaper)
|
||||
snowflake = snowflakes[i]
|
||||
|
||||
screenSemiPixelSet(
|
||||
mathFloor(wallpaper.x + snowflake.x),
|
||||
mathFloor(wallpaper.y + snowflake.y),
|
||||
mathFloor( wallpaper.x + snowflake.x),
|
||||
mathFloor(2 * wallpaper.y + snowflake.y),
|
||||
snowflake.color
|
||||
)
|
||||
end
|
||||
@ -91,7 +92,7 @@ wallpaper.draw = function(wallpaper)
|
||||
local stackHeight
|
||||
|
||||
for x, stackHeight in pairs(stacks) do
|
||||
screenDrawSemiPixelRectangle(wallpaper.x + x, wallpaper.y + wallpaper.height * 2 - stackHeight + 1, 1, stackHeight, config.snowflakeColor)
|
||||
screenDrawSemiPixelRectangle(wallpaper.x + x, 2 * (wallpaper.y + wallpaper.height) - stackHeight - 1, 1, stackHeight, config.snowflakeColor)
|
||||
|
||||
if stackHeight > config.maxStackHeight then
|
||||
stacks[x] = stackHeight - 2
|
||||
@ -102,7 +103,7 @@ wallpaper.draw = function(wallpaper)
|
||||
local currentTime = computer.uptime()
|
||||
local deltaTime = (currentTime - lastUpdateTime) * 20
|
||||
|
||||
wind = wind + .1 * (2 * mathRandom() - 1) * deltaTime
|
||||
wind = wind + .1 * (2 * mathRandom() - 1) * deltaTime * config.speed
|
||||
if wind > config.maxWind then wind = config.maxWind end
|
||||
if wind < -config.maxWind then wind = -config.maxWind end
|
||||
|
||||
@ -113,8 +114,8 @@ wallpaper.draw = function(wallpaper)
|
||||
while i <= #snowflakes do
|
||||
snowflake = snowflakes[i]
|
||||
|
||||
snowflake.y = snowflake.y + deltaTime * snowflake.speed
|
||||
snowflake.x = snowflake.x + deltaTime * (wind * snowflake.speed + snowflake.vx)
|
||||
snowflake.y = snowflake.y + deltaTime * config.speed * snowflake.speed
|
||||
snowflake.x = snowflake.x + deltaTime * config.speed * (wind * snowflake.speed + snowflake.vx)
|
||||
|
||||
snowflake.vx = snowflake.vx + (mathRandom() * 2 - 1) * 0.1 * deltaTime
|
||||
|
||||
@ -215,4 +216,26 @@ wallpaper.configure = function(layout)
|
||||
config.maxStackHeight = math.floor(maxStackHeightSlider.value)
|
||||
saveConfig()
|
||||
end
|
||||
|
||||
local speedSlider = layout:addChild(
|
||||
GUI.slider(
|
||||
1, 1,
|
||||
36,
|
||||
0x66DB80,
|
||||
0xE1E1E1,
|
||||
0xFFFFFF,
|
||||
0xA5A5A5,
|
||||
20, 1000,
|
||||
config.speed * 100,
|
||||
false,
|
||||
"Speed: ",
|
||||
"%"
|
||||
)
|
||||
)
|
||||
|
||||
speedSlider.roundValues = true
|
||||
speedSlider.onValueChanged = function()
|
||||
config.speed = speedSlider.value / 100
|
||||
saveConfig()
|
||||
end
|
||||
end
|
||||
@ -121,7 +121,7 @@ wallpaper.draw = function(wallpaper)
|
||||
local t = config.speed * (computer.uptime() - startTime) / 10
|
||||
|
||||
local lightPos = {lightSpinRadius * math.cos(t), lightSpinRadius * 0.5 * math.cos(t), lightSpinRadius * math.sin(t)}
|
||||
local cx, cy = math.floor(wallpaper.width / 2), wallpaper.height
|
||||
local cx, cy = wallpaper.x + math.floor(wallpaper.width / 2), 2 * wallpaper.y + wallpaper.height
|
||||
|
||||
screen.drawRectangle(wallpaper.x, wallpaper.y, wallpaper.width, wallpaper.height, config.backgroundColor, 0, " ")
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user