Engine
Engine copied to clipboard
Build your game with mods,用模组构建你的游戏。
尝试渲染字体内不存在的字符时抛出NPE 崩溃报告: [Crash_2021-11-06_13-44-22_CLIENT.txt](https://github.com/UnknownDomainGames/PanguEngine/files/7489960/Crash_2021-11-06_13-44-22_CLIENT.txt) 至少应该: 1. 别抛出任何异常。 2. 渲染一个字符以警告该字符不支持。
https://github.com/UnknownDomainGames/PanguEngine/blob/79d0ee15a8fcb22dd12c3e11cb8a2075f8ec724b/graphics/src/main/java/engine/graphics/font/TextMesh.java#L8-L13 `TextMesh`类中会存储文本网格的纹理。 https://github.com/UnknownDomainGames/PanguEngine/blob/79d0ee15a8fcb22dd12c3e11cb8a2075f8ec724b/graphics/src/main/java/engine/graphics/lwjgl/font/FontPlaneTexture.java#L72-L77 当`FontPlaneTexture#dirty`为true时(例如调用`FontPlaneTexture#putBlock`),会在下一渲染循环中调用`FontPlaneTexture#bakeTexture`,该方法将会`dispose`字体纹理对象,致使所引用该纹理的所有`TextMesh`对象无法正常渲染。
``` engine.event.EventException: Cannot handle event. EventType: engine.event.block.BlockPlaceEvent$Post at engine.event.SimpleEventBus$Builder.lambda$new$0(SimpleEventBus.java:196) at engine.event.SimpleEventBus.post(SimpleEventBus.java:37) at engine.client.world.WorldClient.setBlock(WorldClient.java:267) at engine.world.BlockSetter.setBlock(BlockSetter.java:12) at engine.item.BlockItem.lambda$initComponent$0(BlockItem.java:24) at engine.world.hit.BlockHitResult.ifSuccess(BlockHitResult.java:65) at engine.item.BlockItem.lambda$initComponent$1(BlockItem.java:24) at engine.client.input.controller.EntityCameraController.lambda$onInteract$14(EntityCameraController.java:193) at java.base/java.util.Optional.ifPresent(Optional.java:183) at engine.client.input.controller.EntityCameraController.lambda$onInteract$15(EntityCameraController.java:192) at engine.item.ItemStack.ifNonEmpty(ItemStack.java:53) at...
1. Use [custom domain name](https://jitpack.io/docs/#custom-domain-name) as artifact group 2. Add GitHub [WebHook](https://jitpack.io/docs/BUILDING/#building-ahead-of-time) to build on JitPack ahead of time when pushed
https://github.com/UnknownDomainGames/PanguEngine/blob/81b8276f1773d35c56edf715fdbff7dc01854351/game-engine/src/main/java/engine/client/i18n/LocaleManager.java#L82-L90 Maybe we should use the `Properties` class to load the language file, or a similar way.
出于一些顾虑和需要,我计划: 1. 将项目许可证从LGPL 3.0更改为Apache License 2.0。此举将有利于开发者更好地使用本引擎获取收入,同时也有利于本组织在推进商业化过程中可能涉及到的LGPL 3.0许可证所造成的不便。 2. 为项目附加贡献者协议(CLA)。使贡献者将其贡献的源代码、艺术作品等创作作品的权利授权给本组织(即Unknown Domain Game)管理。此举将便于本项目基于情况更改协议,并在项目面临一些挑战时做出及时的应对。但出于一些顾虑,此举可能会引起贡献者的不满,同时项目的未来走向也将完全取决于权利所有者(即本组织)。点此阅读[贡献者协议草稿](https://gist.github.com/Mouse0w0/92d017a62fc6d89508cf4e397bad9539)。 鉴于所有贡献者均为中国人,本次讨论的语言以中文为主。如有意见和建议可在本Issue下comment,同意相关决议请在本Issue下发表comment确认,可特别声明仅同意第一条或第二条。 贡献者: @cvrunmin @ci010 @jihuayu @byxiaobai @iTNTPiston @WangJiarun @XiaoLeGG @a1640727878 @DrMagicalStone @zbwxtex @ningwang747 @NekoCaffeine @NanamiArihara