Giter Club home page Giter Club logo

engine's Introduction

Pangu Engine

Java Version All Contributors License Discord Onlines GitHub Workflow Status Latest Version

用模组构建你的游戏。

Build your game with mods.

项目简介(Introducing Project)

安装(Install)

$ git clone https://github.com/UnknownDomainGame/PanguEngine.git
$ cd PanguEngine
$ gradlew install

贡献代码(Contributing)

请阅读我们的贡献指南:简体中文(zh_CN)

Please read our contribution guide: English(en_US)

你可以在Projects了解我们正在进行的工作。

You can learn about what we are doing in Projects.

捐助(Support)

如果你喜欢本项目并想捐助本项目,你可以在下列链接捐助我们:爱发电

相关链接(Links)

engine's People

Contributors

a1640727878 avatar argon4w avatar byxiaobai avatar ci010 avatar cvrunmin avatar defoliation1 avatar drmagicalstone avatar jihuayu avatar lasmgratel avatar mouse0w0 avatar nekocaffeine avatar ningwang747 avatar pistonight avatar xiaolegg avatar xtexchooser avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

engine's Issues

Rewrite rendering

Now, the rendering isn't maintainable. It's so bad that I can't start to maintain it. So I think we need rewrite it.

Targets:

  • Independent light shadow manager, support light and shadow.
  • Combine 2D (Such as GUI, HUD) and 3D (Such as world) rendering.
  • Clear rendering process.
  • Extensible rendering type.
  • Higher levels of abstraction, further separation from the OpenGL.
  • Support material and independent material manager.

More GUI components

Sort by priority:

  • ItemView
  • ToggleButton
  • CheckBox
  • Slider
  • ScrollBar
  • ScrollPane
  • ListView

Renderer registry

By providing registry which use special key, manage renderer of Item, Entity.

WebView GUI component

I plan to support WebView component for GUI. It bases on Chromium Embedded Framework (CEF) and JCEF.

By using WebView, we can enjoy convenient and expansibility which provide by HTML5, CSS3 and JavaScript. But at the cost, we have to pay for performance.

Now I'm working for MyCEF, but I have some troubles.

If you have any question, please comment.

I18n

国际化模块设计方案:

  1. 全局国际化管理
    由引擎负责国际化的全权管理,各模组所有本地化文件均合并到统一管理器中。
  2. 模组国际化管理
    由模组自己负责国际化的管理。
  3. 模组依赖链国际化管理
    由模组自己负责国际化的管理,此外模组还可以使用其依赖的模组的国际化。

Item events and behaviors notification

  • Click

当持有物品的容器左击物品时调用。

Event Fields: ItemStack, Cause

  • Activate

当持有物品的容器右击物品时调用。

Event Fields: ItemStack, Cause

  • ClickBlock

当持有物品的容器使用物品打击方块时调用。

Event Fields: Container, ItemStack, Cause

  • ClickEntity

当持有物品的容器使用物品打击实体时调用。

Event Fields: Container, ItemStack, Cause

  • ActivateBlock

当持有物品的容器对方块使用物品时调用。

Event Fields: Container, ItemStack, Cause

  • ActivateEntity

当持有物品的容器对实体使用物品时调用。

Event Fields: Container, ItemStack, Cause

  • Use.Start

当持有物品的容器开始使用物品时调用。

Event Fields: Container, ItemStack

  • Use.Tick

当持有物品的容器正在使用物品时调用。

Event Fields: Container, ItemStack, Time

  • Use.Finish

当持有物品的容器完成使用物品时调用。

Event Fields: Container, ItemStack, Time

  • Use.Stop

当持有物品的容器终止使用物品时调用。

Event Fields: Container, ItemStack, Time

Block Events and Behaviors Notification

  • Click

当方块被鼠标左键点击时trigger。

Event Fields: Entity, BlockPos, Block

  • Activate

当方块被鼠标鼠标右键点击时trigger。

Event Fields: Entity, BlockPos, Block

  • NeighborChange

当邻近方块状态变更时trigger。

Event Fields: ThisBlock, ThisBlockPos, Entity, BlockPos, OldBlock, NewBlock, BlockChangeCause

  • Change

当方块被被变更时通知。

Event Fields: Entity, BlockPos, OldBlock, NewBlock, BlockChangeCause

  • Place

当方块被实际放置时通知NewBlock

Event Fields: Entity, BlockPos, OldBlock, NewBlock, BlockChangeCause

  • Replace

当方块被实际取代时通知OldBlock

Event Fields: Entity, BlockPos, OldBlock, NewBlock, BlockChangeCause

  • Destory

当方块被摧毁为Air时通知被摧毁的Block

Event Fields: Entity, BlockPos, Block, BlockChangeCause

  • RandomTick

这个其实非常需要具体设计一下

提议:
在固定的Interval之间,随机在此interval内某一个tick触发。
例如下面的interval是10tick,每10tick之中必然触发一次,期间每个tick的触发最终应该是平均分布。
| .x........ | ......x... | .........x | ..x....... |

讨论:是否在只有调用特定destroy函数时使用,单纯的setBlockToAir不触发?

NPE when open "DebugGame" hud

====== Engine Crash Report ======

Time: 2019-09-27 23:37:53 +08:00

--- Exception Stack Traces ---
Thread: main
java.lang.NullPointerException
	at nullengine.client.gui.EngineGuiManager.removeHud(EngineGuiManager.java:165)
	at nullengine.enginemod.EngineModClientListeners.lambda$registerKeyBindings$38(EngineModClientListeners.java:225)
	at nullengine.client.input.keybinding.KeyBinding.onKeyEnd(KeyBinding.java:147)
	at nullengine.client.input.keybinding.KeyBindingManager.tick(KeyBindingManager.java:164)
	at nullengine.client.EngineClientImpl.clientTick(EngineClientImpl.java:202)
	at nullengine.logic.Ticker.run(Ticker.java:64)
	at nullengine.client.EngineClientImpl.runEngine(EngineClientImpl.java:196)
	at nullengine.client.launch.Bootstrap.main(Bootstrap.java:35)
----------------------------------------------------------------

--- Exception Details ---
----------------------------------------------------------------

--- System Details ---
Engine Version: 0.1.0-alpha
Engine Side: CLIENT
Runtime Environment: ENGINE_DEVELOPMENT
Loaded Mods: [engine(0.1.0-alpha), foundation(0.1.0-alpha)]
Operating System: Windows 10 (amd64) version 10.0
Java Version: 11.0.1 (11.0.1+13-LTS), 11.0.1
JVM Information: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 61 MB / 126 MB (Max: 2014 MB)
JVM Flags: (2 totals) -javaagent:D:\Softwares\IntelliJ IDEA Community Edition 2019.1.1\lib\idea_rt.jar=5626:D:\Softwares\IntelliJ IDEA Community Edition 2019.1.1\bin -Dfile.encoding=UTF-8
GL Vendor: NVIDIA Corporation
GL Renderer: GeForce GTX 1060 with Max-Q Design/PCIe/SSE2
GL Version: 3.2.0 NVIDIA 398.36
GL Extensions: null
GL Shading Language Version: 1.50 NVIDIA via Cg compiler
GPU Memory Usage: 438 MB / 6144 MB
----------------------------------------------------------------

