Merge in CGD/gather-and-defend from bug/levelManager_auto_generation to main
* commit 'da519fe75fee41e76f13ee7db60fbc0fbf4afa4b':
enlevé génération automatique de Level Manager
Merge in CGD/gather-and-defend from feature/LoadSave to main
* commit 'ec94ccfc145829cf329792d9e66188da7663b54b':
ajout de doc xml pour la classe database
manage when tiles or objects are removed
tidied up + addressed issue with non-LevelTiles
save / load dans un fichier
working save / load functions
travail sur le save et le load
some tidying up
made LevelObject and Tile methods virtual
finish to hijack update loop + serialization
tweaks to LevelManager
problème : Le level manager n'était pas notified quand un objet ou une tile était enlevée du niveau
solution : LevelTile et LevelObject gèrent l'effaçage avec RefreshTile et OnDestroy.
problèmes :
- mon code et l'arrangement des fichiers avait besoin d'un peu de tidy up
- les tiles qui n'étaient pas des LevelTile ne loadaient pas
solution :
- rangé un peu + respecté structure une classe - un fichier
- tenté un build pour voir si tout roulait comme il faut, ce qui m'a porté à ajouter des directives de preprocessing et à bouger les custom inspectors dans le dossier Editor.
- ajouté une représentation simple des tuiles non-LevelTile dans la sauvegarde.
problème : le save et le load fonctionnait avec un string en mémoire
solution : créer un fichier save.txt dans les assets quand on sauvegarde, et lire de ce fichier quand on load.
problème : au moment de load une save, les tiles qui spawnaient des GameObjects au start les spawnaient malgré qu'ils l'avait déjà spawné dans la dernière session de jeu + problèmes de sérialisation divers
solution : spawner le GameObject seulement si le lifetime de la tile est de zéro. correction des différents problèmes de sérialisation.
note : les tiles ne semblent vraiment pas être faites pour avoir une update loop. mais bon, maintenant ça marche.
problème : le fait que les méthodes update/start/destroy etc des ILevelObject soit abstraites était restreignant (obligation de override)
solution : j'ai rendu les méthodes virtuelles à la place de abstraites.
problem : tiles dont have an update loop, neither do they have a start / destroy method
solution : finished working on a way to create a custom start/update/destroy pipeline for the projects custom tiles. it's using LevelManagerScript as to Update.
note : also created a database and a start of serialization system so we can save and load stuff.
le fait qu'il faille updater des tiles du tilemap posait un réel problème
création d'un système d'héritage pour que les game objects et les tiles puissent cohabiter dans une même game loop
- ILevelObject contient des fonctions de start, de destroy, d'update, d'égalité et une position
- LevelTile et LevelObject héritent de ILevelObject et peuvent être hérité par des tiles ou des MonoBehaviours.
- le level manager est un monobehaviour singleton qui update tous les ILevelObjects à chaque frame.
Merge in CGD/gather-and-defend from maintenance/textmeshproAssemblyImport to main
* commit '5d9f4d5a964894c5619e979c73065b69cd57f371':
Ajout de Unity.TestMeshPro au GameAssembly
Merge in CGD/gather-and-defend from feature/gestionRessource to main
* commit 'd8490535960e2f99e8ea37e87fefeddb83736391':
SUppression de ResourceMaker et mise à jour de la scène de test des ressources
Changer le comportement de ResourceMaker et ajout de commentaires
Avancement sur coroutine de génération de ressources.
Update sur scene de TestResource
Debut de la scene de TestResource
Creation de ResourceManager, ResourceMaker et ResourceRemover
ResourceMaker sera utilisé pour géré la création de mini ressources cliquables dans une autre tâche.
ResourceRemover change le texte en vert si les ressources nécessaires sont disponibles ou en rouge dans le cas contraire.
Merge in CGD/gather-and-defend from maintenance/tidyUpRepo to main
* commit '5347f2c3fff0fbac0807beb259f6b440dea16e37':
ranger les scripts du LevelEditor
Merge in CGD/gather-and-defend from feature/LevelEditor_GenerateTilemaps to main
* commit 'ac0e52e0df5857fc846810e4bfc5b6c613e9f4ed':
Maintenant, le level editor génère les tilemaps
puisqu'on utilise des assembly definitions maintenant, il est important que les scripts soient posés dans le dossier Scripts pour qu'ils soient accessibles aux autres scripts. Il a donc fallu déplacer les scripts se trouvant dans le dossier LevelEditor.
le level editor se fiait à ce que le designer crée les tilemaps nécessaires avant de cliquer sur load
maintenant le level editor génère les bons tilemaps avec leurs spécificités (layers sorting order, collider, visibilité etc)
Changé la coroutine de ResourceMaker vers ResourceManager.
Changé ResourceMaker pour permettre d'augmenter ou de réduire la quantité de resources produites.
Merge in CGD/gather-and-defend from feature/LevelManager_Resources to main
* commit 'dec5aeb8572872f8c73a8d83ddd9bf685f2bba9b':
ajouter la tile directement au LevelManager
retiré debug servant à tester
tidy up level manager related scripts
level manager et une ferme
au lieu d'ajouter une classe data intermédiaire.
l'idée est que ça rend les modifications complexes d'avoir un intermédiaire. Autant ajouter la tuile direct.
pas de moyen d'accéder et de gérer et d'accéder aux unités / props sur la map
- ajout d'un LevelManager qui contient tous les objet de niveau (ILevelObject)
- ajout d'un ResourceTile qui s'ajoute lui-même au level manager, et contient ses informations.
ResourceTile pas terminée puisque le genre de resource est dépendant du ResourceManager, pas encore contenu dans main.
Ajout de ResourceText. Permet de montrer l'inventaire des ressources dynamiquement.
Modification de la gestion d'instance dans ResourceManager
Changement des boutons pour la version TextMeshPro
Debut de la coroutine de ResourceMaker
Merge in CGD/gather-and-defend from dev/Entities-attacks to main
* commit '7d225ccbd0149e6c7128d8dc924fb4487937fb64':
v3
v2
no message
v1 attack ally and enemy
Merge in CGD/gather-and-defend from feature/levelEditor to main
* commit 'ebe035840cc062c26e9d5bfff0592841f676280d':
tidy up + add test tiles + small doc
load et save feature pour level
La feature était désorganisé et il n'y avait rien pour tester ou démontrer la fonctionalité
J'ai rangé tous les scripts dans des dossiers enfants de LevelEditor.
Tous les fichiers du level editor sont dans le namespace GatherAndDefend.LevelEditor.
J'ai ajouté un type de tile qui peut instantier un prefab au startup.
J'ai créé un level de test.
sauvegarder et charger des niveaux à partir d'un tilemap
un scriptable object contient les informations pour le niveau
un script avec un custom editor permet de sauvegarder un ensemble de tilemaps, ou de charger l'information contenue dans un scriptable object
Merge in CGD/gather-and-defend from art/addDemoProjectSprites to main
* commit 'b73eb9e7b37963c40905ec9f6e45a6ef1efaa44e':
Added demo project sprites and a basic animated stickman