Загрузка данных


local Lighting = game:GetService("Lighting")
local Workspace = game:GetService("Workspace")

-- ==========================================
-- 1. НАСТРОЙКА ОСВЕЩЕНИЯ И АТМОСФЕРЫ (VFX)
-- ==========================================
Lighting.Technology = Enum.Technology.ShadowMap
Lighting.Ambient = Color3.fromRGB(150, 140, 200) -- Легкий фиолетовый оттенок в тенях
Lighting.OutdoorAmbient = Color3.fromRGB(170, 160, 220)
Lighting.Brightness = 2.5
Lighting.ColorShift_Top = Color3.fromRGB(255, 230, 200) -- Теплый свет солнца

-- Удаляем старые эффекты, если были
for _, child in ipairs(Lighting:GetChildren()) do
    if child:IsA("PostEffect") or child:IsA("Atmosphere") or child:IsA("Sky") then
        child:Destroy()
    end
end

-- Цветокоррекция (делает цвета сочными, как на арте)
local colorCorrection = Instance.new("ColorCorrectionEffect")
colorCorrection.Saturation = 0.4
colorCorrection.Contrast = 0.1
colorCorrection.TintColor = Color3.fromRGB(255, 245, 255)
colorCorrection.Parent = Lighting

-- Свечение (мягкий блюм для неоновых деталей)
local bloom = Instance.new("BloomEffect")
bloom.Intensity = 0.6
bloom.Size = 24
bloom.Threshold = 2
bloom.Parent = Lighting

-- ==========================================
-- 2. ГЕНЕРАЦИЯ БАЗОВЫХ ОСТРОВОВ И ЗОН
-- ==========================================
local mapFolder = Instance.new("Folder")
mapFolder.Name = "BubbleGumMap_Base"
mapFolder.Parent = Workspace

local function createPlatform(size, position, color, name)
    local pad = Instance.new("Part")
    pad.Shape = Enum.PartType.Cylinder
    pad.Size = size
    pad.Position = position
    -- Поворачиваем цилиндр, чтобы он лежал плашмя
    pad.CFrame = CFrame.new(position) * CFrame.Angles(0, 0, math.rad(90))
    pad.Color = color
    pad.Material = Enum.Material.SmoothPlastic
    pad.Anchored = true
    pad.Name = name
    pad.Parent = mapFolder
    return pad
end

-- Цвета
local grassMint = Color3.fromRGB(152, 255, 216)
local baseBlue = Color3.fromRGB(124, 161, 181)

-- Центральный остров (Spawn)
createPlatform(Vector3.new(4, 80, 80), Vector3.new(0, 0, 0), baseBlue, "Center_Base")
createPlatform(Vector3.new(2, 78, 78), Vector3.new(0, 3, 0), grassMint, "Center_Grass")

-- Остров магазина (Слева)
createPlatform(Vector3.new(10, 60, 60), Vector3.new(-70, -5, -20), baseBlue, "Shop_Base")
createPlatform(Vector3.new(2, 58, 58), Vector3.new(-70, 1, -20), grassMint, "Shop_Grass")

-- Остров с яйцами (Справа)
createPlatform(Vector3.new(8, 65, 65), Vector3.new(70, -2, -10), baseBlue, "Egg_Base")
createPlatform(Vector3.new(2, 63, 63), Vector3.new(70, 3, -10), grassMint, "Egg_Grass")

-- ==========================================
-- 3. ГИГАНТСКИЕ ПУЗЫРИ (Зоны)
-- ==========================================
local function createBubbleZone(size, position, color, name)
    local bubble = Instance.new("Part")
    bubble.Shape = Enum.PartType.Ball
    bubble.Size = Vector3.new(size, size, size)
    bubble.Position = position
    bubble.Color = color
    -- ForceField дает идеальный эффект голографического мыльного пузыря без лагов
    bubble.Material = Enum.Material.ForceField 
    bubble.Anchored = true
    bubble.CanCollide = false -- Игроки проходят насквозь
    bubble.Name = name
    bubble.Parent = mapFolder
    return bubble
end

-- Пузырь спавна (в центре)
createBubbleZone(45, Vector3.new(0, 25, 0), Color3.fromRGB(200, 180, 255), "Spawn_Bubble")

-- Пузырь для яиц (справа)
createBubbleZone(50, Vector3.new(70, 28, -10), Color3.fromRGB(180, 220, 255), "Egg_Bubble")

print("Освещение, фильтры и база островов сгенерированы!")