--- All Stack Traces ---
Thread: main
Daemon: false
StackTrace:
	at [email protected]/java.lang.Thread.dumpThreads(Native Method)
	at [email protected]/java.lang.Thread.getAllStackTraces(Thread.java:1657)
	at app//nullengine.util.CrashHandlerImpl.generateCrashReport(CrashHandlerImpl.java:104)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:58)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:40)
	at app//nullengine.EngineBase.lambda$initExceptionHandler$0(EngineBase.java:135)
	at app//nullengine.EngineBase$$Lambda$80/0x000000010017c840.uncaughtException(Unknown Source)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1055)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1050)
	at [email protected]/java.lang.Thread.dispatchUncaughtException(Thread.java:2001)

Thread: Chunk Baker 2
Daemon: false
StackTrace:
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
	at [email protected]/java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:547)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at [email protected]/java.lang.Thread.run(Thread.java:834)

Thread: Chunk Baker 3
Daemon: false
StackTrace:
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
	at [email protected]/java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:547)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at [email protected]/java.lang.Thread.run(Thread.java:834)

Thread: Attach Listener
Daemon: true
StackTrace:

Thread: Chunk Baker 0
Daemon: false
StackTrace:
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
	at [email protected]/java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:547)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at [email protected]/java.lang.Thread.run(Thread.java:834)

Thread: Finalizer
Daemon: true
StackTrace:
	at [email protected]/java.lang.Object.wait(Native Method)
	at [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
	at [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
	at [email protected]/java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:170)

Thread: Monitor Ctrl-Break
Daemon: true
StackTrace:
	at [email protected]/java.net.SocketInputStream.socketRead0(Native Method)
	at [email protected]/java.net.SocketInputStream.socketRead(SocketInputStream.java:115)
	at [email protected]/java.net.SocketInputStream.read(SocketInputStream.java:168)
	at [email protected]/java.net.SocketInputStream.read(SocketInputStream.java:140)
	at [email protected]/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)
	at [email protected]/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)
	at [email protected]/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
	at [email protected]/java.io.InputStreamReader.read(InputStreamReader.java:185)
	at [email protected]/java.io.BufferedReader.fill(BufferedReader.java:161)
	at [email protected]/java.io.BufferedReader.readLine(BufferedReader.java:326)
	at [email protected]/java.io.BufferedReader.readLine(BufferedReader.java:392)
	at app//com.intellij.rt.execution.application.AppMainV2$1.run(AppMainV2.java:64)

Thread: Reference Handler
Daemon: true
StackTrace:
	at [email protected]/java.lang.ref.Reference.waitForReferencePendingList(Native Method)
	at [email protected]/java.lang.ref.Reference.processPendingReferences(Reference.java:241)
	at [email protected]/java.lang.ref.Reference$ReferenceHandler.run(Reference.java:213)

Thread: Common-Cleaner
Daemon: true
StackTrace:
	at [email protected]/java.lang.Object.wait(Native Method)
	at [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
	at [email protected]/jdk.internal.ref.CleanerImpl.run(CleanerImpl.java:148)
	at [email protected]/java.lang.Thread.run(Thread.java:834)
	at [email protected]/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:134)

Thread: Signal Dispatcher
Daemon: true
StackTrace:

Thread: Chunk Baker 5
Daemon: false
StackTrace:
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
	at [email protected]/java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:547)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at [email protected]/java.lang.Thread.run(Thread.java:834)

Thread: Chunk Baker 4
Daemon: false
StackTrace:
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
	at [email protected]/java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:547)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at [email protected]/java.lang.Thread.run(Thread.java:834)

Thread: Chunk Baker 1
Daemon: false
StackTrace:
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
	at [email protected]/java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:547)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at [email protected]/java.lang.Thread.run(Thread.java:834)

The button is pressed after showing a new stage in the action handler

Tonight, I'm implementing a feature is lost the focus or hover of node when the window lost focus. When I try to show a new stage in the action handler of a button, I found new window has been showed but the button isn't released.

Solution: I found when polling glfw events, any new glfw event will be notified immediately. So I add pressed node to pressedNodeList before fire event. The problem has been solved very well.

I thought we should show the new stage in next frame. In this way, problems can be solved thoroughly and more problems can be avoided.

Block Components

  • Dropable

获取方块掉落物品

Method Declare: NonNullList<ItemStack> getDropItems(Entity, BlockPos, Block)

Shader language custom features

A Shader Language preprocessor processes the shader code to add some custom features.

'#include''#import' statement

Include statement to include the code of another shader file into the code of current shader file. For example:

#import "library/another.shader"

Collecting shader information

Collecting the shader source code information into the data structure. Including but not limited to uniforms, vertex attributes, ins, outs, consts, functions.

Scheduler

The scheduler focus on providing a schedule task API to World, Game, Engine etc.

It can be divided into scheduler and ticked scheduler according to the situation.

Crash when world creation

[Chunk Baker 2] ERROR Engine - Caught unhandled exception!!! Engine will terminate!
nullengine.event.EventException: Cannot handle event. EventType: nullengine.event.world.chunk.ChunkLoadEvent
	at nullengine.event.SimpleEventBus$Builder.lambda$new$0(SimpleEventBus.java:183)
	at nullengine.event.SimpleEventBus.post(SimpleEventBus.java:36)
	at nullengine.world.chunk.WorldCommonChunkManager.loadChunk(WorldCommonChunkManager.java:59)
	at nullengine.world.WorldCommon.getChunk(WorldCommon.java:219)
	at nullengine.world.util.ChunkCache.create(ChunkCache.java:21)
	at nullengine.client.rendering.world.chunk.BakeChunkTask.createChunkCache(BakeChunkTask.java:55)
	at nullengine.client.rendering.world.chunk.BakeChunkTask.run(BakeChunkTask.java:35)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.NullPointerException
	at nullengine.client.rendering.world.chunk.ChunkRenderer.getChunkIndex(ChunkRenderer.java:284)
	at nullengine.client.rendering.world.chunk.ChunkRenderer.lambda$markChunkMeshDirty$1(ChunkRenderer.java:249)
	at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:176)
	at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	at java.base/java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:290)
	at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:746)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.helpCC(ForkJoinPool.java:1115)
	at java.base/java.util.concurrent.ForkJoinPool.externalHelpComplete(ForkJoinPool.java:1957)
	at java.base/java.util.concurrent.ForkJoinTask.tryExternalHelp(ForkJoinTask.java:378)
	at java.base/java.util.concurrent.ForkJoinTask.externalAwaitDone(ForkJoinTask.java:323)
	at java.base/java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:412)
	at java.base/java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:736)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:159)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:173)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
	at nullengine.client.rendering.world.chunk.ChunkRenderer.markChunkMeshDirty(ChunkRenderer.java:249)
	at nullengine.client.rendering.world.chunk.ChunkRenderer.initChunkMesh(ChunkRenderer.java:199)
	at nullengine.client.rendering.world.chunk.ChunkRenderer.onChunkLoad(ChunkRenderer.java:193)
	at AsmDynamicListener_759d26fb_ChunkRenderer_onChunkLoad_ChunkLoadEvent_10.post(.dynamic)
	at nullengine.event.misc.RegisteredListener.post(RegisteredListener.java:63)
	at nullengine.event.SimpleEventBus.post(SimpleEventBus.java:34)
	... 8 more

