100 lines
3.5 KiB
C#
100 lines
3.5 KiB
C#
using Godot;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
|
|
public partial class Cube : Node2D
|
|
{
|
|
private static readonly Rect2I tableRect = new(0, 0, 3, 2);
|
|
private static readonly Rect2I table2Rect = new(0, -1, 3, 1);
|
|
private static readonly Rect2I chairRect = new(1, 1, 1, 2);
|
|
private static readonly Rect2I chair2Rect = new(1, -2, 1, 2);
|
|
private static readonly Rect2I equipRect = new(0, 0, 3, 2);
|
|
private static readonly Rect2I equip2Rect = new(0, -1, 3, 1);
|
|
private static readonly TileMapping[] tableThemes = {
|
|
new(new Vector2I(1, 30), tableRect),
|
|
new(new Vector2I(4, 30), tableRect),
|
|
new(new Vector2I(7, 30), tableRect),
|
|
new(new Vector2I(7, 28), tableRect),
|
|
new(new Vector2I(10, 28), tableRect),
|
|
};
|
|
private static readonly TileMapping[] table2Themes = {
|
|
new(new Vector2I(1, 31), table2Rect),
|
|
new(new Vector2I(4, 31), table2Rect),
|
|
new(new Vector2I(7, 31), table2Rect),
|
|
new(new Vector2I(7, 29), table2Rect),
|
|
new(new Vector2I(10, 29), table2Rect),
|
|
};
|
|
private static readonly TileMapping[] chairThemes = {
|
|
new(new Vector2I(-1, 7), chairRect),
|
|
new(new Vector2I(0, 7), chairRect),
|
|
new(new Vector2I(-1, 9), chairRect),
|
|
new(new Vector2I(0, 9), chairRect),
|
|
};
|
|
private static readonly TileMapping[] chair2Themes = {
|
|
new(new Vector2I(-1, 10), chair2Rect),
|
|
new(new Vector2I(0, 10), chair2Rect),
|
|
new(new Vector2I(-1, 12), chair2Rect),
|
|
new(new Vector2I(0, 12), chair2Rect),
|
|
};
|
|
|
|
private static readonly TileMapping[] equipThemes = {
|
|
// one laptop
|
|
new(new Vector2I(13, 26), equipRect),
|
|
// one laptop with one monitor
|
|
new(new Vector2I(7, 26), equipRect),
|
|
// one desktop PC
|
|
new(new Dictionary<Vector2I, Vector2I>() {
|
|
[new Vector2I(0, 0)] = new Vector2I(11, 17),
|
|
[new Vector2I(1, 0)] = new Vector2I(8, 32),
|
|
[new Vector2I(2, 0)] = new Vector2I(9, 32),
|
|
[new Vector2I(0, 1)] = new Vector2I(11, 18),
|
|
[new Vector2I(1, 1)] = new Vector2I(8, 33),
|
|
[new Vector2I(2, 1)] = new Vector2I(9, 33),
|
|
}),
|
|
// one desktop PC with one monitors
|
|
new(new Vector2I(7, 32), equipRect),
|
|
};
|
|
|
|
private static readonly TileMapping[] equip2Themes = {
|
|
// one laptop
|
|
new(new Vector2I(13, 31), equip2Rect),
|
|
// one laptop with one monitor
|
|
new(new Dictionary<Vector2I, Vector2I>() {
|
|
[new Vector2I(0, -1)] = new Vector2I(13, 32),
|
|
[new Vector2I(1, -1)] = new Vector2I(10, 7),
|
|
[new Vector2I(2, -1)] = new Vector2I(15, 32),
|
|
}),
|
|
// one desktop PC
|
|
new(new Dictionary<Vector2I, Vector2I>() {
|
|
[new Vector2I(0, -1)] = new Vector2I(13, 32),
|
|
[new Vector2I(1, -1)] = new Vector2I(14, 32),
|
|
[new Vector2I(2, -1)] = new Vector2I(15, 30),
|
|
}),
|
|
// one desktop PC with one monitors
|
|
new(new Vector2I(13, 33), equip2Rect),
|
|
};
|
|
|
|
// Called when the node enters the scene tree for the first time.
|
|
public override void _Ready()
|
|
{
|
|
RandomChangeTheme();
|
|
}
|
|
|
|
// Called every frame. 'delta' is the elapsed time since the previous frame.
|
|
public override void _Process(double delta)
|
|
{
|
|
}
|
|
|
|
public void RandomChangeTheme() {
|
|
tableThemes[GD.RandRange(0, tableThemes.Length-1)].Apply(GetNode<TileMapLayer>("Desk"));
|
|
table2Themes[GD.RandRange(0, table2Themes.Length-1)].Apply(GetNode<TileMapLayer>("Desk2"));
|
|
chairThemes[GD.RandRange(0, chairThemes.Length-1)].Apply(GetNode<TileMapLayer>("Chair"));
|
|
chair2Themes[GD.RandRange(0, chair2Themes.Length-1)].Apply(GetNode<TileMapLayer>("Chair2"));
|
|
equipThemes[GD.RandRange(0, equipThemes.Length-1)].Apply(GetNode<TileMapLayer>("Equip"));
|
|
var x =GD.RandRange(0, equip2Themes.Length-1);
|
|
GD.Print(GD.RandRange(0, equip2Themes.Length-1));
|
|
equip2Themes[x].Apply(GetNode<TileMapLayer>("Equip2"));
|
|
}
|
|
|
|
}
|