Files
FOU/Scripts/Level.cs
2023-10-16 13:46:42 +02:00

45 lines
1.1 KiB
C#

using FOU.Scripts.Elements;
using Godot;
namespace FOU.Scripts;
public class Level {
private int mSizeX;
private int mSizeY;
private Image mImage;
private Element[,] mPixels;
public Level(int x, int y) {
GD.Print($"Generating level ({x}:{y})");
mSizeX = x;
mSizeY = y;
mPixels = new Element[x, y];
mImage = Image.Create(mSizeX, mSizeY, false, Image.Format.Rgb8);
mImage.Fill(Colors.Black);
}
public void WritePixel(int x, int y, int size) {
for (int i = -size/2; i < size/2; i++) {
for (int j = -size/2; j < size/2; j++) {
int X = Mathf.Clamp(x + i, 0, mSizeX);
int Y = Mathf.Clamp(y + j, 0, mSizeY);
mPixels[X,Y] = new Dirt();
}
}
}
public Image DrawLevel() {
for (int x = 0; x < mSizeX; x++) {
for (int y = 0; y < mSizeY; y++) {
if (mPixels[x,y] == null) continue;
mImage.SetPixel(x,y, mPixels[x,y].Color);
}
}
return mImage;
}
}