Block shape component

Provide a component called BlockShape(undetermined) for replacing getBoundingBoxes().

Basic mod load and manage system

We need implement a mod manage system.
Features:

  1. No only support Java mod, but also support Kotlin、JavaScript etc. mod.
  2. A mod security manager. To prevent hack mod.
  3. Dynamic mod loader. For loading mod on runtime.

The tick's partial is unable to work

I don't know how to describe this bug in English. The Tick's partial should mean the number of Tick intervals that have passed since the last update. But now it mean the seconds that have passed since the last update divided by the Tick rate.

Persistence API

We will develop a custom binary data format in PBDF(Pangu Binary Data Format) repository.

Java Virual Machine crash when loading font

JVM crash report: hs_err_pid15604.log

Summary and Thread Frames:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffdcf6f556a, pid=15604, tid=14552
#
# JRE version: OpenJDK Runtime Environment (11.0.2+9) (build 11.0.2+9)
# Java VM: OpenJDK 64-Bit Server VM (11.0.2+9, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
# Problematic frame:
# C  [lwjgl_stb.dll+0x2556a]
#
# No core dump will be written. Minidumps are not enabled by default on client versions of Windows
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

---------------  S U M M A R Y ------------

Command Line: -Dfile.encoding=GBK -Duser.country=CN -Duser.language=zh -Duser.variant nullengine.client.launch.Bootstrap

Host: AMD Ryzen 7 2700X Eight-Core Processor         , 16 cores, 31G,  Windows 10 , 64 bit Build 17134 (10.0.17134.753)
Time: Sat Oct 26 21:44:45 2019 ?D1��������?����?? elapsed time: 1 seconds (0d 0h 0m 1s)

---------------  T H R E A D  ---------------

Current thread (0x000001de7249f000):  JavaThread "main" [_thread_in_native, id=14552, stack(0x0000003ee7900000,0x0000003ee7a00000)]

Stack: [0x0000003ee7900000,0x0000003ee7a00000],  sp=0x0000003ee79feaf8,  free space=1018k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [lwjgl_stb.dll+0x2556a]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  org.lwjgl.stb.STBTruetype.nstbtt_InitFont(JJI)I+0
j  org.lwjgl.stb.STBTruetype.stbtt_InitFont(Lorg/lwjgl/stb/STBTTFontinfo;Ljava/nio/ByteBuffer;)Z+9
j  nullengine.client.rendering.font.TTFontHelper.loadNativeFontInfo(Ljava/nio/file/Path;)Lnullengine/client/rendering/font/NativeTTFontInfo;+26
j  nullengine.client.rendering.font.TTFontHelper.initLocalFonts()V+30
j  nullengine.client.rendering.font.TTFontHelper.<init>()V+46
j  nullengine.client.rendering.EngineRenderManager.initFont()V+4
j  nullengine.client.rendering.EngineRenderManager.init(Ljava/lang/Thread;)V+74
j  nullengine.client.EngineClientImpl.resourceStage()V+238
j  nullengine.EngineBase.initEngine()V+60
j  nullengine.client.launch.Bootstrap.main([Ljava/lang/String;)V+86
v  ~StubRoutines::call_stub

siginfo: EXCEPTION_ACCESS_VIOLATION (0xc0000005), reading address 0x000001de2387400c

Baking chunk mesh when unloading world

====== Crash Report ======

Time: 2019-10-01 14:11:25 +08:00

--- Exception Stack Traces ---
Thread: Chunk Baker 2
java.lang.NullPointerException
	at nullengine.client.rendering.block.BlockRenderManagerImpl.canRenderNeighborBlockFace(BlockRenderManagerImpl.java:43)
	at nullengine.client.rendering.block.BlockRenderManagerImpl.canRenderFace(BlockRenderManagerImpl.java:37)
	at nullengine.client.rendering.block.BlockRenderManagerImpl.generateMesh(BlockRenderManagerImpl.java:58)
	at nullengine.client.rendering.world.chunk.BakeChunkTask.run(BakeChunkTask.java:45)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:834)
----------------------------------------------------------------

--- Exception Details ---
----------------------------------------------------------------

--- System Details ---
Engine Version: 0.1.0-alpha
Engine Side: CLIENT
Runtime Environment: ENGINE_DEVELOPMENT
Loaded Mods: [engine(0.1.0-alpha), foundation(0.1.0-alpha)]
Operating System: Windows 10 (amd64) version 10.0
Java Version: 11.0.1 (11.0.1+13-LTS), 11.0.1
JVM Information: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 26 MB / 152 MB (Max: 2014 MB)
JVM Flags: (2 totals) -javaagent:D:\Softwares\IntelliJ IDEA Community Edition 2019.1.1\lib\idea_rt.jar=11339:D:\Softwares\IntelliJ IDEA Community Edition 2019.1.1\bin -Dfile.encoding=UTF-8
GL Vendor: NVIDIA Corporation
GL Renderer: GeForce GTX 1060 with Max-Q Design/PCIe/SSE2
GL Version: 3.2.0 NVIDIA 398.36
GL Extensions: null
GL Shading Language Version: 1.50 NVIDIA via Cg compiler
GPU Memory Usage: 504 MB / 6144 MB
----------------------------------------------------------------

--- All Stack Traces ---
Thread: Reference Handler
Daemon: true
StackTrace:
	at [email protected]/java.lang.ref.Reference.waitForReferencePendingList(Native Method)
	at [email protected]/java.lang.ref.Reference.processPendingReferences(Reference.java:241)
	at [email protected]/java.lang.ref.Reference$ReferenceHandler.run(Reference.java:213)

Thread: Chunk Baker 9
Daemon: false
StackTrace:
	at [email protected]/java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:538)
	at [email protected]/java.lang.StringBuilder.append(StringBuilder.java:174)
	at [email protected]/java.lang.StackTraceElement.toString(StackTraceElement.java:344)
	at [email protected]/java.lang.String.valueOf(String.java:2951)
	at [email protected]/java.lang.StringBuilder.append(StringBuilder.java:168)
	at app//nullengine.util.CrashHandlerImpl.printThreadStack(CrashHandlerImpl.java:117)
	at app//nullengine.util.CrashHandlerImpl.generateCrashReport(CrashHandlerImpl.java:106)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:58)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:40)
	at app//nullengine.EngineBase.lambda$initExceptionHandler$0(EngineBase.java:135)
	at app//nullengine.EngineBase$$Lambda$80/0x000000010017c840.uncaughtException(Unknown Source)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1055)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1050)
	at [email protected]/java.lang.Thread.dispatchUncaughtException(Thread.java:2001)

