This commit is contained in:
Smok1e 2024-05-09 14:56:35 +03:00
parent 51f4b88207
commit 0549b379d9
3 changed files with 95 additions and 0 deletions

View File

@ -0,0 +1 @@
{["speed"]=2,["backgroundColor"]=3351743}

BIN
Wallpapers/DVD.wlp/Logo.pic Normal file

Binary file not shown.

View File

@ -0,0 +1,94 @@
local screen = require("Screen")
local color = require("Color")
local filesystem = require("Filesystem")
local system = require("System")
local GUI = require("GUI")
local image = require("Image")
--------------------------------------------------------------------------------
local workspace, wallpaper = select(1, ...), select(2, ...)
local configPath = filesystem.path(system.getCurrentScript()) .. "Config.cfg"
local config = {
backgroundColor = 0x000000,
speed = 1
}
if filesystem.exists(configPath) then
for key, value in pairs(filesystem.readTable(configPath)) do
config[key] = value
end
end
local function saveConfig()
filesystem.writeTable(configPath, config)
end
--------------------------------------------------------------------------------
local logo = image.load(filesystem.path(system.getCurrentScript()) .. "Logo.pic")
local logoPosition = {
x = math.random(1, wallpaper.width - image.getWidth (logo)),
y = math.random(1, wallpaper.height - image.getHeight(logo))
}
local logoSpeed = {
x = (2 * math.random() - 1) * 10,
y = (2 * math.random() - 1) * 10
}
local lastUpdateTime = computer.uptime()
--------------------------------------------------------------------------------
wallpaper.draw = function(wallpaper)
local currentTime = computer.uptime()
local deltaTime = currentTime - lastUpdateTime
lastUpdateTime = currentTime
screen.drawRectangle(wallpaper.x, wallpaper.y, wallpaper.width, wallpaper.height, config.backgroundColor, 0, " ")
screen.drawImage(wallpaper.x + math.floor(logoPosition.x), wallpaper.y + math.floor(logoPosition.y), logo)
logoPosition.x = logoPosition.x + logoSpeed.x * config.speed * deltaTime
logoPosition.y = logoPosition.y + logoSpeed.y * config.speed * deltaTime
if logoPosition.x < 1 or logoPosition.x >= wallpaper.width - image.getWidth(logo) then
logoSpeed.x = -logoSpeed.x
end
if logoPosition.y < 1 or logoPosition.y >= wallpaper.height - image.getHeight(logo) then
logoSpeed.y = -logoSpeed.y
end
end
wallpaper.configure = function(layout)
layout:addChild(GUI.colorSelector(1, 1, 36, 3, config.backgroundColor, "Background color")).onColorSelected = function(_, object)
config.backgroundColor = object.color
saveConfig()
end
local speedSlider = layout:addChild(
GUI.slider(
1, 1,
36,
0x66DB80,
0xE1E1E1,
0xFFFFFF,
0xA5A5A5,
0, 50,
config.speed,
false,
"Speed: "
)
)
speedSlider.onValueChanged = function()
config.speed = math.floor(speedSlider.value)
saveConfig()
end
end
--------------------------------------------------------------------------------