Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/6.4 refactoring components #176

Open
wants to merge 11 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 8 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 29 additions & 13 deletions src/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,25 +12,41 @@

### Tecnologias do Jogo

- **Godot Engine 4+**: Motor de jogo utilizado para desenvolver o projeto.
- **Godot 4+**: Engine utilizada para desenvolver o projeto;
- **C#**: Linguagem de programação utilizada para a lógica do jogo.

### Estrutura da framework

```pwsh
```bash
.
└── src
├── addons # bibliotecas third party e plugins do editor
├── assets # assets como sprites, sons, texturas e respectivos arquivos de configuração
├── features # funcionalidades do jogo
│ ├── [...feature] # pastas específicas de cada funcionalidade
│ ├── common # funcionalidades comuns
│ └── scenes # cenas específicas das funcionalidades
├── helpers # classes utilitárias
├── resources # resources do Godot
├── scenes # cenas da framework
│ └── components # nodes a serem exibidos nas cenas e respectivos arquivos de configuração
└── tests # testes do projeto
├── addons # bibliotecas third party
│ └── @spacewiz # plugins desenvolvidos para o projeto
├── assets # assets como sprites, sons, texturas e seus arquivos de configuração
├── controllers # comunicação entre a view e o model, interatividade e controle de eventos
│ # lógica de alto nível, como o controle do estado do jogo, cenas e transições
├── events # comunicação por signals entre os models, views e controllers
│ # TODO: bus, handlers, types
├── helpers # classes utilitárias
├── models
│ ├── data # estruturas dos dados
│ ├── services # manipulação de dados e regras de negócio
│ └── stores # estado em tempo de execução (cache e gerenciamento)
├── renderers # visualização e renderização do jogo
│ ├── components # componentes reutilizáveis
│ ├── entities # entidades do jogo
│ ├── scenes # cenas do jogo
│ └── ui # elementos de interface do usuário
├── resources # arquivos de configuração estáticos do jogo
└── tests # testes unitários e cenas específicas para testes
```

## Ambiente de Desenvolvimento
Expand Down
1 change: 1 addition & 0 deletions src/assets/editor/component-2d.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
37 changes: 37 additions & 0 deletions src/assets/editor/component-2d.svg.import
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://8qjof4th0hph"
path="res://.godot/imported/component-2d.svg-693354b67b6ec21bc062de4e69cf7860.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://assets/editor/component-2d.svg"
dest_files=["res://.godot/imported/component-2d.svg-693354b67b6ec21bc062de4e69cf7860.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false
1 change: 1 addition & 0 deletions src/assets/editor/component-3d.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
37 changes: 37 additions & 0 deletions src/assets/editor/component-3d.svg.import
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://d1dsrwcub67sk"
path="res://.godot/imported/component-3d.svg-29408208e061cd0e639da0df2b3ccd98.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://assets/editor/component-3d.svg"
dest_files=["res://.godot/imported/component-3d.svg-29408208e061cd0e639da0df2b3ccd98.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false
1 change: 1 addition & 0 deletions src/assets/editor/component-ui.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
37 changes: 37 additions & 0 deletions src/assets/editor/component-ui.svg.import
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://bp82a77vxajmr"
path="res://.godot/imported/component-ui.svg-af62a7b148b3125632c192120a76800f.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://assets/editor/component-ui.svg"
dest_files=["res://.godot/imported/component-ui.svg-af62a7b148b3125632c192120a76800f.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false
1 change: 1 addition & 0 deletions src/assets/editor/entity-3d.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
37 changes: 37 additions & 0 deletions src/assets/editor/entity-3d.svg.import
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://d3ht0y574oi3k"
path="res://.godot/imported/entity-3d.svg-5df10caed523e7365f87027315567534.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://assets/editor/entity-3d.svg"
dest_files=["res://.godot/imported/entity-3d.svg-5df10caed523e7365f87027315567534.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false
1 change: 1 addition & 0 deletions src/assets/game_icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://bmcfxb2srpt1o"
path="res://.godot/imported/game_icon.svg-41ccc983228d67910926b618217510d7.ctex"
path="res://.godot/imported/game_icon.svg-3b3ba44fde827daca58c84390ae3f62b.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://assets/icons/game_icon.svg"
dest_files=["res://.godot/imported/game_icon.svg-41ccc983228d67910926b618217510d7.ctex"]
source_file="res://assets/game_icon.svg"
dest_files=["res://.godot/imported/game_icon.svg-3b3ba44fde827daca58c84390ae3f62b.ctex"]

[params]

Expand Down
1 change: 0 additions & 1 deletion src/assets/icons/game_icon.svg

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

using DiceRolling.Logs;

namespace DiceRolling.Battle;
namespace DiceRolling.Controllers;

public partial class BattleManager : Node3D {
public override void _Ready() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using Godot;

namespace DiceRolling.Menus;
namespace DiceRolling.Controllers;

public partial class GameOverManager : Node2D {
public override void _Ready() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using Godot;

namespace DiceRolling.UI;
namespace DiceRolling.Controllers;

public enum GameplayScenes {
GameplayLobby,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using Godot;

namespace DiceRolling.Lobby;
namespace DiceRolling.Controllers;

public partial class LobbyManager : Node2D {
public override void _Ready() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using Godot;

namespace DiceRolling.Menus;
namespace DiceRolling.MenuControllers;

public partial class MainMenuManager : Node2D {
public override void _Ready() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using Godot;

namespace DiceRolling.UI;
namespace DiceRolling.Controllers;

public enum MenuScenes {
MainMenu,
Expand Down
36 changes: 36 additions & 0 deletions src/events/EventBus.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
using Godot;
using DiceRolling.Entities;
using DiceRolling.Components;

namespace DiceRolling.Events;

[Tool]
public partial class EventBus : Node {
[Signal] public delegate void ComponentSelectedEventHandler(Node component);
[Signal] public delegate void ComponentUnselectedEventHandler(Node component);

private static EventBus? _instance;

public static EventBus Instance {
get {
_instance ??= new EventBus();
return _instance;
}
}

public override void _Ready() {
_instance = this;
}

public void OnComponentSelected(Node component) {
EmitSignal(nameof(ComponentSelected), component);

if (component is SelectableComponent selectableComponent && selectableComponent.GetParent<Entity3D>() is Entity3D parentEntity && parentEntity.Data is { } data) {
GD.Print("Selected Data ID:", data.Id);
}
}

public void OnComponentUnselected(Node component) {
EmitSignal(nameof(ComponentUnselected), component);
}
}
Loading
Loading