Thread: main
Daemon: false
StackTrace:
	at app//org.lwjgl.opengl.GL11C.nglGetIntegerv(Native Method)
	at app//org.lwjgl.opengl.GL11C.glGetIntegerv(GL11C.java:833)
	at app//org.lwjgl.opengl.GL11.glGetIntegerv(GL11.java:2657)
	at app//nullengine.client.rendering.util.NVXGPUMemoryInfo.update(NVXGPUMemoryInfo.java:38)
	at app//nullengine.client.rendering.EngineRenderManager$$Lambda$136/0x00000001001e2440.run(Unknown Source)
	at app//nullengine.client.rendering.EngineRenderScheduler$$Lambda$275/0x00000001002ebc40.accept(Unknown Source)
	at [email protected]/java.util.concurrent.LinkedBlockingQueue.forEachFrom(LinkedBlockingQueue.java:1010)
	at [email protected]/java.util.concurrent.LinkedBlockingQueue.forEach(LinkedBlockingQueue.java:979)
	at app//nullengine.client.rendering.EngineRenderScheduler.run(EngineRenderScheduler.java:34)
	at app//nullengine.client.rendering.EngineRenderManager.render(EngineRenderManager.java:164)
	at app//nullengine.client.EngineClientImpl.lambda$finishStage$10(EngineClientImpl.java:184)
	at app//nullengine.client.EngineClientImpl$$Lambda$247/0x00000001002de840.tick(Unknown Source)
	at app//nullengine.logic.Ticker.run(Ticker.java:69)
	at app//nullengine.client.EngineClientImpl.runEngine(EngineClientImpl.java:196)
	at app//nullengine.client.launch.Bootstrap.main(Bootstrap.java:35)

Thread: Signal Dispatcher
Daemon: true
StackTrace:

Thread: Chunk Baker 8
Daemon: false
StackTrace:
	at [email protected]/java.lang.StringBuilder.append(StringBuilder.java:174)
	at [email protected]/java.lang.StackTraceElement.toString(StackTraceElement.java:356)
	at [email protected]/java.lang.String.valueOf(String.java:2951)
	at [email protected]/java.lang.StringBuilder.append(StringBuilder.java:168)
	at app//nullengine.util.CrashHandlerImpl.printThreadStack(CrashHandlerImpl.java:117)
	at app//nullengine.util.CrashHandlerImpl.generateCrashReport(CrashHandlerImpl.java:106)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:58)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:40)
	at app//nullengine.EngineBase.lambda$initExceptionHandler$0(EngineBase.java:135)
	at app//nullengine.EngineBase$$Lambda$80/0x000000010017c840.uncaughtException(Unknown Source)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1055)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1050)
	at [email protected]/java.lang.Thread.dispatchUncaughtException(Thread.java:2001)

Thread: Chunk Baker 5
Daemon: false
StackTrace:
	at [email protected]/java.util.regex.Matcher.reset(Matcher.java:406)
	at [email protected]/java.util.regex.Matcher.<init>(Matcher.java:253)
	at [email protected]/java.util.regex.Pattern.matcher(Pattern.java:1133)
	at [email protected]/java.util.Formatter.parse(Formatter.java:2700)
	at [email protected]/java.util.Formatter.format(Formatter.java:2655)
	at [email protected]/java.util.Formatter.format(Formatter.java:2609)
	at [email protected]/java.lang.String.format(String.java:2897)
	at app//nullengine.EngineBase.lambda$initExceptionHandler$9(EngineBase.java:162)
	at app//nullengine.EngineBase$$Lambda$88/0x000000010017e840.accept(Unknown Source)
	at app//nullengine.util.CrashHandlerImpl.generateCrashReport(CrashHandlerImpl.java:98)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:58)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:40)
	at app//nullengine.EngineBase.lambda$initExceptionHandler$0(EngineBase.java:135)
	at app//nullengine.EngineBase$$Lambda$80/0x000000010017c840.uncaughtException(Unknown Source)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1055)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1050)
	at [email protected]/java.lang.Thread.dispatchUncaughtException(Thread.java:2001)

Thread: Chunk Baker 10
Daemon: false
StackTrace:
	at [email protected]/java.lang.Thread.dumpThreads(Native Method)
	at [email protected]/java.lang.Thread.getAllStackTraces(Thread.java:1657)
	at app//nullengine.util.CrashHandlerImpl.generateCrashReport(CrashHandlerImpl.java:104)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:58)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:40)
	at app//nullengine.EngineBase.lambda$initExceptionHandler$0(EngineBase.java:135)
	at app//nullengine.EngineBase$$Lambda$80/0x000000010017c840.uncaughtException(Unknown Source)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1055)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1050)
	at [email protected]/java.lang.Thread.dispatchUncaughtException(Thread.java:2001)

Thread: Attach Listener
Daemon: true
StackTrace:

Thread: Chunk Baker 6
Daemon: false
StackTrace:
	at [email protected]/java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:538)
	at [email protected]/java.lang.StringBuilder.append(StringBuilder.java:174)
	at [email protected]/java.lang.StringBuilder.append(StringBuilder.java:168)
	at app//nullengine.util.CrashHandlerImpl.printThreadStack(CrashHandlerImpl.java:117)
	at app//nullengine.util.CrashHandlerImpl.generateCrashReport(CrashHandlerImpl.java:106)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:58)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:40)
	at app//nullengine.EngineBase.lambda$initExceptionHandler$0(EngineBase.java:135)
	at app//nullengine.EngineBase$$Lambda$80/0x000000010017c840.uncaughtException(Unknown Source)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1055)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1050)
	at [email protected]/java.lang.Thread.dispatchUncaughtException(Thread.java:2001)

Thread: Monitor Ctrl-Break
Daemon: true
StackTrace:
	at [email protected]/java.net.SocketInputStream.socketRead0(Native Method)
	at [email protected]/java.net.SocketInputStream.socketRead(SocketInputStream.java:115)
	at [email protected]/java.net.SocketInputStream.read(SocketInputStream.java:168)
	at [email protected]/java.net.SocketInputStream.read(SocketInputStream.java:140)
	at [email protected]/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)
	at [email protected]/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)
	at [email protected]/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
	at [email protected]/java.io.InputStreamReader.read(InputStreamReader.java:185)
	at [email protected]/java.io.BufferedReader.fill(BufferedReader.java:161)
	at [email protected]/java.io.BufferedReader.readLine(BufferedReader.java:326)
	at [email protected]/java.io.BufferedReader.readLine(BufferedReader.java:392)
	at app//com.intellij.rt.execution.application.AppMainV2$1.run(AppMainV2.java:64)

Thread: Chunk Baker 1
Daemon: false
StackTrace:
	at [email protected]/java.lang.StackTraceElement.toString(StackTraceElement.java:354)
	at [email protected]/java.lang.String.valueOf(String.java:2951)
	at [email protected]/java.lang.StringBuilder.append(StringBuilder.java:168)
	at app//nullengine.util.CrashHandlerImpl.printThreadStack(CrashHandlerImpl.java:117)
	at app//nullengine.util.CrashHandlerImpl.generateCrashReport(CrashHandlerImpl.java:106)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:58)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:40)
	at app//nullengine.EngineBase.lambda$initExceptionHandler$0(EngineBase.java:135)
	at app//nullengine.EngineBase$$Lambda$80/0x000000010017c840.uncaughtException(Unknown Source)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1055)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1050)
	at [email protected]/java.lang.Thread.dispatchUncaughtException(Thread.java:2001)

Thread: Chunk Baker 3
Daemon: false
StackTrace:
	at [email protected]/java.lang.AbstractStringBuilder.putStringAt(AbstractStringBuilder.java:1667)
	at [email protected]/java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:539)
	at [email protected]/java.lang.StringBuilder.append(StringBuilder.java:174)
	at [email protected]/java.lang.StackTraceElement.toString(StackTraceElement.java:354)
	at [email protected]/java.lang.String.valueOf(String.java:2951)
	at [email protected]/java.lang.StringBuilder.append(StringBuilder.java:168)
	at app//nullengine.util.CrashHandlerImpl.printThreadStack(CrashHandlerImpl.java:117)
	at app//nullengine.util.CrashHandlerImpl.generateCrashReport(CrashHandlerImpl.java:106)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:58)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:40)
	at app//nullengine.EngineBase.lambda$initExceptionHandler$0(EngineBase.java:135)
	at app//nullengine.EngineBase$$Lambda$80/0x000000010017c840.uncaughtException(Unknown Source)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1055)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1050)
	at [email protected]/java.lang.Thread.dispatchUncaughtException(Thread.java:2001)

Thread: Chunk Baker 0
Daemon: false
StackTrace:
	at [email protected]/java.lang.StackTraceElement.dropClassLoaderName(StackTraceElement.java:461)
	at [email protected]/java.lang.StackTraceElement.toString(StackTraceElement.java:342)
	at [email protected]/java.lang.String.valueOf(String.java:2951)
	at [email protected]/java.lang.StringBuilder.append(StringBuilder.java:168)
	at app//nullengine.util.CrashHandlerImpl.printThreadStack(CrashHandlerImpl.java:117)
	at app//nullengine.util.CrashHandlerImpl.generateCrashReport(CrashHandlerImpl.java:106)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:58)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:40)
	at app//nullengine.EngineBase.lambda$initExceptionHandler$0(EngineBase.java:135)
	at app//nullengine.EngineBase$$Lambda$80/0x000000010017c840.uncaughtException(Unknown Source)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1055)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1050)
	at [email protected]/java.lang.Thread.dispatchUncaughtException(Thread.java:2001)

Thread: Chunk Baker 7
Daemon: false
StackTrace:
	at [email protected]/java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:538)
	at [email protected]/java.lang.StringBuilder.append(StringBuilder.java:174)
	at [email protected]/java.lang.StackTraceElement.toString(StackTraceElement.java:354)
	at [email protected]/java.lang.String.valueOf(String.java:2951)
	at [email protected]/java.lang.StringBuilder.append(StringBuilder.java:168)
	at app//nullengine.util.CrashHandlerImpl.printThreadStack(CrashHandlerImpl.java:117)
	at app//nullengine.util.CrashHandlerImpl.generateCrashReport(CrashHandlerImpl.java:106)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:58)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:40)
	at app//nullengine.EngineBase.lambda$initExceptionHandler$0(EngineBase.java:135)
	at app//nullengine.EngineBase$$Lambda$80/0x000000010017c840.uncaughtException(Unknown Source)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1055)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1050)
	at [email protected]/java.lang.Thread.dispatchUncaughtException(Thread.java:2001)

Thread: Chunk Baker 11
Daemon: false
StackTrace:
	at [email protected]/java.lang.Thread.dumpThreads(Native Method)
	at [email protected]/java.lang.Thread.getAllStackTraces(Thread.java:1657)
	at app//nullengine.util.CrashHandlerImpl.generateCrashReport(CrashHandlerImpl.java:104)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:58)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:40)
	at app//nullengine.EngineBase.lambda$initExceptionHandler$0(EngineBase.java:135)
	at app//nullengine.EngineBase$$Lambda$80/0x000000010017c840.uncaughtException(Unknown Source)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1055)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1050)
	at [email protected]/java.lang.Thread.dispatchUncaughtException(Thread.java:2001)

Thread: Finalizer
Daemon: true
StackTrace:
	at [email protected]/java.lang.Object.wait(Native Method)
	at [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
	at [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
	at [email protected]/java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:170)

Thread: Common-Cleaner
Daemon: true
StackTrace:
	at [email protected]/java.lang.Object.wait(Native Method)
	at [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
	at [email protected]/jdk.internal.ref.CleanerImpl.run(CleanerImpl.java:148)
	at [email protected]/java.lang.Thread.run(Thread.java:834)
	at [email protected]/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:134)

Thread: Chunk Baker 4
Daemon: false
StackTrace:
	at [email protected]/java.lang.AbstractStringBuilder.putStringAt(AbstractStringBuilder.java:1667)
	at [email protected]/java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:539)
	at [email protected]/java.lang.StringBuilder.append(StringBuilder.java:174)
	at app//nullengine.util.CrashHandlerImpl.printThreadStack(CrashHandlerImpl.java:117)
	at app//nullengine.util.CrashHandlerImpl.generateCrashReport(CrashHandlerImpl.java:106)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:58)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:40)
	at app//nullengine.EngineBase.lambda$initExceptionHandler$0(EngineBase.java:135)
	at app//nullengine.EngineBase$$Lambda$80/0x000000010017c840.uncaughtException(Unknown Source)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1055)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1050)
	at [email protected]/java.lang.Thread.dispatchUncaughtException(Thread.java:2001)

dGroup.uncaughtException(ThreadGroup.java:1050)
	at [email protected]/java.lang.Thread.dispatchUncaughtException(Thread.java:2001)

Thread: Chunk Baker 0
Daemon: false
StackTrace:
	at [email protected]/java.lang.Thread.dumpThreads(Native Method)
	at [email protected]/java.lang.Thread.getAllStackTraces(Thread.java:1657)
	at app//nullengine.util.CrashHandlerImpl.generateCrashReport(CrashHandlerImpl.java:104)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:58)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:40)
	at app//nullengine.EngineBase.lambda$initExceptionHandler$0(EngineBase.java:135)
	at app//nullengine.EngineBase$$Lambda$80/0x000000010017c840.uncaughtException(Unknown Source)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1055)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1050)
	at [email protected]/java.lang.Thread.dispatchUncaughtException(Thread.java:2001)

Thread: Chunk Baker 7
Daemon: false
StackTrace:
	at [email protected]/java.lang.Integer.toString(Integer.java:438)
	at [email protected]/java.lang.Integer.toString(Integer.java:1165)
	at [email protected]/java.util.Formatter$FormatSpecifier.printString(Formatter.java:3031)
	at [email protected]/java.util.Formatter$FormatSpecifier.print(Formatter.java:2908)
	at [email protected]/java.util.Formatter.format(Formatter.java:2673)
	at [email protected]/java.util.Formatter.format(Formatter.java:2609)
	at [email protected]/java.lang.String.format(String.java:2897)
	at app//nullengine.EngineBase.lambda$initExceptionHandler$10(EngineBase.java:168)
	at app//nullengine.EngineBase$$Lambda$89/0x000000010017ec40.accept(Unknown Source)
	at app//nullengine.util.CrashHandlerImpl.generateCrashReport(CrashHandlerImpl.java:98)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:58)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:40)
	at app//nullengine.EngineBase.lambda$initExceptionHandler$0(EngineBase.java:135)
	at app//nullengine.EngineBase$$Lambda$80/0x000000010017c840.uncaughtException(Unknown Source)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1055)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1050)
	at [email protected]/java.lang.Thread.dispatchUncaughtException(Thread.java:2001)

Thread: Chunk Baker 11
Daemon: false
StackTrace:
	at [email protected]/java.nio.CharBuffer.hasArray(CharBuffer.java:1017)
	at [email protected]/sun.nio.cs.UTF_8$Encoder.encodeLoop(UTF_8.java:563)
	at [email protected]/java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:576)
	at [email protected]/sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:292)
	at [email protected]/sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:281)
	at [email protected]/sun.nio.cs.StreamEncoder.write(StreamEncoder.java:125)
	at [email protected]/java.io.OutputStreamWriter.write(OutputStreamWriter.java:211)
	at [email protected]/java.io.BufferedWriter.flushBuffer(BufferedWriter.java:120)
	at [email protected]/java.io.PrintStream.write(PrintStream.java:605)
	at [email protected]/java.io.PrintStream.print(PrintStream.java:745)
	at [email protected]/java.io.PrintStream.println(PrintStream.java:899)
	at [email protected]/java.lang.Throwable$WrappedPrintStream.println(Throwable.java:752)
	at [email protected]/java.lang.Throwable.printEnclosedStackTrace(Throwable.java:703)
	at [email protected]/java.lang.Throwable.printStackTrace(Throwable.java:671)
	at [email protected]/java.lang.Throwable.printStackTrace(Throwable.java:648)
	at app//nullengine.util.CrashHandlerImpl.generateCrashReport(CrashHandlerImpl.java:82)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:58)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:40)
	at app//nullengine.EngineBase.lambda$initExceptionHandler$0(EngineBase.java:135)
	at app//nullengine.EngineBase$$Lambda$80/0x000000010017c840.uncaughtException(Unknown Source)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1055)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1050)
	at [email protected]/java.lang.Thread.dispatchUncaughtException(Thread.java:2001)

Thread: Finalizer
Daemon: true
StackTrace:
	at [email protected]/java.lang.Object.wait(Native Method)
	at [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
	at [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
	at [email protected]/java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:170)

Thread: Common-Cleaner
Daemon: true
StackTrace:
	at [email protected]/java.lang.Object.wait(Native Method)
	at [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
	at [email protected]/jdk.internal.ref.CleanerImpl.run(CleanerImpl.java:148)
	at [email protected]/java.lang.Thread.run(Thread.java:834)
	at [email protected]/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:134)

Thread: Chunk Baker 4
Daemon: false
StackTrace:
	at [email protected]/java.lang.Thread.dumpThreads(Native Method)
	at [email protected]/java.lang.Thread.getAllStackTraces(Thread.java:1657)
	at app//nullengine.util.CrashHandlerImpl.generateCrashReport(CrashHandlerImpl.java:104)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:58)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:40)
	at app//nullengine.EngineBase.lambda$initExceptionHandler$0(EngineBase.java:135)
	at app//nullengine.EngineBase$$Lambda$80/0x000000010017c840.uncaughtException(Unknown Source)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1055)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1050)
	at [email protected]/java.lang.Thread.dispatchUncaughtException(Thread.java:2001)

更改项目许可证以及附加贡献者协议的相关讨论

出于一些顾虑和需要,我计划:

  1. 将项目许可证从LGPL 3.0更改为Apache License 2.0。此举将有利于开发者更好地使用本引擎获取收入,同时也有利于本组织在推进商业化过程中可能涉及到的LGPL 3.0许可证所造成的不便。
  2. 为项目附加贡献者协议(CLA)。使贡献者将其贡献的源代码、艺术作品等创作作品的权利授权给本组织(即Unknown Domain Game)管理。此举将便于本项目基于情况更改协议,并在项目面临一些挑战时做出及时的应对。但出于一些顾虑,此举可能会引起贡献者的不满,同时项目的未来走向也将完全取决于权利所有者(即本组织)。点此阅读贡献者协议草稿

鉴于所有贡献者均为**人,本次讨论的语言以中文为主。如有意见和建议可在本Issue下comment,同意相关决议请在本Issue下发表comment确认,可特别声明仅同意第一条或第二条。

贡献者:
@cvrunmin @ci010 @jihuayu @byxiaobai @iTNTPiston @Wangjiarun @XiaoLeGG @a1640727878 @DrMagicalStone @zbwxtex @ningwang747 @NekoCaffeine @NanamiArihara

Out of memory when ray tracing

====== Engine Crash Report ======

Time: 2019-09-20 13:27:09 +08:00

--- Exception Stack Traces ---
Thread: main
java.lang.OutOfMemoryError: Java heap space
	at java.base/java.util.Arrays.copyOf(Arrays.java:3689)
	at java.base/java.util.ArrayList.grow(ArrayList.java:237)
	at java.base/java.util.ArrayList.grow(ArrayList.java:242)
	at java.base/java.util.ArrayList.add(ArrayList.java:485)
	at java.base/java.util.ArrayList.add(ArrayList.java:498)
	at nullengine.world.util.FastVoxelRayTrace.rayTrace(FastVoxelRayTrace.java:70)
	at nullengine.world.collision.WorldCollisionManagerImpl.raycastBlock(WorldCollisionManagerImpl.java:47)
	at nullengine.world.collision.WorldCollisionManagerImpl.raycastBlock(WorldCollisionManagerImpl.java:38)
	at nullengine.enginemod.EngineModClientListeners.lambda$registerKeyBindings$20(EngineModClientListeners.java:120)
	at nullengine.enginemod.EngineModClientListeners$$Lambda$202/0x0000000100222440.accept(Unknown Source)
	at nullengine.client.input.keybinding.KeyBinding.onKeyStart(KeyBinding.java:134)
	at nullengine.client.input.keybinding.KeyBindingManager.tick(KeyBindingManager.java:162)
	at nullengine.client.EngineClientImpl.clientTick(EngineClientImpl.java:188)
	at nullengine.client.EngineClientImpl$$Lambda$238/0x00000001002d1040.tick(Unknown Source)
	at nullengine.logic.Ticker.run(Ticker.java:64)
	at nullengine.client.EngineClientImpl.runEngine(EngineClientImpl.java:183)
	at nullengine.client.launch.Bootstrap.main(Bootstrap.java:35)
----------------------------------------------------------------

--- Exception Details ---
----------------------------------------------------------------

--- System Details ---
Engine Version: 0.1.0-alpha
Engine Side: CLIENT
Runtime Environment: ENGINE_DEVELOPMENT
Loaded Mods: [engine(0.1.0-alpha), foundation(0.1.0-alpha)]
Operating System: Windows 10 (amd64) version 10.0
Java Version: 11.0.1 (11.0.1+13-LTS), 11.0.1
JVM Information: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 1879 MB / 2014 MB (Max: 2014 MB)
JVM Flags: (4 totals) -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:3155,suspend=y,server=n -javaagent:C:\Users\Mouse\.IdeaIC2019.2\system\groovyHotSwap\gragent.jar -javaagent:C:\Users\Mouse\.IdeaIC2019.2\system\captureAgent\debugger-agent.jar -Dfile.encoding=UTF-8
GL Vendor: NVIDIA Corporation
GL Renderer: GeForce GTX 1060 with Max-Q Design/PCIe/SSE2
GL Version: 3.2.0 NVIDIA 398.36
GL Extensions: null
GL Shading Language Version: 1.50 NVIDIA via Cg compiler
GPU Memory Usage: 319 MB / 6144 MB
----------------------------------------------------------------

--- All Stack Traces ---
Thread: Signal Dispatcher
Daemon: true
StackTrace:

Thread: Attach Listener
Daemon: true
StackTrace:

Thread: Finalizer
Daemon: true
StackTrace:
	at [email protected]/java.lang.Object.wait(Native Method)
	at [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
	at [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
	at [email protected]/java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:170)

Thread: main
Daemon: false
StackTrace:
	at [email protected]/java.lang.Thread.dumpThreads(Native Method)
	at [email protected]/java.lang.Thread.getAllStackTraces(Thread.java:1657)
	at app//nullengine.util.CrashHandlerImpl.generateCrashReport(CrashHandlerImpl.java:104)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:58)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:40)
	at app//nullengine.EngineBase.lambda$initExceptionHandler$0(EngineBase.java:135)
	at app//nullengine.EngineBase$$Lambda$80/0x0000000100177840.uncaughtException(Unknown Source)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1055)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1050)
	at [email protected]/java.lang.Thread.dispatchUncaughtException(Thread.java:2001)

Thread: Reference Handler
Daemon: true
StackTrace:
	at [email protected]/java.lang.ref.Reference.waitForReferencePendingList(Native Method)
	at [email protected]/java.lang.ref.Reference.processPendingReferences(Reference.java:241)
	at [email protected]/java.lang.ref.Reference$ReferenceHandler.run(Reference.java:213)

Thread: Common-Cleaner
Daemon: true
StackTrace:
	at [email protected]/java.lang.Object.wait(Native Method)
	at [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
	at [email protected]/jdk.internal.ref.CleanerImpl.run(CleanerImpl.java:148)
	at [email protected]/java.lang.Thread.run(Thread.java:834)
	at [email protected]/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:134)

Thread: World Thread - default
Daemon: false
StackTrace:
	at [email protected]/java.lang.Thread.sleep(Native Method)
	at app//nullengine.logic.Ticker.lambda$new$0(Ticker.java:19)
	at app//nullengine.logic.Ticker$$Lambda$299/0x00000001002fd840.tick(Unknown Source)
	at app//nullengine.logic.Ticker.run(Ticker.java:69)
	at app//nullengine.world.WorldCommon.run(WorldCommon.java:258)
	at [email protected]/java.lang.Thread.run(Thread.java:834)

WorldCommonChunkManager isn't thread safe

====== Engine Crash Report ======

Time: 2019-09-20 13:33:02 +08:00

--- Exception Stack Traces ---
Thread: Chunk Baker 5
java.lang.ArrayIndexOutOfBoundsException: Index 1537 out of bounds for length 1024
	at io.netty.util.collection.LongObjectHashMap.rehash(LongObjectHashMap.java:473)
	at io.netty.util.collection.LongObjectHashMap.growSize(LongObjectHashMap.java:395)
	at io.netty.util.collection.LongObjectHashMap.put(LongObjectHashMap.java:128)
	at nullengine.world.chunk.WorldCommonChunkManager.loadChunk(WorldCommonChunkManager.java:58)
	at nullengine.world.WorldCommon.getChunk(WorldCommon.java:248)
	at nullengine.world.util.ChunkCache.create(ChunkCache.java:21)
	at nullengine.client.rendering.world.chunk.BakeChunkTask.createChunkCache(BakeChunkTask.java:57)
	at nullengine.client.rendering.world.chunk.BakeChunkTask.run(BakeChunkTask.java:35)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:834)
----------------------------------------------------------------

--- Exception Details ---
----------------------------------------------------------------

--- System Details ---
Engine Version: 0.1.0-alpha
Engine Side: CLIENT
Runtime Environment: ENGINE_DEVELOPMENT
Loaded Mods: [engine(0.1.0-alpha), foundation(0.1.0-alpha)]
Operating System: Windows 10 (amd64) version 10.0
Java Version: 11.0.1 (11.0.1+13-LTS), 11.0.1
JVM Information: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 76 MB / 126 MB (Max: 2014 MB)
JVM Flags: (2 totals) -javaagent:D:\Softwares\IntelliJ IDEA Community Edition 2019.1.1\lib\idea_rt.jar=3446:D:\Softwares\IntelliJ IDEA Community Edition 2019.1.1\bin -Dfile.encoding=UTF-8
GL Vendor: NVIDIA Corporation
GL Renderer: GeForce GTX 1060 with Max-Q Design/PCIe/SSE2
GL Version: 3.2.0 NVIDIA 398.36
GL Extensions: null
GL Shading Language Version: 1.50 NVIDIA via Cg compiler
GPU Memory Usage: 460 MB / 6144 MB
----------------------------------------------------------------

--- All Stack Traces ---
Thread: Chunk Baker 2
Daemon: false
StackTrace:
	at app//nullengine.client.rendering.world.chunk.BakeChunkTask.run(BakeChunkTask.java:42)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at [email protected]/java.lang.Thread.run(Thread.java:834)

Thread: Monitor Ctrl-Break
Daemon: true
StackTrace:
	at [email protected]/java.net.SocketInputStream.socketRead0(Native Method)
	at [email protected]/java.net.SocketInputStream.socketRead(SocketInputStream.java:115)
	at [email protected]/java.net.SocketInputStream.read(SocketInputStream.java:168)
	at [email protected]/java.net.SocketInputStream.read(SocketInputStream.java:140)
	at [email protected]/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)
	at [email protected]/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)
	at [email protected]/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
	at [email protected]/java.io.InputStreamReader.read(InputStreamReader.java:185)
	at [email protected]/java.io.BufferedReader.fill(BufferedReader.java:161)
	at [email protected]/java.io.BufferedReader.readLine(BufferedReader.java:326)
	at [email protected]/java.io.BufferedReader.readLine(BufferedReader.java:392)
	at app//com.intellij.rt.execution.application.AppMainV2$1.run(AppMainV2.java:64)

Thread: Chunk Baker 5
Daemon: false
StackTrace:
	at [email protected]/java.lang.Thread.dumpThreads(Native Method)
	at [email protected]/java.lang.Thread.getAllStackTraces(Thread.java:1657)
	at app//nullengine.util.CrashHandlerImpl.generateCrashReport(CrashHandlerImpl.java:104)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:58)
	at app//nullengine.util.CrashHandlerImpl.crash(CrashHandlerImpl.java:40)
	at app//nullengine.EngineBase.lambda$initExceptionHandler$0(EngineBase.java:135)
	at app//nullengine.EngineBase$$Lambda$80/0x000000010017c840.uncaughtException(Unknown Source)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1055)
	at [email protected]/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1050)
	at [email protected]/java.lang.Thread.dispatchUncaughtException(Thread.java:2001)

Thread: Chunk Baker 1
Daemon: false
StackTrace:
	at app//nullengine.world.BlockGetter.getBlock(BlockGetter.java:15)
	at app//nullengine.client.rendering.world.chunk.BakeChunkTask.run(BakeChunkTask.java:43)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at [email protected]/java.lang.Thread.run(Thread.java:834)

Thread: main
Daemon: false
StackTrace:
	at app//org.lwjgl.system.JNI.invokePV(Native Method)
	at app//org.lwjgl.glfw.GLFW.glfwSwapBuffers(GLFW.java:4535)
	at app//nullengine.client.rendering.display.GLFWWindow.endRender(GLFWWindow.java:229)
	at app//nullengine.client.rendering.EngineRenderManager.render(EngineRenderManager.java:173)
	at app//nullengine.client.EngineClientImpl.lambda$finishStage$10(EngineClientImpl.java:171)
	at app//nullengine.client.EngineClientImpl$$Lambda$242/0x00000001002da440.tick(Unknown Source)
	at app//nullengine.logic.Ticker.run(Ticker.java:69)
	at app//nullengine.client.EngineClientImpl.runEngine(EngineClientImpl.java:183)
	at app//nullengine.client.launch.Bootstrap.main(Bootstrap.java:35)

Thread: Finalizer
Daemon: true
StackTrace:
	at [email protected]/java.lang.Object.wait(Native Method)
	at [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
	at [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
	at [email protected]/java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:170)

Thread: Chunk Baker 6
Daemon: false
StackTrace:
	at [email protected]/java.util.stream.Sink$ChainedReference.<init>(Sink.java:247)
	at [email protected]/java.util.stream.ReferencePipeline$2$1.<init>(ReferencePipeline.java:168)
	at [email protected]/java.util.stream.ReferencePipeline$2.opWrapSink(ReferencePipeline.java:168)
	at [email protected]/java.util.stream.AbstractPipeline.wrapSink(AbstractPipeline.java:522)
	at [email protected]/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	at [email protected]/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
	at [email protected]/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at [email protected]/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:543)
	at app//nullengine.client.rendering.util.buffer.GLBuffer.color(GLBuffer.java:299)
	at app//nullengine.client.rendering.model.voxel.block.BlockModel$BakedModel.putVertexes(BlockModel.java:189)
	at app//nullengine.client.rendering.block.DefaultBlockRenderer.generateMesh(DefaultBlockRenderer.java:46)
	at app//nullengine.client.rendering.world.chunk.BakeChunkTask.lambda$run$0(BakeChunkTask.java:46)
	at app//nullengine.client.rendering.world.chunk.BakeChunkTask$$Lambda$325/0x000000010032b840.accept(Unknown Source)
	at [email protected]/java.util.Optional.ifPresent(Optional.java:183)
	at app//nullengine.client.rendering.world.chunk.BakeChunkTask.run(BakeChunkTask.java:44)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at [email protected]/java.lang.Thread.run(Thread.java:834)

Thread: Reference Handler
Daemon: true
StackTrace:
	at [email protected]/java.lang.ref.Reference.waitForReferencePendingList(Native Method)
	at [email protected]/java.lang.ref.Reference.processPendingReferences(Reference.java:241)
	at [email protected]/java.lang.ref.Reference$ReferenceHandler.run(Reference.java:213)

Thread: Chunk Baker 4
Daemon: false
StackTrace:
	at app//nullengine.world.gen.FlatChunkGenerator.generate(FlatChunkGenerator.java:30)
	at app//nullengine.world.chunk.WorldCommonChunkManager.loadChunk(WorldCommonChunkManager.java:56)
	at app//nullengine.world.WorldCommon.getChunk(WorldCommon.java:248)
	at app//nullengine.world.util.ChunkCache.create(ChunkCache.java:21)
	at app//nullengine.client.rendering.world.chunk.BakeChunkTask.createChunkCache(BakeChunkTask.java:57)
	at app//nullengine.client.rendering.world.chunk.BakeChunkTask.run(BakeChunkTask.java:35)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at [email protected]/java.lang.Thread.run(Thread.java:834)

Thread: World Thread - default
Daemon: false
StackTrace:
	at [email protected]/java.lang.Thread.sleep(Native Method)
	at app//nullengine.logic.Ticker.lambda$new$0(Ticker.java:19)
	at app//nullengine.logic.Ticker$$Lambda$302/0x00000001002fb440.tick(Unknown Source)
	at app//nullengine.logic.Ticker.run(Ticker.java:69)
	at app//nullengine.world.WorldCommon.run(WorldCommon.java:258)
	at [email protected]/java.lang.Thread.run(Thread.java:834)

Thread: Chunk Baker 0
Daemon: false
StackTrace:
	at app//nullengine.world.gen.FlatChunkGenerator.generate(FlatChunkGenerator.java:30)
	at app//nullengine.world.chunk.WorldCommonChunkManager.loadChunk(WorldCommonChunkManager.java:56)
	at app//nullengine.world.WorldCommon.getChunk(WorldCommon.java:248)
	at app//nullengine.world.util.ChunkCache.create(ChunkCache.java:21)
	at app//nullengine.client.rendering.world.chunk.BakeChunkTask.createChunkCache(BakeChunkTask.java:57)
	at app//nullengine.client.rendering.world.chunk.BakeChunkTask.run(BakeChunkTask.java:35)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at [email protected]/java.lang.Thread.run(Thread.java:834)

Thread: Signal Dispatcher
Daemon: true
StackTrace:

Thread: Common-Cleaner
Daemon: true
StackTrace:
	at [email protected]/java.lang.Object.wait(Native Method)
	at [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
	at [email protected]/jdk.internal.ref.CleanerImpl.run(CleanerImpl.java:148)
	at [email protected]/java.lang.Thread.run(Thread.java:834)
	at [email protected]/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:134)

Thread: Attach Listener
Daemon: true
StackTrace:

Thread: Chunk Baker 3
Daemon: false
StackTrace:
	at app//nullengine.world.gen.FlatChunkGenerator.generate(FlatChunkGenerator.java:30)
	at app//nullengine.world.chunk.WorldCommonChunkManager.loadChunk(WorldCommonChunkManager.java:56)
	at app//nullengine.world.WorldCommon.getChunk(WorldCommon.java:248)
	at app//nullengine.world.util.ChunkCache.create(ChunkCache.java:21)
	at app//nullengine.client.rendering.world.chunk.BakeChunkTask.createChunkCache(BakeChunkTask.java:57)
	at app//nullengine.client.rendering.world.chunk.BakeChunkTask.run(BakeChunkTask.java:35)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at [email protected]/java.lang.Thread.run(Thread.java:834)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.