diff --git a/hs_err_pid14780.log b/hs_err_pid14780.log new file mode 100644 index 000000000..356c2bcbe --- /dev/null +++ b/hs_err_pid14780.log @@ -0,0 +1,768 @@ +# +# A fatal error has been detected by the Java Runtime Environment: +# +# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000000503bba43, pid=14780, tid=21924 +# +# JRE version: Java(TM) SE Runtime Environment (17.0.6+9) (build 17.0.6+9-LTS-190) +# Java VM: Java HotSpot(TM) 64-Bit Server VM (17.0.6+9-LTS-190, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64) +# Problematic frame: +# C [gdx-box2d64.dll+0xba43] +# +# 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: +# https://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: -XX:+ShowCodeDetailsInExceptionMessages com.csse3200.game.desktop.DesktopLauncher + +Host: AMD Ryzen 7 5700U with Radeon Graphics , 16 cores, 15G, Windows 10 , 64 bit Build 19041 (10.0.19041.3393) +Time: Sat Sep 30 14:49:33 2023 E. Australia Standard Time elapsed time: 8.389518 seconds (0d 0h 0m 8s) + +--------------- T H R E A D --------------- + +Current thread (0x0000021c8adeb130): JavaThread "Timer-0" [_thread_in_native, id=21924, stack(0x000000a775c00000,0x000000a775d00000)] + +Stack: [0x000000a775c00000,0x000000a775d00000], sp=0x000000a775cfec30, free space=1019k +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) +C [gdx-box2d64.dll+0xba43] + +Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) +j com.badlogic.gdx.physics.box2d.World.jniCreateBody(JIFFFFFFFFZZZZZF)J+0 +j com.badlogic.gdx.physics.box2d.World.createBody(Lcom/badlogic/gdx/physics/box2d/BodyDef;)Lcom/badlogic/gdx/physics/box2d/Body;+80 +j com.csse3200.game.physics.PhysicsEngine.createBody(Lcom/badlogic/gdx/physics/box2d/BodyDef;)Lcom/badlogic/gdx/physics/box2d/Body;+16 +j com.csse3200.game.physics.components.PhysicsComponent.(Lcom/csse3200/game/physics/PhysicsEngine;)V+51 +j com.csse3200.game.physics.components.PhysicsComponent.()V+7 +j com.csse3200.game.entities.factories.NPCFactory.createRangedBaseNPC()Lcom/csse3200/game/entities/Entity;+51 +j com.csse3200.game.entities.factories.NPCFactory.createWaterQueen()Lcom/csse3200/game/entities/Entity;+0 +j com.csse3200.game.areas.ForestGameArea.spawnWaterQueen()V+47 +j com.csse3200.game.areas.ForestGameArea.spawnWave()V+57 +j com.csse3200.game.areas.ForestGameArea$1.run()V+4 +j java.util.TimerThread.mainLoop()V+221 java.base@17.0.6 +j java.util.TimerThread.run()V+1 java.base@17.0.6 +v ~StubRoutines::call_stub + +siginfo: EXCEPTION_ACCESS_VIOLATION (0xc0000005), reading address 0x00000016f9e27e30 + + +Register to memory mapping: + +RIP=0x00000000503bba43 gdx-box2d64.dll +RAX=0x00000000503ff060 gdx-box2d64.dll +RBX=0x00000016f9e27e30 is an unknown value +RCX=0x0000021cefa82500 points into unknown readable memory: 0x0000021cefa9b890 | 90 b8 a9 ef 1c 02 00 00 +RDX=0x00000000000000b8 is an unknown value +RSP=0x000000a775cfec30 is pointing into the stack for thread: 0x0000021c8adeb130 +RBP=0x0000021cefa82530 points into unknown readable memory: 0x0000000000000000 | 00 00 00 00 00 00 00 00 +RSI=0x0000021cefa82500 points into unknown readable memory: 0x0000021cefa9b890 | 90 b8 a9 ef 1c 02 00 00 +RDI=0x0000000000000148 is an unknown value +R8 =0x0000021cefa82500 points into unknown readable memory: 0x0000021cefa9b890 | 90 b8 a9 ef 1c 02 00 00 +R9 =0x0000000000000002 is an unknown value +R10=0x0000000000000001 is an unknown value +R11=0x0000000000000001 is an unknown value +R12=0x0000000000000006 is an unknown value +R13={method} {0x0000021cfa148930} 'jniCreateBody' '(JIFFFFFFFFZZZZZF)J' in 'com/badlogic/gdx/physics/box2d/World' +R14=0x000000a775cfef08 is pointing into the stack for thread: 0x0000021c8adeb130 +R15=0x0000021c8adeb130 is a thread + + +Registers: +RAX=0x00000000503ff060, RBX=0x00000016f9e27e30, RCX=0x0000021cefa82500, RDX=0x00000000000000b8 +RSP=0x000000a775cfec30, RBP=0x0000021cefa82530, RSI=0x0000021cefa82500, RDI=0x0000000000000148 +R8 =0x0000021cefa82500, R9 =0x0000000000000002, R10=0x0000000000000001, R11=0x0000000000000001 +R12=0x0000000000000006, R13=0x0000021cfa148928, R14=0x000000a775cfef08, R15=0x0000021c8adeb130 +RIP=0x00000000503bba43, EFLAGS=0x0000000000010206 + +Top of Stack: (sp=0x000000a775cfec30) +0x000000a775cfec30: 0000000000000020 0000021c8adeb130 +0x000000a775cfec40: 000000a775cfed60 0000021c8adeb130 +0x000000a775cfec50: 0000021cfa148928 0000021c8adeb130 +0x000000a775cfec60: 00007ffb5b1f1f58 0000021cefa82500 +0x000000a775cfec70: 000000a775cfed10 0000000000000148 +0x000000a775cfec80: 000000a775cfee60 0000000000000000 +0x000000a775cfec90: 0000021cfa148928 00000000503d0e22 +0x000000a775cfeca0: 000000a775cfee78 000000a775cfedf0 +0x000000a775cfecb0: 000000a775cfed50 000000a775cfed50 +0x000000a775cfecc0: 0000ac0100000003 0000021cfa148928 +0x000000a775cfecd0: 0000021c8adeb130 0000000000000001 +0x000000a775cfece0: 0000021ceee7ba18 00000000503d66e6 +0x000000a775cfecf0: 0000021c8adeb130 000000a775cfef08 +0x000000a775cfed00: 000000a775cfee60 0000021cd9b28f0b +0x000000a775cfed10: 0000000000000002 0000000000000000 +0x000000a775cfed20: 0000000000000000 40a0000000000000 + +Instructions: (pc=0x00000000503bba43) +0x00000000503bb943: f6 48 8d 2d b5 16 03 00 48 8d 3d 0e 37 04 00 4c +0x00000000503bb953: 8d 2d f7 31 03 00 4c 8d 25 55 32 03 00 eb 1a 83 +0x00000000503bb963: fe 0d 7e 11 41 b8 49 00 00 00 4c 89 ea 4c 89 e1 +0x00000000503bb973: e8 18 82 02 00 48 83 c3 01 48 63 c6 39 5c 85 00 +0x00000000503bb983: 7d 03 83 c6 01 48 81 fb 80 02 00 00 40 88 34 1f +0x00000000503bb993: 75 cd c6 05 a4 36 04 00 01 48 83 c4 28 5b 5e 5f +0x00000000503bb9a3: 5d 41 5c 41 5d c3 90 66 0f 1f 44 00 00 57 56 53 +0x00000000503bb9b3: 48 83 ec 20 8b 41 08 48 89 cf 85 c0 7e 1d 31 f6 +0x00000000503bb9c3: 31 db 48 8b 07 83 c3 01 48 8b 4c 30 08 48 83 c6 +0x00000000503bb9d3: 10 e8 a7 08 00 00 39 5f 08 7f e7 48 8b 0f 48 83 +0x00000000503bb9e3: c4 20 5b 5e 5f e9 93 08 00 00 90 66 90 41 55 41 +0x00000000503bb9f3: 54 55 57 56 53 48 83 ec 38 48 63 da 48 89 ce 83 +0x00000000503bba03: fb 00 0f 84 95 01 00 00 0f 8e 6f 01 00 00 81 fb +0x00000000503bba13: 80 02 00 00 0f 8f 23 01 00 00 48 8d 05 3c 36 04 +0x00000000503bba23: 00 44 0f b6 24 18 41 80 fc 0d 4c 89 e3 0f 87 da +0x00000000503bba33: 00 00 00 48 8d 2c de 48 8b 5d 10 48 85 db 74 1d +0x00000000503bba43: 48 8b 03 48 89 45 10 48 89 d8 48 83 c4 38 5b 5e +0x00000000503bba53: 5f 5d 41 5c 41 5d c3 66 0f 1f 44 00 00 48 63 46 +0x00000000503bba63: 08 4c 8b 2e 3b 46 0c 0f 84 40 01 00 00 48 c1 e0 +0x00000000503bba73: 04 b9 00 40 00 00 4d 63 e4 49 8d 7c 05 00 e8 ea +0x00000000503bba83: 07 00 00 48 89 c3 48 89 47 08 48 8d 05 6c 15 03 +0x00000000503bba93: 00 46 8b 24 a0 b8 00 40 00 00 99 41 f7 fc 45 89 +0x00000000503bbaa3: e5 44 89 27 44 0f af e8 41 81 fd 00 40 00 00 0f +0x00000000503bbab3: 8f 9b 00 00 00 83 f8 01 7e 23 49 63 d4 83 e8 01 +0x00000000503bbac3: 45 31 c0 49 89 d1 48 8d 0c 13 49 f7 d9 41 83 c0 +0x00000000503bbad3: 01 4a 89 0c 09 48 01 d1 41 39 c0 75 f0 45 29 e5 +0x00000000503bbae3: 4d 63 ed 4a c7 04 2b 00 00 00 00 48 8b 03 48 89 +0x00000000503bbaf3: 45 10 83 46 08 01 48 89 d8 48 83 c4 38 5b 5e 5f +0x00000000503bbb03: 5d 41 5c 41 5d c3 0f 1f 80 00 00 00 00 48 8d 15 +0x00000000503bbb13: 39 30 03 00 48 8d 0d b2 30 03 00 48 8d 2c de 41 +0x00000000503bbb23: b8 70 00 00 00 e8 63 80 02 00 48 8b 5d 10 48 85 +0x00000000503bbb33: db 0f 85 09 ff ff ff e9 21 ff ff ff 90 89 d9 48 + + +Stack slot to memory mapping: +stack at sp + 0 slots: 0x0000000000000020 is an unknown value +stack at sp + 1 slots: 0x0000021c8adeb130 is a thread +stack at sp + 2 slots: 0x000000a775cfed60 is pointing into the stack for thread: 0x0000021c8adeb130 +stack at sp + 3 slots: 0x0000021c8adeb130 is a thread +stack at sp + 4 slots: {method} {0x0000021cfa148930} 'jniCreateBody' '(JIFFFFFFFFZZZZZF)J' in 'com/badlogic/gdx/physics/box2d/World' +stack at sp + 5 slots: 0x0000021c8adeb130 is a thread +stack at sp + 6 slots: 0x00007ffb5b1f1f58 jvm.dll +stack at sp + 7 slots: 0x0000021cefa82500 points into unknown readable memory: 0x0000021cefa9b890 | 90 b8 a9 ef 1c 02 00 00 + + +--------------- P R O C E S S --------------- + +Threads class SMR info: +_java_thread_list=0x0000021c8adea250, length=26, elements={ +0x0000021cc967fe00, 0x0000021cee9a45a0, 0x0000021cee9a5210, 0x0000021cee9b8a10, +0x0000021cee9b93c0, 0x0000021cee9b9d70, 0x0000021cee9baf40, 0x0000021cee9bc850, +0x0000021cee9be570, 0x0000021cef4057a0, 0x0000021cef54b130, 0x0000021cef54f650, +0x0000021cef55a3c0, 0x0000021cef569e90, 0x0000021cf6d26900, 0x0000021cf6d2ad60, +0x0000021cf7016180, 0x0000021cef741450, 0x0000021cef741960, 0x0000021cef7441e0, +0x0000021cef742890, 0x0000021cef7432b0, 0x0000021cef742380, 0x0000021cef742da0, +0x0000021cef7437c0, 0x0000021c8adeb130 +} + +Java Threads: ( => current thread ) + 0x0000021cc967fe00 JavaThread "main" [_thread_in_native, id=25052, stack(0x000000a771a00000,0x000000a771b00000)] + 0x0000021cee9a45a0 JavaThread "Reference Handler" daemon [_thread_blocked, id=8828, stack(0x000000a772100000,0x000000a772200000)] + 0x0000021cee9a5210 JavaThread "Finalizer" daemon [_thread_blocked, id=18936, stack(0x000000a772200000,0x000000a772300000)] + 0x0000021cee9b8a10 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=24024, stack(0x000000a772300000,0x000000a772400000)] + 0x0000021cee9b93c0 JavaThread "Attach Listener" daemon [_thread_blocked, id=23844, stack(0x000000a772400000,0x000000a772500000)] + 0x0000021cee9b9d70 JavaThread "Service Thread" daemon [_thread_blocked, id=11692, stack(0x000000a772500000,0x000000a772600000)] + 0x0000021cee9baf40 JavaThread "Monitor Deflation Thread" daemon [_thread_blocked, id=9844, stack(0x000000a772600000,0x000000a772700000)] + 0x0000021cee9bc850 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=28512, stack(0x000000a772700000,0x000000a772800000)] + 0x0000021cee9be570 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=12252, stack(0x000000a772800000,0x000000a772900000)] + 0x0000021cef4057a0 JavaThread "Sweeper thread" daemon [_thread_blocked, id=27432, stack(0x000000a772900000,0x000000a772a00000)] + 0x0000021cef54b130 JavaThread "C1 CompilerThread1" daemon [_thread_blocked, id=26128, stack(0x000000a772a00000,0x000000a772b00000)] + 0x0000021cef54f650 JavaThread "C1 CompilerThread2" daemon [_thread_blocked, id=16368, stack(0x000000a772b00000,0x000000a772c00000)] + 0x0000021cef55a3c0 JavaThread "Notification Thread" daemon [_thread_blocked, id=26100, stack(0x000000a772c00000,0x000000a772d00000)] + 0x0000021cef569e90 JavaThread "Common-Cleaner" daemon [_thread_blocked, id=16312, stack(0x000000a772e00000,0x000000a772f00000)] + 0x0000021cf6d26900 JavaThread "AssetManager" daemon [_thread_blocked, id=27564, stack(0x000000a774e00000,0x000000a774f00000)] + 0x0000021cf6d2ad60 JavaThread "LWJGL3 Timer" daemon [_thread_blocked, id=3840, stack(0x000000a774f00000,0x000000a775000000)] + 0x0000021cf7016180 JavaThread "AssetManager" daemon [_thread_blocked, id=26440, stack(0x000000a775100000,0x000000a775200000)] + 0x0000021cef741450 JavaThread "C1 CompilerThread3" daemon [_thread_blocked, id=18460, stack(0x000000a775200000,0x000000a775300000)] + 0x0000021cef741960 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=11212, stack(0x000000a775300000,0x000000a775400000)] + 0x0000021cef7441e0 JavaThread "C2 CompilerThread2" daemon [_thread_blocked, id=6356, stack(0x000000a775400000,0x000000a775500000)] + 0x0000021cef742890 JavaThread "C2 CompilerThread3" daemon [_thread_blocked, id=29608, stack(0x000000a775700000,0x000000a775800000)] + 0x0000021cef7432b0 JavaThread "C2 CompilerThread4" daemon [_thread_blocked, id=29912, stack(0x000000a775800000,0x000000a775900000)] + 0x0000021cef742380 JavaThread "C2 CompilerThread5" daemon [_thread_blocked, id=28752, stack(0x000000a775900000,0x000000a775a00000)] + 0x0000021cef742da0 JavaThread "C2 CompilerThread6" daemon [_thread_blocked, id=28076, stack(0x000000a775a00000,0x000000a775b00000)] + 0x0000021cef7437c0 JavaThread "C2 CompilerThread7" daemon [_thread_blocked, id=3692, stack(0x000000a775b00000,0x000000a775c00000)] +=>0x0000021c8adeb130 JavaThread "Timer-0" [_thread_in_native, id=21924, stack(0x000000a775c00000,0x000000a775d00000)] + +Other Threads: + 0x0000021cee99b070 VMThread "VM Thread" [stack: 0x000000a772000000,0x000000a772100000] [id=17120] + 0x0000021cc971b140 WatcherThread [stack: 0x000000a772d00000,0x000000a772e00000] [id=23664] + 0x0000021cc96f0b90 GCTaskThread "GC Thread#0" [stack: 0x000000a771b00000,0x000000a771c00000] [id=18624] + 0x0000021cf6b16240 GCTaskThread "GC Thread#1" [stack: 0x000000a773f00000,0x000000a774000000] [id=26544] + 0x0000021cf6b16a50 GCTaskThread "GC Thread#2" [stack: 0x000000a774700000,0x000000a774800000] [id=18588] + 0x0000021cf6b164f0 GCTaskThread "GC Thread#3" [stack: 0x000000a774800000,0x000000a774900000] [id=20528] + 0x0000021cf6b13740 GCTaskThread "GC Thread#4" [stack: 0x000000a774900000,0x000000a774a00000] [id=24856] + 0x0000021cf6b167a0 GCTaskThread "GC Thread#5" [stack: 0x000000a774a00000,0x000000a774b00000] [id=15084] + 0x0000021cf6b12f30 GCTaskThread "GC Thread#6" [stack: 0x000000a774b00000,0x000000a774c00000] [id=14300] + 0x0000021cf6b13490 GCTaskThread "GC Thread#7" [stack: 0x000000a774c00000,0x000000a774d00000] [id=29596] + 0x0000021cf6b139f0 GCTaskThread "GC Thread#8" [stack: 0x000000a774d00000,0x000000a774e00000] [id=26504] + 0x0000021cf6dd3070 GCTaskThread "GC Thread#9" [stack: 0x000000a775500000,0x000000a775600000] [id=27276] + 0x0000021cf6dd1840 GCTaskThread "GC Thread#10" [stack: 0x000000a775600000,0x000000a775700000] [id=27384] + 0x0000021cc9703170 ConcurrentGCThread "G1 Main Marker" [stack: 0x000000a771c00000,0x000000a771d00000] [id=29212] + 0x0000021cc9705a90 ConcurrentGCThread "G1 Conc#0" [stack: 0x000000a771d00000,0x000000a771e00000] [id=27848] + 0x0000021cee854940 ConcurrentGCThread "G1 Refine#0" [stack: 0x000000a771e00000,0x000000a771f00000] [id=2032] + 0x0000021cee855260 ConcurrentGCThread "G1 Service" [stack: 0x000000a771f00000,0x000000a772000000] [id=28436] + +Threads with active compile tasks: + +VM state: not at safepoint (normal execution) + +VM Mutex/Monitor currently owned by a thread: None + +Heap address: 0x0000000709800000, size: 3944 MB, Compressed Oops mode: Zero based, Oop shift amount: 3 + +CDS archive(s) mapped at: [0x0000000800000000-0x0000000800bd0000-0x0000000800bd0000), size 12386304, SharedBaseAddress: 0x0000000800000000, ArchiveRelocationMode: 0. +Compressed class space mapped at: 0x0000000800c00000-0x0000000840c00000, reserved size: 1073741824 +Narrow klass base: 0x0000000800000000, Narrow klass shift: 0, Narrow klass range: 0x100000000 + +GC Precious Log: + CPUs: 16 total, 16 available + Memory: 15769M + Large Page Support: Disabled + NUMA Support: Disabled + Compressed Oops: Enabled (Zero based) + Heap Region Size: 2M + Heap Min Capacity: 8M + Heap Initial Capacity: 248M + Heap Max Capacity: 3944M + Pre-touch: Disabled + Parallel Workers: 13 + Concurrent Workers: 3 + Concurrent Refinement Workers: 13 + Periodic GC: Disabled + +Heap: + garbage-first heap total 253952K, used 58349K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 20 young (40960K), 1 survivors (2048K) + Metaspace used 10887K, committed 11008K, reserved 1064960K + class space used 960K, committed 1024K, reserved 1048576K + +Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, OA=open archive, CA=closed archive, TAMS=top-at-mark-start (previous, next) +| 0|0x0000000709800000, 0x0000000709a00000, 0x0000000709a00000|100%|HS| |TAMS 0x0000000709800000, 0x0000000709800000| Complete +| 1|0x0000000709a00000, 0x0000000709c00000, 0x0000000709c00000|100%|HS| |TAMS 0x0000000709a00000, 0x0000000709a00000| Complete +| 2|0x0000000709c00000, 0x0000000709e00000, 0x0000000709e00000|100%| O| |TAMS 0x0000000709c00000, 0x0000000709c00000| Untracked +| 3|0x0000000709e00000, 0x0000000709efb600, 0x000000070a000000| 49%| O| |TAMS 0x0000000709e00000, 0x0000000709e00000| Untracked +| 4|0x000000070a000000, 0x000000070a200000, 0x000000070a200000|100%|HS| |TAMS 0x000000070a000000, 0x000000070a000000| Complete +| 5|0x000000070a200000, 0x000000070a400000, 0x000000070a400000|100%|HS| |TAMS 0x000000070a200000, 0x000000070a200000| Complete +| 6|0x000000070a400000, 0x000000070a600000, 0x000000070a600000|100%|HS| |TAMS 0x000000070a400000, 0x000000070a400000| Complete +| 7|0x000000070a600000, 0x000000070a800000, 0x000000070a800000|100%|HC| |TAMS 0x000000070a600000, 0x000000070a600000| Complete +| 8|0x000000070a800000, 0x000000070aa00000, 0x000000070aa00000|100%|HS| |TAMS 0x000000070a800000, 0x000000070a800000| Complete +| 9|0x000000070aa00000, 0x000000070ac00000, 0x000000070ac00000|100%|HS| |TAMS 0x000000070aa00000, 0x000000070aa00000| Complete +| 10|0x000000070ac00000, 0x000000070ae00000, 0x000000070ae00000|100%|HS| |TAMS 0x000000070ac00000, 0x000000070ac00000| Complete +| 11|0x000000070ae00000, 0x000000070ae00000, 0x000000070b000000| 0%| F| |TAMS 0x000000070ae00000, 0x000000070ae00000| Untracked +| 12|0x000000070b000000, 0x000000070b000000, 0x000000070b200000| 0%| F| |TAMS 0x000000070b000000, 0x000000070b000000| Untracked +| 13|0x000000070b200000, 0x000000070b200000, 0x000000070b400000| 0%| F| |TAMS 0x000000070b200000, 0x000000070b200000| Untracked +| 14|0x000000070b400000, 0x000000070b400000, 0x000000070b600000| 0%| F| |TAMS 0x000000070b400000, 0x000000070b400000| Untracked +| 15|0x000000070b600000, 0x000000070b600000, 0x000000070b800000| 0%| F| |TAMS 0x000000070b600000, 0x000000070b600000| Untracked +| 16|0x000000070b800000, 0x000000070b800000, 0x000000070ba00000| 0%| F| |TAMS 0x000000070b800000, 0x000000070b800000| Untracked +| 17|0x000000070ba00000, 0x000000070ba00000, 0x000000070bc00000| 0%| F| |TAMS 0x000000070ba00000, 0x000000070ba00000| Untracked +| 18|0x000000070bc00000, 0x000000070bc00000, 0x000000070be00000| 0%| F| |TAMS 0x000000070bc00000, 0x000000070bc00000| Untracked +| 19|0x000000070be00000, 0x000000070be00000, 0x000000070c000000| 0%| F| |TAMS 0x000000070be00000, 0x000000070be00000| Untracked +| 20|0x000000070c000000, 0x000000070c000000, 0x000000070c200000| 0%| F| |TAMS 0x000000070c000000, 0x000000070c000000| Untracked +| 21|0x000000070c200000, 0x000000070c200000, 0x000000070c400000| 0%| F| |TAMS 0x000000070c200000, 0x000000070c200000| Untracked +| 22|0x000000070c400000, 0x000000070c400000, 0x000000070c600000| 0%| F| |TAMS 0x000000070c400000, 0x000000070c400000| Untracked +| 23|0x000000070c600000, 0x000000070c600000, 0x000000070c800000| 0%| F| |TAMS 0x000000070c600000, 0x000000070c600000| Untracked +| 24|0x000000070c800000, 0x000000070c800000, 0x000000070ca00000| 0%| F| |TAMS 0x000000070c800000, 0x000000070c800000| Untracked +| 25|0x000000070ca00000, 0x000000070ca00000, 0x000000070cc00000| 0%| F| |TAMS 0x000000070ca00000, 0x000000070ca00000| Untracked +| 26|0x000000070cc00000, 0x000000070cc00000, 0x000000070ce00000| 0%| F| |TAMS 0x000000070cc00000, 0x000000070cc00000| Untracked +| 27|0x000000070ce00000, 0x000000070ce00000, 0x000000070d000000| 0%| F| |TAMS 0x000000070ce00000, 0x000000070ce00000| Untracked +| 28|0x000000070d000000, 0x000000070d000000, 0x000000070d200000| 0%| F| |TAMS 0x000000070d000000, 0x000000070d000000| Untracked +| 29|0x000000070d200000, 0x000000070d200000, 0x000000070d400000| 0%| F| |TAMS 0x000000070d200000, 0x000000070d200000| Untracked +| 30|0x000000070d400000, 0x000000070d400000, 0x000000070d600000| 0%| F| |TAMS 0x000000070d400000, 0x000000070d400000| Untracked +| 31|0x000000070d600000, 0x000000070d600000, 0x000000070d800000| 0%| F| |TAMS 0x000000070d600000, 0x000000070d600000| Untracked +| 32|0x000000070d800000, 0x000000070d800000, 0x000000070da00000| 0%| F| |TAMS 0x000000070d800000, 0x000000070d800000| Untracked +| 33|0x000000070da00000, 0x000000070da00000, 0x000000070dc00000| 0%| F| |TAMS 0x000000070da00000, 0x000000070da00000| Untracked +| 34|0x000000070dc00000, 0x000000070dc00000, 0x000000070de00000| 0%| F| |TAMS 0x000000070dc00000, 0x000000070dc00000| Untracked +| 35|0x000000070de00000, 0x000000070de00000, 0x000000070e000000| 0%| F| |TAMS 0x000000070de00000, 0x000000070de00000| Untracked +| 36|0x000000070e000000, 0x000000070e000000, 0x000000070e200000| 0%| F| |TAMS 0x000000070e000000, 0x000000070e000000| Untracked +| 37|0x000000070e200000, 0x000000070e200000, 0x000000070e400000| 0%| F| |TAMS 0x000000070e200000, 0x000000070e200000| Untracked +| 38|0x000000070e400000, 0x000000070e400000, 0x000000070e600000| 0%| F| |TAMS 0x000000070e400000, 0x000000070e400000| Untracked +| 39|0x000000070e600000, 0x000000070e600000, 0x000000070e800000| 0%| F| |TAMS 0x000000070e600000, 0x000000070e600000| Untracked +| 40|0x000000070e800000, 0x000000070e800000, 0x000000070ea00000| 0%| F| |TAMS 0x000000070e800000, 0x000000070e800000| Untracked +| 41|0x000000070ea00000, 0x000000070ea00000, 0x000000070ec00000| 0%| F| |TAMS 0x000000070ea00000, 0x000000070ea00000| Untracked +| 42|0x000000070ec00000, 0x000000070ec00000, 0x000000070ee00000| 0%| F| |TAMS 0x000000070ec00000, 0x000000070ec00000| Untracked +| 43|0x000000070ee00000, 0x000000070ee00000, 0x000000070f000000| 0%| F| |TAMS 0x000000070ee00000, 0x000000070ee00000| Untracked +| 44|0x000000070f000000, 0x000000070f000000, 0x000000070f200000| 0%| F| |TAMS 0x000000070f000000, 0x000000070f000000| Untracked +| 45|0x000000070f200000, 0x000000070f200000, 0x000000070f400000| 0%| F| |TAMS 0x000000070f200000, 0x000000070f200000| Untracked +| 46|0x000000070f400000, 0x000000070f400000, 0x000000070f600000| 0%| F| |TAMS 0x000000070f400000, 0x000000070f400000| Untracked +| 47|0x000000070f600000, 0x000000070f600000, 0x000000070f800000| 0%| F| |TAMS 0x000000070f600000, 0x000000070f600000| Untracked +| 48|0x000000070f800000, 0x000000070f800000, 0x000000070fa00000| 0%| F| |TAMS 0x000000070f800000, 0x000000070f800000| Untracked +| 49|0x000000070fa00000, 0x000000070fa00000, 0x000000070fc00000| 0%| F| |TAMS 0x000000070fa00000, 0x000000070fa00000| Untracked +| 50|0x000000070fc00000, 0x000000070fc00000, 0x000000070fe00000| 0%| F| |TAMS 0x000000070fc00000, 0x000000070fc00000| Untracked +| 51|0x000000070fe00000, 0x000000070fe00000, 0x0000000710000000| 0%| F| |TAMS 0x000000070fe00000, 0x000000070fe00000| Untracked +| 52|0x0000000710000000, 0x0000000710000000, 0x0000000710200000| 0%| F| |TAMS 0x0000000710000000, 0x0000000710000000| Untracked +| 53|0x0000000710200000, 0x0000000710200000, 0x0000000710400000| 0%| F| |TAMS 0x0000000710200000, 0x0000000710200000| Untracked +| 54|0x0000000710400000, 0x0000000710400000, 0x0000000710600000| 0%| F| |TAMS 0x0000000710400000, 0x0000000710400000| Untracked +| 55|0x0000000710600000, 0x0000000710600000, 0x0000000710800000| 0%| F| |TAMS 0x0000000710600000, 0x0000000710600000| Untracked +| 56|0x0000000710800000, 0x0000000710800000, 0x0000000710a00000| 0%| F| |TAMS 0x0000000710800000, 0x0000000710800000| Untracked +| 57|0x0000000710a00000, 0x0000000710a00000, 0x0000000710c00000| 0%| F| |TAMS 0x0000000710a00000, 0x0000000710a00000| Untracked +| 58|0x0000000710c00000, 0x0000000710c00000, 0x0000000710e00000| 0%| F| |TAMS 0x0000000710c00000, 0x0000000710c00000| Untracked +| 59|0x0000000710e00000, 0x0000000710e00000, 0x0000000711000000| 0%| F| |TAMS 0x0000000710e00000, 0x0000000710e00000| Untracked +| 60|0x0000000711000000, 0x0000000711000000, 0x0000000711200000| 0%| F| |TAMS 0x0000000711000000, 0x0000000711000000| Untracked +| 61|0x0000000711200000, 0x0000000711200000, 0x0000000711400000| 0%| F| |TAMS 0x0000000711200000, 0x0000000711200000| Untracked +| 62|0x0000000711400000, 0x0000000711400000, 0x0000000711600000| 0%| F| |TAMS 0x0000000711400000, 0x0000000711400000| Untracked +| 63|0x0000000711600000, 0x0000000711600000, 0x0000000711800000| 0%| F| |TAMS 0x0000000711600000, 0x0000000711600000| Untracked +| 64|0x0000000711800000, 0x0000000711800000, 0x0000000711a00000| 0%| F| |TAMS 0x0000000711800000, 0x0000000711800000| Untracked +| 65|0x0000000711a00000, 0x0000000711a00000, 0x0000000711c00000| 0%| F| |TAMS 0x0000000711a00000, 0x0000000711a00000| Untracked +| 66|0x0000000711c00000, 0x0000000711c00000, 0x0000000711e00000| 0%| F| |TAMS 0x0000000711c00000, 0x0000000711c00000| Untracked +| 67|0x0000000711e00000, 0x0000000711e00000, 0x0000000712000000| 0%| F| |TAMS 0x0000000711e00000, 0x0000000711e00000| Untracked +| 68|0x0000000712000000, 0x0000000712000000, 0x0000000712200000| 0%| F| |TAMS 0x0000000712000000, 0x0000000712000000| Untracked +| 69|0x0000000712200000, 0x0000000712200000, 0x0000000712400000| 0%| F| |TAMS 0x0000000712200000, 0x0000000712200000| Untracked +| 70|0x0000000712400000, 0x0000000712400000, 0x0000000712600000| 0%| F| |TAMS 0x0000000712400000, 0x0000000712400000| Untracked +| 71|0x0000000712600000, 0x0000000712600000, 0x0000000712800000| 0%| F| |TAMS 0x0000000712600000, 0x0000000712600000| Untracked +| 72|0x0000000712800000, 0x0000000712800000, 0x0000000712a00000| 0%| F| |TAMS 0x0000000712800000, 0x0000000712800000| Untracked +| 73|0x0000000712a00000, 0x0000000712a00000, 0x0000000712c00000| 0%| F| |TAMS 0x0000000712a00000, 0x0000000712a00000| Untracked +| 74|0x0000000712c00000, 0x0000000712c00000, 0x0000000712e00000| 0%| F| |TAMS 0x0000000712c00000, 0x0000000712c00000| Untracked +| 75|0x0000000712e00000, 0x0000000712e00000, 0x0000000713000000| 0%| F| |TAMS 0x0000000712e00000, 0x0000000712e00000| Untracked +| 76|0x0000000713000000, 0x0000000713000000, 0x0000000713200000| 0%| F| |TAMS 0x0000000713000000, 0x0000000713000000| Untracked +| 77|0x0000000713200000, 0x0000000713200000, 0x0000000713400000| 0%| F| |TAMS 0x0000000713200000, 0x0000000713200000| Untracked +| 78|0x0000000713400000, 0x0000000713400000, 0x0000000713600000| 0%| F| |TAMS 0x0000000713400000, 0x0000000713400000| Untracked +| 79|0x0000000713600000, 0x0000000713600000, 0x0000000713800000| 0%| F| |TAMS 0x0000000713600000, 0x0000000713600000| Untracked +| 80|0x0000000713800000, 0x0000000713800000, 0x0000000713a00000| 0%| F| |TAMS 0x0000000713800000, 0x0000000713800000| Untracked +| 81|0x0000000713a00000, 0x0000000713a00000, 0x0000000713c00000| 0%| F| |TAMS 0x0000000713a00000, 0x0000000713a00000| Untracked +| 82|0x0000000713c00000, 0x0000000713c00000, 0x0000000713e00000| 0%| F| |TAMS 0x0000000713c00000, 0x0000000713c00000| Untracked +| 83|0x0000000713e00000, 0x0000000713e00000, 0x0000000714000000| 0%| F| |TAMS 0x0000000713e00000, 0x0000000713e00000| Untracked +| 84|0x0000000714000000, 0x0000000714000000, 0x0000000714200000| 0%| F| |TAMS 0x0000000714000000, 0x0000000714000000| Untracked +| 85|0x0000000714200000, 0x0000000714200000, 0x0000000714400000| 0%| F| |TAMS 0x0000000714200000, 0x0000000714200000| Untracked +| 86|0x0000000714400000, 0x0000000714400000, 0x0000000714600000| 0%| F| |TAMS 0x0000000714400000, 0x0000000714400000| Untracked +| 87|0x0000000714600000, 0x0000000714600000, 0x0000000714800000| 0%| F| |TAMS 0x0000000714600000, 0x0000000714600000| Untracked +| 88|0x0000000714800000, 0x0000000714800000, 0x0000000714a00000| 0%| F| |TAMS 0x0000000714800000, 0x0000000714800000| Untracked +| 89|0x0000000714a00000, 0x0000000714a00000, 0x0000000714c00000| 0%| F| |TAMS 0x0000000714a00000, 0x0000000714a00000| Untracked +| 90|0x0000000714c00000, 0x0000000714c00000, 0x0000000714e00000| 0%| F| |TAMS 0x0000000714c00000, 0x0000000714c00000| Untracked +| 91|0x0000000714e00000, 0x0000000714e00000, 0x0000000715000000| 0%| F| |TAMS 0x0000000714e00000, 0x0000000714e00000| Untracked +| 92|0x0000000715000000, 0x0000000715000000, 0x0000000715200000| 0%| F| |TAMS 0x0000000715000000, 0x0000000715000000| Untracked +| 93|0x0000000715200000, 0x0000000715200000, 0x0000000715400000| 0%| F| |TAMS 0x0000000715200000, 0x0000000715200000| Untracked +| 94|0x0000000715400000, 0x0000000715400000, 0x0000000715600000| 0%| F| |TAMS 0x0000000715400000, 0x0000000715400000| Untracked +| 95|0x0000000715600000, 0x0000000715600000, 0x0000000715800000| 0%| F| |TAMS 0x0000000715600000, 0x0000000715600000| Untracked +| 96|0x0000000715800000, 0x0000000715800000, 0x0000000715a00000| 0%| F| |TAMS 0x0000000715800000, 0x0000000715800000| Untracked +| 97|0x0000000715a00000, 0x0000000715a00000, 0x0000000715c00000| 0%| F| |TAMS 0x0000000715a00000, 0x0000000715a00000| Untracked +| 98|0x0000000715c00000, 0x0000000715c00000, 0x0000000715e00000| 0%| F| |TAMS 0x0000000715c00000, 0x0000000715c00000| Untracked +| 99|0x0000000715e00000, 0x0000000715e00000, 0x0000000716000000| 0%| F| |TAMS 0x0000000715e00000, 0x0000000715e00000| Untracked +| 100|0x0000000716000000, 0x0000000716000000, 0x0000000716200000| 0%| F| |TAMS 0x0000000716000000, 0x0000000716000000| Untracked +| 101|0x0000000716200000, 0x0000000716200000, 0x0000000716400000| 0%| F| |TAMS 0x0000000716200000, 0x0000000716200000| Untracked +| 102|0x0000000716400000, 0x0000000716400000, 0x0000000716600000| 0%| F| |TAMS 0x0000000716400000, 0x0000000716400000| Untracked +| 103|0x0000000716600000, 0x0000000716600000, 0x0000000716800000| 0%| F| |TAMS 0x0000000716600000, 0x0000000716600000| Untracked +| 104|0x0000000716800000, 0x0000000716976458, 0x0000000716a00000| 73%| E| |TAMS 0x0000000716800000, 0x0000000716800000| Complete +| 105|0x0000000716a00000, 0x0000000716c00000, 0x0000000716c00000|100%| S|CS|TAMS 0x0000000716a00000, 0x0000000716a00000| Complete +| 106|0x0000000716c00000, 0x0000000716e00000, 0x0000000716e00000|100%| E|CS|TAMS 0x0000000716c00000, 0x0000000716c00000| Complete +| 107|0x0000000716e00000, 0x0000000717000000, 0x0000000717000000|100%| E|CS|TAMS 0x0000000716e00000, 0x0000000716e00000| Complete +| 108|0x0000000717000000, 0x0000000717200000, 0x0000000717200000|100%| E|CS|TAMS 0x0000000717000000, 0x0000000717000000| Complete +| 109|0x0000000717200000, 0x0000000717400000, 0x0000000717400000|100%| E|CS|TAMS 0x0000000717200000, 0x0000000717200000| Complete +| 110|0x0000000717400000, 0x0000000717600000, 0x0000000717600000|100%| E|CS|TAMS 0x0000000717400000, 0x0000000717400000| Complete +| 111|0x0000000717600000, 0x0000000717800000, 0x0000000717800000|100%| E|CS|TAMS 0x0000000717600000, 0x0000000717600000| Complete +| 112|0x0000000717800000, 0x0000000717a00000, 0x0000000717a00000|100%| E|CS|TAMS 0x0000000717800000, 0x0000000717800000| Complete +| 113|0x0000000717a00000, 0x0000000717c00000, 0x0000000717c00000|100%| E|CS|TAMS 0x0000000717a00000, 0x0000000717a00000| Complete +| 114|0x0000000717c00000, 0x0000000717e00000, 0x0000000717e00000|100%| E| |TAMS 0x0000000717c00000, 0x0000000717c00000| Complete +| 115|0x0000000717e00000, 0x0000000718000000, 0x0000000718000000|100%| E|CS|TAMS 0x0000000717e00000, 0x0000000717e00000| Complete +| 116|0x0000000718000000, 0x0000000718200000, 0x0000000718200000|100%| E|CS|TAMS 0x0000000718000000, 0x0000000718000000| Complete +| 117|0x0000000718200000, 0x0000000718400000, 0x0000000718400000|100%| E|CS|TAMS 0x0000000718200000, 0x0000000718200000| Complete +| 118|0x0000000718400000, 0x0000000718600000, 0x0000000718600000|100%| E|CS|TAMS 0x0000000718400000, 0x0000000718400000| Complete +| 119|0x0000000718600000, 0x0000000718800000, 0x0000000718800000|100%| E|CS|TAMS 0x0000000718600000, 0x0000000718600000| Complete +| 120|0x0000000718800000, 0x0000000718a00000, 0x0000000718a00000|100%| E|CS|TAMS 0x0000000718800000, 0x0000000718800000| Complete +| 121|0x0000000718a00000, 0x0000000718c00000, 0x0000000718c00000|100%| E|CS|TAMS 0x0000000718a00000, 0x0000000718a00000| Complete +| 122|0x0000000718c00000, 0x0000000718e00000, 0x0000000718e00000|100%| E|CS|TAMS 0x0000000718c00000, 0x0000000718c00000| Complete +| 123|0x0000000718e00000, 0x0000000719000000, 0x0000000719000000|100%| E|CS|TAMS 0x0000000718e00000, 0x0000000718e00000| Complete + +Card table byte_map: [0x0000021ce2e60000,0x0000021ce3620000] _byte_map_base: 0x0000021cdf614000 + +Marking Bits (Prev, Next): (CMBitMap*) 0x0000021cc96f21b0, (CMBitMap*) 0x0000021cc96f21f0 + Prev Bits: [0x0000021ce3de0000, 0x0000021ce7b80000) + Next Bits: [0x0000021ce7b80000, 0x0000021ceb920000) + +Polling page: 0x0000021cc9740000 + +Metaspace: + +Usage: + Non-class: 9.69 MB used. + Class: 960.75 KB used. + Both: 10.63 MB used. + +Virtual space: + Non-class space: 16.00 MB reserved, 9.75 MB ( 61%) committed, 2 nodes. + Class space: 1.00 GB reserved, 1.00 MB ( <1%) committed, 1 nodes. + Both: 1.02 GB reserved, 10.75 MB ( 1%) committed. + +Chunk freelists: + Non-Class: 1.62 MB + Class: 3.02 MB + Both: 4.64 MB + +MaxMetaspaceSize: unlimited +CompressedClassSpaceSize: 1.00 GB +Initial GC threshold: 21.00 MB +Current GC threshold: 21.00 MB +CDS: on +MetaspaceReclaimPolicy: balanced + - commit_granule_bytes: 65536. + - commit_granule_words: 8192. + - virtual_space_node_default_size: 1048576. + - enlarge_chunks_in_place: 1. + - new_chunks_are_fully_committed: 0. + - uncommit_free_chunks: 1. + - use_allocation_guard: 0. + - handle_deallocations: 1. + + +Internal statistics: + +num_allocs_failed_limit: 0. +num_arena_births: 144. +num_arena_deaths: 0. +num_vsnodes_births: 3. +num_vsnodes_deaths: 0. +num_space_committed: 170. +num_space_uncommitted: 0. +num_chunks_returned_to_freelist: 0. +num_chunks_taken_from_freelist: 456. +num_chunk_merges: 0. +num_chunk_splits: 311. +num_chunks_enlarged: 235. +num_purges: 0. +num_inconsistent_stats: 0. + +CodeHeap 'non-profiled nmethods': size=119168Kb used=1377Kb max_used=1377Kb free=117790Kb + bounds [0x0000021cda270000, 0x0000021cda4e0000, 0x0000021ce16d0000] +CodeHeap 'profiled nmethods': size=119104Kb used=5204Kb max_used=5204Kb free=113899Kb + bounds [0x0000021cd26d0000, 0x0000021cd2bf0000, 0x0000021cd9b20000] +CodeHeap 'non-nmethods': size=7488Kb used=3348Kb max_used=3396Kb free=4139Kb + bounds [0x0000021cd9b20000, 0x0000021cd9e80000, 0x0000021cda270000] + total_blobs=3620 nmethods=2518 adapters=1011 + compilation: enabled + stopped_count=0, restarted_count=0 + full_count=0 + +Compilation events (20 events): +Event: 8.356 Thread 0x0000021cef54f650 2508 1 java.lang.Boolean::booleanValue (5 bytes) +Event: 8.357 Thread 0x0000021cef54f650 nmethod 2508 0x0000021cda3b9d90 code [0x0000021cda3b9f20, 0x0000021cda3b9ff8] +Event: 8.362 Thread 0x0000021cef54f650 2509 3 jdk.internal.org.objectweb.asm.ClassWriter::visitMethod (57 bytes) +Event: 8.362 Thread 0x0000021cef741450 2510 3 jdk.internal.org.objectweb.asm.MethodWriter:: (232 bytes) +Event: 8.362 Thread 0x0000021cef54b130 2511 3 jdk.internal.org.objectweb.asm.MethodVisitor:: (7 bytes) +Event: 8.362 Thread 0x0000021cee9be570 2512 3 jdk.internal.org.objectweb.asm.MethodWriter::visitMaxs (60 bytes) +Event: 8.362 Thread 0x0000021cef54b130 nmethod 2511 0x0000021cd2bdc010 code [0x0000021cd2bdc1c0, 0x0000021cd2bdc308] +Event: 8.362 Thread 0x0000021cef54b130 2513 3 jdk.internal.org.objectweb.asm.MethodWriter::visitEnd (1 bytes) +Event: 8.362 Thread 0x0000021cef54f650 nmethod 2509 0x0000021cd2bdc390 code [0x0000021cd2bdc540, 0x0000021cd2bdc8c8] +Event: 8.362 Thread 0x0000021cef54f650 2514 3 jdk.internal.org.objectweb.asm.MethodWriter::computeMethodInfoSize (571 bytes) +Event: 8.362 Thread 0x0000021cee9be570 nmethod 2512 0x0000021cd2bdca10 code [0x0000021cd2bdcbe0, 0x0000021cd2bdceb8] +Event: 8.362 Thread 0x0000021cef54b130 nmethod 2513 0x0000021cd2bdcf90 code [0x0000021cd2bdd120, 0x0000021cd2bdd238] +Event: 8.362 Thread 0x0000021cee9be570 2516 3 jdk.internal.org.objectweb.asm.MethodWriter::hasFrames (13 bytes) +Event: 8.362 Thread 0x0000021cef54b130 2517 3 jdk.internal.org.objectweb.asm.MethodWriter::putMethodInfo (1274 bytes) +Event: 8.363 Thread 0x0000021cee9be570 nmethod 2516 0x0000021cd2bdd310 code [0x0000021cd2bdd4a0, 0x0000021cd2bdd618] +Event: 8.363 Thread 0x0000021cee9be570 2518 3 jdk.internal.org.objectweb.asm.Handler::putExceptionTable (63 bytes) +Event: 8.363 Thread 0x0000021cef741450 nmethod 2510 0x0000021cd2bdd690 code [0x0000021cd2bdd920, 0x0000021cd2bde6f8] +Event: 8.363 Thread 0x0000021cee9be570 nmethod 2518 0x0000021cd2bdec10 code [0x0000021cd2bdee20, 0x0000021cd2bdf2a8] +Event: 8.363 Thread 0x0000021cef741450 2515 1 jdk.internal.org.objectweb.asm.SymbolTable::getConstantPoolCount (5 bytes) +Event: 8.363 Thread 0x0000021cef741450 nmethod 2515 0x0000021cda3ba090 code [0x0000021cda3ba220, 0x0000021cda3ba2f8] + +GC Heap History (4 events): +Event: 2.654 GC heap before +{Heap before GC invocations=0 (full 0): + garbage-first heap total 253952K, used 20480K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 11 young (22528K), 0 survivors (0K) + Metaspace used 6451K, committed 6656K, reserved 1064960K + class space used 485K, committed 576K, reserved 1048576K +} +Event: 2.659 GC heap after +{Heap after GC invocations=1 (full 0): + garbage-first heap total 253952K, used 3670K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 2 young (4096K), 2 survivors (4096K) + Metaspace used 6451K, committed 6656K, reserved 1064960K + class space used 485K, committed 576K, reserved 1048576K +} +Event: 7.012 GC heap before +{Heap before GC invocations=1 (full 0): + garbage-first heap total 253952K, used 38486K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 18 young (36864K), 2 survivors (4096K) + Metaspace used 9013K, committed 9216K, reserved 1064960K + class space used 736K, committed 832K, reserved 1048576K +} +Event: 7.017 GC heap after +{Heap after GC invocations=2 (full 0): + garbage-first heap total 253952K, used 5101K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 1 young (2048K), 1 survivors (2048K) + Metaspace used 9013K, committed 9216K, reserved 1064960K + class space used 736K, committed 832K, reserved 1048576K +} + +Deoptimization events (20 events): +Event: 7.876 Thread 0x0000021cc967fe00 DEOPT PACKING pc=0x0000021cda34cfac sp=0x000000a771afe8f0 +Event: 7.876 Thread 0x0000021cc967fe00 DEOPT UNPACKING pc=0x0000021cd9b723a3 sp=0x000000a771afe890 mode 2 +Event: 7.876 Thread 0x0000021cc967fe00 Uncommon trap: trap_request=0xffffff45 fr.pc=0x0000021cda31a028 relative=0x0000000000000428 +Event: 7.876 Thread 0x0000021cc967fe00 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000021cda31a028 method=com.badlogic.gdx.assets.AssetManager.update(I)Z @ 15 c2 +Event: 7.876 Thread 0x0000021cc967fe00 DEOPT PACKING pc=0x0000021cda31a028 sp=0x000000a771afe9f0 +Event: 7.876 Thread 0x0000021cc967fe00 DEOPT UNPACKING pc=0x0000021cd9b723a3 sp=0x000000a771afe9a8 mode 2 +Event: 8.168 Thread 0x0000021cc967fe00 Uncommon trap: trap_request=0xffffff45 fr.pc=0x0000021cda33fb94 relative=0x00000000000000f4 +Event: 8.168 Thread 0x0000021cc967fe00 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000021cda33fb94 method=com.badlogic.gdx.backends.lwjgl3.audio.OggInputStream.read()I @ 11 c2 +Event: 8.168 Thread 0x0000021cc967fe00 DEOPT PACKING pc=0x0000021cda33fb94 sp=0x000000a771afe830 +Event: 8.168 Thread 0x0000021cc967fe00 DEOPT UNPACKING pc=0x0000021cd9b723a3 sp=0x000000a771afe7d0 mode 2 +Event: 8.208 Thread 0x0000021cc967fe00 DEOPT PACKING pc=0x0000021cd2ab3e25 sp=0x000000a771afe470 +Event: 8.208 Thread 0x0000021cc967fe00 DEOPT UNPACKING pc=0x0000021cd9b72b43 sp=0x000000a771afd908 mode 0 +Event: 8.213 Thread 0x0000021cc967fe00 DEOPT PACKING pc=0x0000021cd2ab3e25 sp=0x000000a771afe470 +Event: 8.213 Thread 0x0000021cc967fe00 DEOPT UNPACKING pc=0x0000021cd9b72b43 sp=0x000000a771afd908 mode 0 +Event: 8.218 Thread 0x0000021cc967fe00 DEOPT PACKING pc=0x0000021cd2ab3e25 sp=0x000000a771afe470 +Event: 8.218 Thread 0x0000021cc967fe00 DEOPT UNPACKING pc=0x0000021cd9b72b43 sp=0x000000a771afd908 mode 0 +Event: 8.361 Thread 0x0000021c8adeb130 Uncommon trap: trap_request=0xffffffde fr.pc=0x0000021cda314b3c relative=0x000000000000111c +Event: 8.361 Thread 0x0000021c8adeb130 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000021cda314b3c method=java.util.concurrent.ConcurrentHashMap.putVal(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/lang/Object; @ 159 c2 +Event: 8.361 Thread 0x0000021c8adeb130 DEOPT PACKING pc=0x0000021cda314b3c sp=0x000000a775cfe150 +Event: 8.362 Thread 0x0000021c8adeb130 DEOPT UNPACKING pc=0x0000021cd9b723a3 sp=0x000000a775cfe0d0 mode 2 + +Classes unloaded (0 events): +No events + +Classes redefined (0 events): +No events + +Internal exceptions (20 events): +Event: 0.558 Thread 0x0000021cc967fe00 Exception (0x0000000718443580) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 0.592 Thread 0x0000021cc967fe00 Exception (0x00000007185088c8) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 0.592 Thread 0x0000021cc967fe00 Exception (0x0000000718508c28) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 0.651 Thread 0x0000021cc967fe00 Exception (0x00000007185a4d58) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 0.651 Thread 0x0000021cc967fe00 Exception (0x00000007185a50d8) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 1.864 Thread 0x0000021cc967fe00 Exception (0x00000007185f4ac0) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 2.163 Thread 0x0000021cc967fe00 Exception (0x0000000718331488) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 2.163 Thread 0x0000021cc967fe00 Exception (0x0000000718331830) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 2.167 Thread 0x0000021cc967fe00 Exception (0x000000071833cdf8) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 2.167 Thread 0x0000021cc967fe00 Exception (0x000000071833d0d8) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 2.434 Thread 0x0000021cc967fe00 Exception (0x0000000717e68ff0) +thrown [s\open\src\hotspot\share\classfile\systemDictionary.cpp, line 256] +Event: 2.465 Thread 0x0000021cc967fe00 Exception (0x0000000717eef690) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 2.503 Thread 0x0000021cc967fe00 Exception (0x0000000717f3e1e0) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 2.507 Thread 0x0000021cc967fe00 Exception (0x0000000717f48600) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 5.941 Thread 0x0000021cc967fe00 Exception (0x0000000717d1c590) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 6.066 Thread 0x0000021cc967fe00 Exception (0x0000000717b1b5c8) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 8.152 Thread 0x0000021cc967fe00 Exception (0x0000000716cdbcd8) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 8.155 Thread 0x0000021cc967fe00 Exception (0x0000000716cea2e8) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 8.157 Thread 0x0000021cc967fe00 Exception (0x0000000716cf3a60) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 8.330 Thread 0x0000021c8adeb130 Exception (0x00000007168ee498) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] + +VM Operations (20 events): +Event: 2.654 Executing VM operation: G1CollectForAllocation +Event: 2.659 Executing VM operation: G1CollectForAllocation done +Event: 3.052 Executing VM operation: HandshakeAllThreads +Event: 3.052 Executing VM operation: HandshakeAllThreads done +Event: 4.063 Executing VM operation: Cleanup +Event: 4.063 Executing VM operation: Cleanup done +Event: 5.064 Executing VM operation: Cleanup +Event: 5.064 Executing VM operation: Cleanup done +Event: 6.049 Executing VM operation: HandshakeAllThreads +Event: 6.049 Executing VM operation: HandshakeAllThreads done +Event: 7.012 Executing VM operation: G1CollectForAllocation +Event: 7.017 Executing VM operation: G1CollectForAllocation done +Event: 7.936 Executing VM operation: HandshakeAllThreads +Event: 7.936 Executing VM operation: HandshakeAllThreads done +Event: 8.234 Executing VM operation: HandshakeAllThreads +Event: 8.234 Executing VM operation: HandshakeAllThreads done +Event: 8.234 Executing VM operation: Cleanup +Event: 8.236 Executing VM operation: Cleanup done +Event: 8.276 Executing VM operation: HandshakeAllThreads +Event: 8.276 Executing VM operation: HandshakeAllThreads done + +Events (20 events): +Event: 8.267 loading class java/lang/constant/DynamicConstantDesc$AnonymousDynamicConstantDesc +Event: 8.267 loading class java/lang/constant/DynamicConstantDesc$AnonymousDynamicConstantDesc done +Event: 8.291 loading class java/net/NetworkInterface$1 +Event: 8.291 loading class java/net/NetworkInterface$1 done +Event: 8.311 loading class java/nio/file/Files$AcceptAllFilter +Event: 8.311 loading class java/nio/file/DirectoryStream$Filter +Event: 8.311 loading class java/nio/file/DirectoryStream$Filter done +Event: 8.311 loading class java/nio/file/Files$AcceptAllFilter done +Event: 8.311 loading class sun/nio/fs/WindowsDirectoryStream$WindowsDirectoryIterator +Event: 8.311 loading class sun/nio/fs/WindowsDirectoryStream$WindowsDirectoryIterator done +Event: 8.312 loading class sun/nio/fs/WindowsPath$WindowsPathWithAttributes +Event: 8.312 loading class sun/nio/fs/BasicFileAttributesHolder +Event: 8.312 loading class sun/nio/fs/BasicFileAttributesHolder done +Event: 8.312 loading class sun/nio/fs/WindowsPath$WindowsPathWithAttributes done +Event: 8.332 loading class sun/security/provider/AbstractDrbg$NonceProvider +Event: 8.332 loading class sun/security/provider/AbstractDrbg$NonceProvider done +Event: 8.332 loading class sun/security/provider/SHA2$SHA256 +Event: 8.332 loading class sun/security/provider/SHA2 +Event: 8.332 loading class sun/security/provider/SHA2 done +Event: 8.332 loading class sun/security/provider/SHA2$SHA256 done + + +Dynamic libraries: +0x00007ff6473f0000 - 0x00007ff647400000 C:\Program Files\Java\jdk-17\bin\java.exe +0x00007ffba77b0000 - 0x00007ffba79a8000 C:\Windows\SYSTEM32\ntdll.dll +0x00007ffba7300000 - 0x00007ffba73bd000 C:\Windows\System32\KERNEL32.DLL +0x00007ffba4f20000 - 0x00007ffba5216000 C:\Windows\System32\KERNELBASE.dll +0x00007ffba5220000 - 0x00007ffba5320000 C:\Windows\System32\ucrtbase.dll +0x00007ffb932e0000 - 0x00007ffb932fb000 C:\Program Files\Java\jdk-17\bin\VCRUNTIME140.dll +0x00007ffb93320000 - 0x00007ffb93338000 C:\Program Files\Java\jdk-17\bin\jli.dll +0x00007ffba7250000 - 0x00007ffba72fe000 C:\Windows\System32\ADVAPI32.dll +0x00007ffba5810000 - 0x00007ffba58ae000 C:\Windows\System32\msvcrt.dll +0x00007ffba58b0000 - 0x00007ffba594c000 C:\Windows\System32\sechost.dll +0x00007ffba60e0000 - 0x00007ffba6206000 C:\Windows\System32\RPCRT4.dll +0x00007ffba73c0000 - 0x00007ffba755e000 C:\Windows\System32\USER32.dll +0x00007ffba53f0000 - 0x00007ffba5412000 C:\Windows\System32\win32u.dll +0x00007ffb9a290000 - 0x00007ffb9a52a000 C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_60b5254171f9507e\COMCTL32.dll +0x00007ffba6210000 - 0x00007ffba623c000 C:\Windows\System32\GDI32.dll +0x00007ffba5640000 - 0x00007ffba575a000 C:\Windows\System32\gdi32full.dll +0x00007ffba5350000 - 0x00007ffba53ed000 C:\Windows\System32\msvcp_win.dll +0x00007ffb98ea0000 - 0x00007ffb98eaa000 C:\Windows\SYSTEM32\VERSION.dll +0x00007ffba6250000 - 0x00007ffba6280000 C:\Windows\System32\IMM32.DLL +0x00007ffb95130000 - 0x00007ffb9513c000 C:\Program Files\Java\jdk-17\bin\vcruntime140_1.dll +0x00007ffb74be0000 - 0x00007ffb74c6e000 C:\Program Files\Java\jdk-17\bin\msvcp140.dll +0x00007ffb5a8f0000 - 0x00007ffb5b4c7000 C:\Program Files\Java\jdk-17\bin\server\jvm.dll +0x00007ffba6240000 - 0x00007ffba6248000 C:\Windows\System32\PSAPI.DLL +0x00007ffb84120000 - 0x00007ffb84129000 C:\Windows\SYSTEM32\WSOCK32.dll +0x00007ffb98e70000 - 0x00007ffb98e97000 C:\Windows\SYSTEM32\WINMM.dll +0x00007ffba71e0000 - 0x00007ffba724b000 C:\Windows\System32\WS2_32.dll +0x00007ffba36e0000 - 0x00007ffba36f2000 C:\Windows\SYSTEM32\kernel.appcore.dll +0x00007ffb95040000 - 0x00007ffb9504a000 C:\Program Files\Java\jdk-17\bin\jimage.dll +0x00007ffba2bb0000 - 0x00007ffba2d94000 C:\Windows\SYSTEM32\DBGHELP.DLL +0x00007ffb96480000 - 0x00007ffb964b4000 C:\Windows\SYSTEM32\dbgcore.DLL +0x00007ffba4e90000 - 0x00007ffba4f12000 C:\Windows\System32\bcryptPrimitives.dll +0x00007ffb81d60000 - 0x00007ffb81d85000 C:\Program Files\Java\jdk-17\bin\java.dll +0x00007ffb6f9c0000 - 0x00007ffb6fa97000 C:\Program Files\Java\jdk-17\bin\jsvml.dll +0x00007ffba63f0000 - 0x00007ffba6b35000 C:\Windows\System32\SHELL32.dll +0x00007ffba2f00000 - 0x00007ffba369b000 C:\Windows\SYSTEM32\windows.storage.dll +0x00007ffba5c50000 - 0x00007ffba5fa4000 C:\Windows\System32\combase.dll +0x00007ffba4860000 - 0x00007ffba488e000 C:\Windows\SYSTEM32\Wldp.dll +0x00007ffba6b40000 - 0x00007ffba6bed000 C:\Windows\System32\SHCORE.dll +0x00007ffba5b20000 - 0x00007ffba5b75000 C:\Windows\System32\shlwapi.dll +0x00007ffba4dc0000 - 0x00007ffba4de5000 C:\Windows\SYSTEM32\profapi.dll +0x00007ffb84150000 - 0x00007ffb84169000 C:\Program Files\Java\jdk-17\bin\net.dll +0x00007ffb9f190000 - 0x00007ffb9f29a000 C:\Windows\SYSTEM32\WINHTTP.dll +0x0000000180000000 - 0x000000018008c000 C:\Windows\system32\ASProxy64.dll +0x00007ffba5fb0000 - 0x00007ffba60da000 C:\Windows\System32\ole32.dll +0x00007ffba5b80000 - 0x00007ffba5c4d000 C:\Windows\System32\OLEAUT32.dll +0x00007ffba42b0000 - 0x00007ffba42eb000 C:\Windows\SYSTEM32\IPHLPAPI.DLL +0x00007ffba45c0000 - 0x00007ffba462a000 C:\Windows\SYSTEM32\MSWSOCK.dll +0x00007ffba4d40000 - 0x00007ffba4d72000 C:\Windows\SYSTEM32\SspiCli.dll +0x00007ffb83d50000 - 0x00007ffb83d66000 C:\Program Files\Java\jdk-17\bin\nio.dll +0x00007ffb83bb0000 - 0x00007ffb83bc8000 C:\Program Files\Java\jdk-17\bin\zip.dll +0x00007ffba2120000 - 0x00007ffba21be000 C:\Windows\system32\uxtheme.dll +0x00007ffb94c00000 - 0x00007ffb94c10000 C:\Program Files\Java\jdk-17\bin\verify.dll +0x0000000050410000 - 0x0000000050439000 C:\Users\isaac\AppData\Local\Temp\libgdxisaac\e787ab0a\gdx64.dll +0x00007ffb83c80000 - 0x00007ffb83cf5000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\lwjgl.dll +0x00007ffb5f670000 - 0x00007ffb5f8c9000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\jemalloc.dll +0x00007ffb77370000 - 0x00007ffb773d1000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\glfw.dll +0x00007ffb7e950000 - 0x00007ffb7e995000 C:\Windows\SYSTEM32\dinput8.dll +0x00007ffb9d440000 - 0x00007ffb9d451000 C:\Windows\SYSTEM32\xinput1_4.dll +0x00007ffba5420000 - 0x00007ffba546e000 C:\Windows\System32\cfgmgr32.dll +0x00007ffba4c40000 - 0x00007ffba4c73000 C:\Windows\SYSTEM32\DEVOBJ.dll +0x00007ffba24b0000 - 0x00007ffba24df000 C:\Windows\SYSTEM32\dwmapi.dll +0x00007ffb7c850000 - 0x00007ffb7c9a2000 C:\Windows\SYSTEM32\inputhost.dll +0x00007ffba1d30000 - 0x00007ffba1e22000 C:\Windows\SYSTEM32\CoreMessaging.dll +0x00007ffba2da0000 - 0x00007ffba2e96000 C:\Windows\SYSTEM32\PROPSYS.dll +0x00007ffba0590000 - 0x00007ffba06e5000 C:\Windows\SYSTEM32\wintypes.dll +0x00007ffba1650000 - 0x00007ffba19ae000 C:\Windows\SYSTEM32\CoreUIComponents.dll +0x00007ffba3fe0000 - 0x00007ffba4013000 C:\Windows\SYSTEM32\ntmarta.dll +0x00007ffba7570000 - 0x00007ffba7684000 C:\Windows\System32\MSCTF.dll +0x00007ffb6c360000 - 0x00007ffb6c4f7000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\OpenAL.dll +0x00007ffba6bf0000 - 0x00007ffba6c99000 C:\Windows\System32\clbcatq.dll +0x00007ffb9d930000 - 0x00007ffb9d9b5000 C:\Windows\System32\MMDevApi.dll +0x00007ffb9d2a0000 - 0x00007ffb9d422000 C:\Windows\SYSTEM32\AUDIOSES.DLL +0x00007ffba4bd0000 - 0x00007ffba4c1b000 C:\Windows\SYSTEM32\powrprof.dll +0x00007ffba4bb0000 - 0x00007ffba4bc2000 C:\Windows\SYSTEM32\UMPDC.dll +0x00007ffba24e0000 - 0x00007ffba24f4000 C:\Windows\SYSTEM32\resourcepolicyclient.dll +0x00007ffb69540000 - 0x00007ffb69665000 C:\Windows\SYSTEM32\opengl32.dll +0x00007ffb94f50000 - 0x00007ffb94f7c000 C:\Windows\SYSTEM32\GLU32.dll +0x00007ffb9c490000 - 0x00007ffb9c592000 C:\Windows\System32\AppXDeploymentClient.dll +0x00007ffb93280000 - 0x00007ffb932aa000 C:\Windows\System32\DriverStore\FileRepository\u0363312.inf_amd64_08fc5018b1b99545\B363211\atig6pxx.dll +0x00007ffb55350000 - 0x00007ffb580f5000 C:\Windows\System32\DriverStore\FileRepository\u0363312.inf_amd64_08fc5018b1b99545\B363211\atio6axx.dll +0x00007ffba6d10000 - 0x00007ffba717e000 C:\Windows\System32\SETUPAPI.dll +0x00007ffba5320000 - 0x00007ffba5347000 C:\Windows\System32\bcrypt.dll +0x00007ffb94f20000 - 0x00007ffb94f44000 C:\Windows\SYSTEM32\dxva2.dll +0x00007ffb83e90000 - 0x00007ffb83ecc000 C:\Windows\System32\DriverStore\FileRepository\u0363312.inf_amd64_08fc5018b1b99545\B363211\atig6txx.dll +0x00007ffb5eab0000 - 0x00007ffb5ec6f000 C:\Windows\SYSTEM32\atiadlxx.dll +0x00007ffba55d0000 - 0x00007ffba5637000 C:\Windows\System32\WINTRUST.dll +0x00007ffba5470000 - 0x00007ffba55ce000 C:\Windows\System32\CRYPT32.dll +0x00007ffba49f0000 - 0x00007ffba4a02000 C:\Windows\SYSTEM32\MSASN1.dll +0x00007ffb9eba0000 - 0x00007ffb9ebdb000 C:\Windows\SYSTEM32\dxcore.dll +0x00007ffb752f0000 - 0x00007ffb7534d000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\lwjgl_opengl.dll +0x00007ffb7c9b0000 - 0x00007ffb7caaa000 C:\Windows\SYSTEM32\textinputframework.dll +0x00007ffb7f310000 - 0x00007ffb7f376000 C:\Windows\system32\Oleacc.dll +0x00007ffb72850000 - 0x00007ffb72b45000 C:\Windows\System32\uiautomationcore.dll +0x00007ffba47d0000 - 0x00007ffba47dc000 C:\Windows\SYSTEM32\CRYPTBASE.DLL +0x00000000503b0000 - 0x000000005040a000 C:\Users\isaac\AppData\Local\Temp\libgdxisaac\888fe1bc\gdx-box2d64.dll +0x00007ffba47b0000 - 0x00007ffba47c8000 C:\Windows\SYSTEM32\CRYPTSP.dll +0x00007ffba3ec0000 - 0x00007ffba3ef4000 C:\Windows\system32\rsaenh.dll +0x00007ffba4d80000 - 0x00007ffba4dae000 C:\Windows\SYSTEM32\USERENV.dll +0x00007ffba6d00000 - 0x00007ffba6d08000 C:\Windows\System32\NSI.dll +0x00007ffb9b8c0000 - 0x00007ffb9b8d7000 C:\Windows\SYSTEM32\dhcpcsvc6.DLL +0x00007ffb9ce90000 - 0x00007ffb9cead000 C:\Windows\SYSTEM32\dhcpcsvc.DLL +0x00007ffba42f0000 - 0x00007ffba43ba000 C:\Windows\SYSTEM32\DNSAPI.dll + +dbghelp: loaded successfully - version: 4.0.5 - missing functions: none +symbol engine: initialized successfully - sym options: 0x614 - pdb path: .;C:\Program Files\Java\jdk-17\bin;C:\Windows\SYSTEM32;C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_60b5254171f9507e;C:\Program Files\Java\jdk-17\bin\server;C:\Users\isaac\AppData\Local\Temp\libgdxisaac\e787ab0a;C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7;C:\Windows\System32\DriverStore\FileRepository\u0363312.inf_amd64_08fc5018b1b99545\B363211;C:\Users\isaac\AppData\Local\Temp\libgdxisaac\888fe1bc + +VM Arguments: +jvm_args: -XX:+ShowCodeDetailsInExceptionMessages +java_command: com.csse3200.game.desktop.DesktopLauncher +java_class_path (initial): C:\Users\isaac\OneDrive\Documents\School\University of Queensland\UQ 2023\UQ 2023 Semester 2\CSSE3200\2023-studio-3\source\desktop\bin\main;\csse3200-game-core\bin\default;C:\Users\isaac\OneDrive\Documents\School\University of Queensland\UQ 2023\UQ 2023 Semester 2\CSSE3200\2023-studio-3\source\core\bin\main;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-backend-lwjgl3\1.11.0\58a96db4cd349be4292d547856aa1e1c5f065f4e\gdx-backend-lwjgl3-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-platform\1.11.0\697fb13eada6d3c6ca648c9788692b0159add126\gdx-platform-1.11.0-natives-desktop.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-box2d-platform\1.11.0\62ff9baa1e57a11e0a4428a38c9660bf9f312fdc\gdx-box2d-platform-1.11.0-natives-desktop.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-tools\1.11.0\a5d30eafd0f2fbab314efdf6d98ebc27388b7c0a\gdx-tools-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx-controllers\gdx-controllers-desktop\2.2.2\625b3bdbe803e9c4af181b4791202cfcf776d805\gdx-controllers-desktop-2.2.2.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-backend-lwjgl\1.11.0\33555a2cf8b4d9db4122b2fe42e7674b343d8b4\gdx-backend-lwjgl-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-freetype\1.11.0\a3634ad2e6c56d251268d6ab5c0f66eee2841f2c\gdx-freetype-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-backend-headless\1.11.0\3c3d0c951db72891d894df1725d09179fd0bca00\gdx-backend-headless-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\net.dermetfan.libgdx-utils\libgdx-utils-box2d\0.13.4\918d79a20ea3c898cdb3611782c5b2bfa6ec575b\libgdx-utils-box2d-0.13.4.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-box2d\1.11.0\ad4facee800dd945d6d6e93dea2936bc135b +Launcher Type: SUN_STANDARD + +[Global flags] + intx CICompilerCount = 12 {product} {ergonomic} + uint ConcGCThreads = 3 {product} {ergonomic} + uint G1ConcRefinementThreads = 13 {product} {ergonomic} + size_t G1HeapRegionSize = 2097152 {product} {ergonomic} + uintx GCDrainStackTargetSize = 64 {product} {ergonomic} + size_t InitialHeapSize = 260046848 {product} {ergonomic} + size_t MarkStackSize = 4194304 {product} {ergonomic} + size_t MaxHeapSize = 4135583744 {product} {ergonomic} + size_t MaxNewSize = 2480930816 {product} {ergonomic} + size_t MinHeapDeltaBytes = 2097152 {product} {ergonomic} + size_t MinHeapSize = 8388608 {product} {ergonomic} + uintx NonNMethodCodeHeapSize = 7602480 {pd product} {ergonomic} + uintx NonProfiledCodeHeapSize = 122027880 {pd product} {ergonomic} + uintx ProfiledCodeHeapSize = 122027880 {pd product} {ergonomic} + uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} + bool SegmentedCodeCache = true {product} {ergonomic} + bool ShowCodeDetailsInExceptionMessages = true {manageable} {command line} + size_t SoftMaxHeapSize = 4135583744 {manageable} {ergonomic} + bool UseCompressedClassPointers = true {product lp64_product} {ergonomic} + bool UseCompressedOops = true {product lp64_product} {ergonomic} + bool UseG1GC = true {product} {ergonomic} + bool UseLargePagesIndividualAllocation = false {pd product} {ergonomic} + +Logging: +Log output configuration: + #0: stdout all=warning uptime,level,tags + #1: stderr all=off uptime,level,tags + +Environment Variables: +PATH=C:\Users\isaac\bin;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\local\bin;C:\Program Files\Git\usr\bin;C:\Program Files\Git\usr\bin;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Users\isaac\bin;C:\Program Files\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn;C:\Program Files (x86)\Microsoft SQL Server\150\Tools\Binn;C:\Program Files\Microsoft SQL Server\150\Tools\Binn;C:\Program Files\Microsoft SQL Server\150\DTS\Binn;C:\Program Files (x86)\Microsoft SQL Server\150\DTS\Binn;C:\Program Files\Azure Data Studio\bin;C:\Program Files\Git\cmd;C:\Program Files\PuTTY;C:\Program Files (x86)\Pololu\USB AVR Programmer v2\bin;C:\Program Files\nodejs;C:\Users\isaac\AppData\Local\Programs\Python\Python310\Scripts;C:\Users\isaac\AppData\Local\Programs\Python\Python310;C:\Users\isaac\AppData\Local\Microsoft\WindowsApps;C:\Users\isaac\AppData\Local\Programs\Microsoft VS Code\bin;C:\Program Files\Azure Data Studio\bin;C:\Users\isaac\AppData\Roaming\npm;C:\Program Files\Git\usr\bin\vendor_perl;C:\Program Files\Git\usr\bin\core_perl +USERNAME=isaac +SHELL=C:\Program Files\Git\usr\bin\bash.exe +DISPLAY=needs-to-be-defined +LANG=en_US.UTF-8 +OS=Windows_NT +PROCESSOR_IDENTIFIER=AMD64 Family 23 Model 104 Stepping 1, AuthenticAMD + + + +--------------- S Y S T E M --------------- + +OS: + Windows 10 , 64 bit Build 19041 (10.0.19041.3393) +OS uptime: 8 days 4:50 hours + +CPU: total 16 (initial active 16) (16 cores per cpu, 2 threads per core) family 23 model 104 stepping 1 microcode 0x0, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4a, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, clmul, bmi1, bmi2, adx, sha, fma, vzeroupper, clflush, clflushopt + +Memory: 4k page, system-wide physical 15769M (5057M free) +TotalPageFile size 19865M (AvailPageFile size 2955M) +current process WorkingSet (physical memory assigned to process): 482M, peak: 493M +current process commit charge ("private bytes"): 765M, peak: 778M + +vm_info: Java HotSpot(TM) 64-Bit Server VM (17.0.6+9-LTS-190) for windows-amd64 JRE (17.0.6+9-LTS-190), built on Dec 6 2022 15:53:54 by "mach5one" with MS VC++ 17.1 (VS2022) + +END. diff --git a/hs_err_pid19432.log b/hs_err_pid19432.log new file mode 100644 index 000000000..a64fac1cf --- /dev/null +++ b/hs_err_pid19432.log @@ -0,0 +1,786 @@ +# +# A fatal error has been detected by the Java Runtime Environment: +# +# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000000503bba43, pid=19432, tid=27576 +# +# JRE version: Java(TM) SE Runtime Environment (17.0.6+9) (build 17.0.6+9-LTS-190) +# Java VM: Java HotSpot(TM) 64-Bit Server VM (17.0.6+9-LTS-190, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64) +# Problematic frame: +# C [gdx-box2d64.dll+0xba43] +# +# 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: +# https://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: -XX:+ShowCodeDetailsInExceptionMessages com.csse3200.game.desktop.DesktopLauncher + +Host: AMD Ryzen 7 5700U with Radeon Graphics , 16 cores, 15G, Windows 10 , 64 bit Build 19041 (10.0.19041.3393) +Time: Wed Sep 27 16:05:27 2023 E. Australia Standard Time elapsed time: 24.432176 seconds (0d 0h 0m 24s) + +--------------- T H R E A D --------------- + +Current thread (0x000001f71e93b370): JavaThread "Timer-4" [_thread_in_native, id=27576, stack(0x000000e96d300000,0x000000e96d400000)] + +Stack: [0x000000e96d300000,0x000000e96d400000], sp=0x000000e96d3febd0, free space=1018k +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) +C [gdx-box2d64.dll+0xba43] + +Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) +J 2895 com.badlogic.gdx.physics.box2d.Body.jniCreateFixture(JJFFFZSSS)J (0 bytes) @ 0x000001f72df0a490 [0x000001f72df0a420+0x0000000000000070] +J 2894 c1 com.badlogic.gdx.physics.box2d.Body.createFixture(Lcom/badlogic/gdx/physics/box2d/FixtureDef;)Lcom/badlogic/gdx/physics/box2d/Fixture; (105 bytes) @ 0x000001f72676a7f4 [0x000001f72676a720+0x00000000000000d4] +J 2888 c1 com.csse3200.game.physics.components.ColliderComponent.create()V (61 bytes) @ 0x000001f72676981c [0x000001f7267693a0+0x000000000000047c] +j com.csse3200.game.physics.components.HitboxComponent.create()V+7 +J 2949 c1 com.csse3200.game.entities.Entity.create()V (73 bytes) @ 0x000001f726777a9c [0x000001f726777640+0x000000000000045c] +J 2948 c1 com.csse3200.game.entities.EntityService.register(Lcom/csse3200/game/entities/Entity;)V (24 bytes) @ 0x000001f72677835c [0x000001f7267781e0+0x000000000000017c] +j com.csse3200.game.components.npc.SplitMoblings.spawnAdditionalMob(FFFF)V+36 +j com.csse3200.game.components.npc.SplitMoblings.onDeath()V+171 +j com.csse3200.game.components.npc.SplitMoblings$$Lambda$93+0x0000000800ceb290.handle()V+4 +J 2646 c1 com.csse3200.game.events.EventHandler$$Lambda$61+0x0000000800cbc2a0.accept(Ljava/lang/Object;)V (8 bytes) @ 0x000001f72670ea34 [0x000001f72670e6e0+0x0000000000000354] +j java.lang.Iterable.forEach(Ljava/util/function/Consumer;)V+30 java.base@17.0.6 +J 2775 c1 com.csse3200.game.components.tasks.MobWanderTask.update()V (212 bytes) @ 0x000001f72674a754 [0x000001f726748800+0x0000000000001f54] +J 2774 c1 com.csse3200.game.components.tasks.MobDodgeTask.update()V (64 bytes) @ 0x000001f726745564 [0x000001f7267454e0+0x0000000000000084] +j com.csse3200.game.ai.tasks.AITaskComponent.update()V+36 +j com.csse3200.game.ai.tasks.AITaskComponent.restore()V+77 +j com.csse3200.game.components.EffectsComponent$3.run()V+4 +j java.util.TimerThread.mainLoop()V+221 java.base@17.0.6 +j java.util.TimerThread.run()V+1 java.base@17.0.6 +v ~StubRoutines::call_stub + +siginfo: EXCEPTION_ACCESS_VIOLATION (0xc0000005), reading address 0x000001f700000000 + + +Register to memory mapping: + +RIP=0x00000000503bba43 gdx-box2d64.dll +RAX=0x00000000503ff060 gdx-box2d64.dll +RBX=0x000001f700000000 is an unknown value +RCX=0x000001f741f82cd0 points into unknown readable memory: 0x000001f741f9c060 | 60 c0 f9 41 f7 01 00 00 +RDX=0x0000000000000048 is an unknown value +RSP=0x000000e96d3febd0 is pointing into the stack for thread: 0x000001f71e93b370 +RBP=0x000001f741f82ce8 points into unknown readable memory: 0x000001f74d0a86d0 | d0 86 0a 4d f7 01 00 00 +RSI=0x000001f741f82cd0 points into unknown readable memory: 0x000001f741f9c060 | 60 c0 f9 41 f7 01 00 00 +RDI=0x000001f741f82cd0 points into unknown readable memory: 0x000001f741f9c060 | 60 c0 f9 41 f7 01 00 00 +R8 =0x000001f74d0ad240 points into unknown readable memory: 0x0000003600000002 | 02 00 00 00 36 00 00 00 +R9 =0x000001f74d13d960 points into unknown readable memory: 0x00000000503f5600 | 00 56 3f 50 00 00 00 00 +R10=0x00000000503d45d0 gdx-box2d64.dll +R11=0x000001f74d6d2ee8 is pointing into metadata +R12=0x0000000000000003 is an unknown value +R13=0x000000e96d3feed8 is pointing into the stack for thread: 0x000001f71e93b370 +R14=0x000000e96d3fef38 is pointing into the stack for thread: 0x000001f71e93b370 +R15=0x000001f71e93b370 is a thread + + +Registers: +RAX=0x00000000503ff060, RBX=0x000001f700000000, RCX=0x000001f741f82cd0, RDX=0x0000000000000048 +RSP=0x000000e96d3febd0, RBP=0x000001f741f82ce8, RSI=0x000001f741f82cd0, RDI=0x000001f741f82cd0 +R8 =0x000001f74d0ad240, R9 =0x000001f74d13d960, R10=0x00000000503d45d0, R11=0x000001f74d6d2ee8 +R12=0x0000000000000003, R13=0x000000e96d3feed8, R14=0x000000e96d3fef38, R15=0x000001f71e93b370 +RIP=0x00000000503bba43, EFLAGS=0x0000000000010206 + +Top of Stack: (sp=0x000000e96d3febd0) +0x000000e96d3febd0: 00000000000000a0 0000000000000008 +0x000000e96d3febe0: 000001f71c8f0000 000000e96d3feca9 +0x000000e96d3febf0: 0000000000000000 3ff0000000000000 +0x000000e96d3fec00: 0000000000000000 000001f74d0ad240 +0x000000e96d3fec10: 0000000000000008 000001f741f82cd0 +0x000000e96d3fec20: 000000e96d3fecb0 0000000000000000 +0x000000e96d3fec30: 000000e96d3feed8 00000000503ce39c +0x000000e96d3fec40: 0000000000000000 3ff0000000000000 +0x000000e96d3fec50: 0000000000000000 00000000503e0000 +0x000000e96d3fec60: 8000000000000000 00000007177c9678 +0x000000e96d3fec70: 0000000000000008 0000000000000001 +0x000000e96d3fec80: 000000e96d3fed80 00000000503d464d +0x000000e96d3fec90: 0000000000000000 0000000000000000 +0x000000e96d3feca0: 000000e96d3fed18 00000000503e3ced +0x000000e96d3fecb0: 000001f74d13d960 0000000000000000 +0x000000e96d3fecc0: 000000003e4ccccd 0008000100000000 + +Instructions: (pc=0x00000000503bba43) +0x00000000503bb943: f6 48 8d 2d b5 16 03 00 48 8d 3d 0e 37 04 00 4c +0x00000000503bb953: 8d 2d f7 31 03 00 4c 8d 25 55 32 03 00 eb 1a 83 +0x00000000503bb963: fe 0d 7e 11 41 b8 49 00 00 00 4c 89 ea 4c 89 e1 +0x00000000503bb973: e8 18 82 02 00 48 83 c3 01 48 63 c6 39 5c 85 00 +0x00000000503bb983: 7d 03 83 c6 01 48 81 fb 80 02 00 00 40 88 34 1f +0x00000000503bb993: 75 cd c6 05 a4 36 04 00 01 48 83 c4 28 5b 5e 5f +0x00000000503bb9a3: 5d 41 5c 41 5d c3 90 66 0f 1f 44 00 00 57 56 53 +0x00000000503bb9b3: 48 83 ec 20 8b 41 08 48 89 cf 85 c0 7e 1d 31 f6 +0x00000000503bb9c3: 31 db 48 8b 07 83 c3 01 48 8b 4c 30 08 48 83 c6 +0x00000000503bb9d3: 10 e8 a7 08 00 00 39 5f 08 7f e7 48 8b 0f 48 83 +0x00000000503bb9e3: c4 20 5b 5e 5f e9 93 08 00 00 90 66 90 41 55 41 +0x00000000503bb9f3: 54 55 57 56 53 48 83 ec 38 48 63 da 48 89 ce 83 +0x00000000503bba03: fb 00 0f 84 95 01 00 00 0f 8e 6f 01 00 00 81 fb +0x00000000503bba13: 80 02 00 00 0f 8f 23 01 00 00 48 8d 05 3c 36 04 +0x00000000503bba23: 00 44 0f b6 24 18 41 80 fc 0d 4c 89 e3 0f 87 da +0x00000000503bba33: 00 00 00 48 8d 2c de 48 8b 5d 10 48 85 db 74 1d +0x00000000503bba43: 48 8b 03 48 89 45 10 48 89 d8 48 83 c4 38 5b 5e +0x00000000503bba53: 5f 5d 41 5c 41 5d c3 66 0f 1f 44 00 00 48 63 46 +0x00000000503bba63: 08 4c 8b 2e 3b 46 0c 0f 84 40 01 00 00 48 c1 e0 +0x00000000503bba73: 04 b9 00 40 00 00 4d 63 e4 49 8d 7c 05 00 e8 ea +0x00000000503bba83: 07 00 00 48 89 c3 48 89 47 08 48 8d 05 6c 15 03 +0x00000000503bba93: 00 46 8b 24 a0 b8 00 40 00 00 99 41 f7 fc 45 89 +0x00000000503bbaa3: e5 44 89 27 44 0f af e8 41 81 fd 00 40 00 00 0f +0x00000000503bbab3: 8f 9b 00 00 00 83 f8 01 7e 23 49 63 d4 83 e8 01 +0x00000000503bbac3: 45 31 c0 49 89 d1 48 8d 0c 13 49 f7 d9 41 83 c0 +0x00000000503bbad3: 01 4a 89 0c 09 48 01 d1 41 39 c0 75 f0 45 29 e5 +0x00000000503bbae3: 4d 63 ed 4a c7 04 2b 00 00 00 00 48 8b 03 48 89 +0x00000000503bbaf3: 45 10 83 46 08 01 48 89 d8 48 83 c4 38 5b 5e 5f +0x00000000503bbb03: 5d 41 5c 41 5d c3 0f 1f 80 00 00 00 00 48 8d 15 +0x00000000503bbb13: 39 30 03 00 48 8d 0d b2 30 03 00 48 8d 2c de 41 +0x00000000503bbb23: b8 70 00 00 00 e8 63 80 02 00 48 8b 5d 10 48 85 +0x00000000503bbb33: db 0f 85 09 ff ff ff e9 21 ff ff ff 90 89 d9 48 + + +Stack slot to memory mapping: +stack at sp + 0 slots: 0x00000000000000a0 is an unknown value +stack at sp + 1 slots: 0x0000000000000008 is an unknown value +stack at sp + 2 slots: 0x000001f71c8f0000 points into unknown readable memory: 0x0000000000000000 | 00 00 00 00 00 00 00 00 +stack at sp + 3 slots: 0x000000e96d3feca9 is pointing into the stack for thread: 0x000001f71e93b370 +stack at sp + 4 slots: 0x0 is NULL +stack at sp + 5 slots: 0x3ff0000000000000 is an unknown value +stack at sp + 6 slots: 0x0 is NULL +stack at sp + 7 slots: 0x000001f74d0ad240 points into unknown readable memory: 0x0000003600000002 | 02 00 00 00 36 00 00 00 + + +--------------- P R O C E S S --------------- + +Threads class SMR info: +_java_thread_list=0x000001f744e8f930, length=43, elements={ +0x000001f71e94df20, 0x000001f7411a1480, 0x000001f7411a20f0, 0x000001f74280e2b0, +0x000001f74280ec60, 0x000001f74280f610, 0x000001f74280ffc0, 0x000001f742810d50, +0x000001f742812530, 0x000001f742818610, 0x000001f74294fc20, 0x000001f74296c170, +0x000001f749fc5a10, 0x000001f74a0096b0, 0x000001f7428736a0, 0x000001f75b6c2000, +0x000001f7545b5a80, 0x000001f75b573a20, 0x000001f71e938820, 0x000001f71e93b370, +0x000001f71e937e80, 0x000001f71e93b840, 0x000001f71e93a500, 0x000001f71e938350, +0x000001f71e93a9d0, 0x000001f7431eee30, 0x000001f7431eb470, 0x000001f7431ecc80, +0x000001f7431ef300, 0x000001f7431f2320, 0x000001f7431edfc0, 0x000001f7431eb940, +0x000001f7431f14b0, 0x000001f7431f1e50, 0x000001f7431f27f0, 0x000001f7431ed150, +0x000001f7431eafa0, 0x000001f7431ebe10, 0x000001f7431ef7d0, 0x000001f7431ed620, +0x000001f7431efca0, 0x000001f7431ec2e0, 0x000001f7431f0b10 +} + +Java Threads: ( => current thread ) + 0x000001f71e94df20 JavaThread "main" [_thread_in_native, id=7756, stack(0x000000e969700000,0x000000e969800000)] + 0x000001f7411a1480 JavaThread "Reference Handler" daemon [_thread_blocked, id=2576, stack(0x000000e969e00000,0x000000e969f00000)] + 0x000001f7411a20f0 JavaThread "Finalizer" daemon [_thread_blocked, id=17248, stack(0x000000e969f00000,0x000000e96a000000)] + 0x000001f74280e2b0 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=14928, stack(0x000000e96a000000,0x000000e96a100000)] + 0x000001f74280ec60 JavaThread "Attach Listener" daemon [_thread_blocked, id=16000, stack(0x000000e96a100000,0x000000e96a200000)] + 0x000001f74280f610 JavaThread "Service Thread" daemon [_thread_blocked, id=3132, stack(0x000000e96a200000,0x000000e96a300000)] + 0x000001f74280ffc0 JavaThread "Monitor Deflation Thread" daemon [_thread_blocked, id=17020, stack(0x000000e96a300000,0x000000e96a400000)] + 0x000001f742810d50 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=21652, stack(0x000000e96a400000,0x000000e96a500000)] + 0x000001f742812530 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=16396, stack(0x000000e96a500000,0x000000e96a600000)] + 0x000001f742818610 JavaThread "Sweeper thread" daemon [_thread_blocked, id=26188, stack(0x000000e96a600000,0x000000e96a700000)] + 0x000001f74294fc20 JavaThread "Notification Thread" daemon [_thread_blocked, id=25904, stack(0x000000e96a900000,0x000000e96aa00000)] + 0x000001f74296c170 JavaThread "Common-Cleaner" daemon [_thread_blocked, id=15980, stack(0x000000e96ab00000,0x000000e96ac00000)] + 0x000001f749fc5a10 JavaThread "AssetManager" daemon [_thread_blocked, id=16852, stack(0x000000e96cb00000,0x000000e96cc00000)] + 0x000001f74a0096b0 JavaThread "LWJGL3 Timer" daemon [_thread_blocked, id=10724, stack(0x000000e96cc00000,0x000000e96cd00000)] + 0x000001f7428736a0 JavaThread "AssetManager" daemon [_thread_blocked, id=17196, stack(0x000000e96a700000,0x000000e96a800000)] + 0x000001f75b6c2000 JavaThread "Timer-0" [_thread_blocked, id=24796, stack(0x000000e96d500000,0x000000e96d600000)] + 0x000001f7545b5a80 JavaThread "Timer" daemon [_thread_blocked, id=19288, stack(0x000000e96d000000,0x000000e96d100000)] + 0x000001f75b573a20 JavaThread "Timer-1" [_thread_in_native, id=26136, stack(0x000000e96ce00000,0x000000e96cf00000)] + 0x000001f71e938820 JavaThread "Timer-2" [_thread_blocked, id=17876, stack(0x000000e96cf00000,0x000000e96d000000)] +=>0x000001f71e93b370 JavaThread "Timer-4" [_thread_in_native, id=27576, stack(0x000000e96d300000,0x000000e96d400000)] + 0x000001f71e937e80 JavaThread "Timer-5" [_thread_in_native, id=25528, stack(0x000000e96d400000,0x000000e96d500000)] + 0x000001f71e93b840 JavaThread "Timer-6" [_thread_blocked, id=6400, stack(0x000000e96d800000,0x000000e96d900000)] + 0x000001f71e93a500 JavaThread "Timer-7" [_thread_blocked, id=12340, stack(0x000000e96d700000,0x000000e96d800000)] + 0x000001f71e938350 JavaThread "Timer-8" [_thread_blocked, id=11480, stack(0x000000e96d900000,0x000000e96da00000)] + 0x000001f71e93a9d0 JavaThread "Timer-9" [_thread_blocked, id=16588, stack(0x000000e96a800000,0x000000e96a900000)] + 0x000001f7431eee30 JavaThread "Timer-10" [_thread_blocked, id=5548, stack(0x000000e96da00000,0x000000e96db00000)] + 0x000001f7431eb470 JavaThread "Timer-11" [_thread_blocked, id=10408, stack(0x000000e96db00000,0x000000e96dc00000)] + 0x000001f7431ecc80 JavaThread "Timer-12" [_thread_blocked, id=13112, stack(0x000000e96dc00000,0x000000e96dd00000)] + 0x000001f7431ef300 JavaThread "Timer-13" [_thread_blocked, id=17544, stack(0x000000e96d600000,0x000000e96d700000)] + 0x000001f7431f2320 JavaThread "Timer-14" [_thread_blocked, id=14592, stack(0x000000e96dd00000,0x000000e96de00000)] + 0x000001f7431edfc0 JavaThread "Timer-15" [_thread_blocked, id=16752, stack(0x000000e96de00000,0x000000e96df00000)] + 0x000001f7431eb940 JavaThread "Timer-16" [_thread_blocked, id=22760, stack(0x000000e96df00000,0x000000e96e000000)] + 0x000001f7431f14b0 JavaThread "Timer-17" [_thread_blocked, id=10268, stack(0x000000e96e000000,0x000000e96e100000)] + 0x000001f7431f1e50 JavaThread "Timer-18" [_thread_blocked, id=16980, stack(0x000000e96e100000,0x000000e96e200000)] + 0x000001f7431f27f0 JavaThread "Timer-19" [_thread_blocked, id=14576, stack(0x000000e96e200000,0x000000e96e300000)] + 0x000001f7431ed150 JavaThread "Timer-20" [_thread_blocked, id=12548, stack(0x000000e96e300000,0x000000e96e400000)] + 0x000001f7431eafa0 JavaThread "Timer-21" [_thread_blocked, id=23088, stack(0x000000e96e400000,0x000000e96e500000)] + 0x000001f7431ebe10 JavaThread "Timer-22" [_thread_blocked, id=4772, stack(0x000000e96e500000,0x000000e96e600000)] + 0x000001f7431ef7d0 JavaThread "Timer-23" [_thread_blocked, id=6308, stack(0x000000e96e600000,0x000000e96e700000)] + 0x000001f7431ed620 JavaThread "Timer-24" [_thread_blocked, id=26508, stack(0x000000e96e700000,0x000000e96e800000)] + 0x000001f7431efca0 JavaThread "Timer-25" [_thread_blocked, id=23600, stack(0x000000e96e800000,0x000000e96e900000)] + 0x000001f7431ec2e0 JavaThread "Timer-26" [_thread_blocked, id=2920, stack(0x000000e96e900000,0x000000e96ea00000)] + 0x000001f7431f0b10 JavaThread "Timer-27" [_thread_blocked, id=17308, stack(0x000000e96ea00000,0x000000e96eb00000)] + +Other Threads: + 0x000001f74119d0c0 VMThread "VM Thread" [stack: 0x000000e969d00000,0x000000e969e00000] [id=9100] + 0x000001f742956950 WatcherThread [stack: 0x000000e96aa00000,0x000000e96ab00000] [id=20040] + 0x000001f71e9be7c0 GCTaskThread "GC Thread#0" [stack: 0x000000e969800000,0x000000e969900000] [id=15108] + 0x000001f749d8d810 GCTaskThread "GC Thread#1" [stack: 0x000000e96c300000,0x000000e96c400000] [id=9068] + 0x000001f749d8a500 GCTaskThread "GC Thread#2" [stack: 0x000000e96c400000,0x000000e96c500000] [id=8304] + 0x000001f749d8bfe0 GCTaskThread "GC Thread#3" [stack: 0x000000e96c500000,0x000000e96c600000] [id=4144] + 0x000001f749d8afc0 GCTaskThread "GC Thread#4" [stack: 0x000000e96c600000,0x000000e96c700000] [id=22144] + 0x000001f749d8b270 GCTaskThread "GC Thread#5" [stack: 0x000000e96c700000,0x000000e96c800000] [id=1428] + 0x000001f749d8b520 GCTaskThread "GC Thread#6" [stack: 0x000000e96c800000,0x000000e96c900000] [id=26444] + 0x000001f749d8b7d0 GCTaskThread "GC Thread#7" [stack: 0x000000e96c900000,0x000000e96ca00000] [id=27144] + 0x000001f749d8ba80 GCTaskThread "GC Thread#8" [stack: 0x000000e96ca00000,0x000000e96cb00000] [id=22108] + 0x000001f74a0573f0 GCTaskThread "GC Thread#9" [stack: 0x000000e96d100000,0x000000e96d200000] [id=10616] + 0x000001f71e9d0c90 ConcurrentGCThread "G1 Main Marker" [stack: 0x000000e969900000,0x000000e969a00000] [id=19272] + 0x000001f71e9d35c0 ConcurrentGCThread "G1 Conc#0" [stack: 0x000000e969a00000,0x000000e969b00000] [id=21584] + 0x000001f741059860 ConcurrentGCThread "G1 Refine#0" [stack: 0x000000e969b00000,0x000000e969c00000] [id=3812] + 0x000001f74105a090 ConcurrentGCThread "G1 Service" [stack: 0x000000e969c00000,0x000000e969d00000] [id=27092] + +Threads with active compile tasks: + +VM state: not at safepoint (normal execution) + +VM Mutex/Monitor currently owned by a thread: None + +Heap address: 0x0000000709800000, size: 3944 MB, Compressed Oops mode: Zero based, Oop shift amount: 3 + +CDS archive(s) mapped at: [0x0000000800000000-0x0000000800bd0000-0x0000000800bd0000), size 12386304, SharedBaseAddress: 0x0000000800000000, ArchiveRelocationMode: 0. +Compressed class space mapped at: 0x0000000800c00000-0x0000000840c00000, reserved size: 1073741824 +Narrow klass base: 0x0000000800000000, Narrow klass shift: 0, Narrow klass range: 0x100000000 + +GC Precious Log: + CPUs: 16 total, 16 available + Memory: 15769M + Large Page Support: Disabled + NUMA Support: Disabled + Compressed Oops: Enabled (Zero based) + Heap Region Size: 2M + Heap Min Capacity: 8M + Heap Initial Capacity: 248M + Heap Max Capacity: 3944M + Pre-touch: Disabled + Parallel Workers: 13 + Concurrent Workers: 3 + Concurrent Refinement Workers: 13 + Periodic GC: Disabled + +Heap: + garbage-first heap total 253952K, used 37870K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 17 young (34816K), 1 survivors (2048K) + Metaspace used 10915K, committed 11136K, reserved 1064960K + class space used 965K, committed 1024K, reserved 1048576K + +Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, OA=open archive, CA=closed archive, TAMS=top-at-mark-start (previous, next) +| 0|0x0000000709800000, 0x0000000709a00000, 0x0000000709a00000|100%|HS| |TAMS 0x0000000709800000, 0x0000000709800000| Complete +| 1|0x0000000709a00000, 0x0000000709a00000, 0x0000000709c00000| 0%| F| |TAMS 0x0000000709a00000, 0x0000000709a00000| Untracked +| 2|0x0000000709c00000, 0x0000000709e00000, 0x0000000709e00000|100%| O| |TAMS 0x0000000709c00000, 0x0000000709c00000| Untracked +| 3|0x0000000709e00000, 0x0000000709efba00, 0x000000070a000000| 49%| O| |TAMS 0x0000000709e00000, 0x0000000709e00000| Untracked +| 4|0x000000070a000000, 0x000000070a000000, 0x000000070a200000| 0%| F| |TAMS 0x000000070a000000, 0x000000070a000000| Untracked +| 5|0x000000070a200000, 0x000000070a200000, 0x000000070a400000| 0%| F| |TAMS 0x000000070a200000, 0x000000070a200000| Untracked +| 6|0x000000070a400000, 0x000000070a400000, 0x000000070a600000| 0%| F| |TAMS 0x000000070a400000, 0x000000070a400000| Untracked +| 7|0x000000070a600000, 0x000000070a600000, 0x000000070a800000| 0%| F| |TAMS 0x000000070a600000, 0x000000070a600000| Untracked +| 8|0x000000070a800000, 0x000000070a800000, 0x000000070aa00000| 0%| F| |TAMS 0x000000070a800000, 0x000000070a800000| Untracked +| 9|0x000000070aa00000, 0x000000070aa00000, 0x000000070ac00000| 0%| F| |TAMS 0x000000070aa00000, 0x000000070aa00000| Untracked +| 10|0x000000070ac00000, 0x000000070ac00000, 0x000000070ae00000| 0%| F| |TAMS 0x000000070ac00000, 0x000000070ac00000| Untracked +| 11|0x000000070ae00000, 0x000000070ae00000, 0x000000070b000000| 0%| F| |TAMS 0x000000070ae00000, 0x000000070ae00000| Untracked +| 12|0x000000070b000000, 0x000000070b000000, 0x000000070b200000| 0%| F| |TAMS 0x000000070b000000, 0x000000070b000000| Untracked +| 13|0x000000070b200000, 0x000000070b200000, 0x000000070b400000| 0%| F| |TAMS 0x000000070b200000, 0x000000070b200000| Untracked +| 14|0x000000070b400000, 0x000000070b400000, 0x000000070b600000| 0%| F| |TAMS 0x000000070b400000, 0x000000070b400000| Untracked +| 15|0x000000070b600000, 0x000000070b600000, 0x000000070b800000| 0%| F| |TAMS 0x000000070b600000, 0x000000070b600000| Untracked +| 16|0x000000070b800000, 0x000000070b800000, 0x000000070ba00000| 0%| F| |TAMS 0x000000070b800000, 0x000000070b800000| Untracked +| 17|0x000000070ba00000, 0x000000070ba00000, 0x000000070bc00000| 0%| F| |TAMS 0x000000070ba00000, 0x000000070ba00000| Untracked +| 18|0x000000070bc00000, 0x000000070bc00000, 0x000000070be00000| 0%| F| |TAMS 0x000000070bc00000, 0x000000070bc00000| Untracked +| 19|0x000000070be00000, 0x000000070be00000, 0x000000070c000000| 0%| F| |TAMS 0x000000070be00000, 0x000000070be00000| Untracked +| 20|0x000000070c000000, 0x000000070c000000, 0x000000070c200000| 0%| F| |TAMS 0x000000070c000000, 0x000000070c000000| Untracked +| 21|0x000000070c200000, 0x000000070c200000, 0x000000070c400000| 0%| F| |TAMS 0x000000070c200000, 0x000000070c200000| Untracked +| 22|0x000000070c400000, 0x000000070c400000, 0x000000070c600000| 0%| F| |TAMS 0x000000070c400000, 0x000000070c400000| Untracked +| 23|0x000000070c600000, 0x000000070c600000, 0x000000070c800000| 0%| F| |TAMS 0x000000070c600000, 0x000000070c600000| Untracked +| 24|0x000000070c800000, 0x000000070c800000, 0x000000070ca00000| 0%| F| |TAMS 0x000000070c800000, 0x000000070c800000| Untracked +| 25|0x000000070ca00000, 0x000000070ca00000, 0x000000070cc00000| 0%| F| |TAMS 0x000000070ca00000, 0x000000070ca00000| Untracked +| 26|0x000000070cc00000, 0x000000070cc00000, 0x000000070ce00000| 0%| F| |TAMS 0x000000070cc00000, 0x000000070cc00000| Untracked +| 27|0x000000070ce00000, 0x000000070ce00000, 0x000000070d000000| 0%| F| |TAMS 0x000000070ce00000, 0x000000070ce00000| Untracked +| 28|0x000000070d000000, 0x000000070d000000, 0x000000070d200000| 0%| F| |TAMS 0x000000070d000000, 0x000000070d000000| Untracked +| 29|0x000000070d200000, 0x000000070d200000, 0x000000070d400000| 0%| F| |TAMS 0x000000070d200000, 0x000000070d200000| Untracked +| 30|0x000000070d400000, 0x000000070d400000, 0x000000070d600000| 0%| F| |TAMS 0x000000070d400000, 0x000000070d400000| Untracked +| 31|0x000000070d600000, 0x000000070d600000, 0x000000070d800000| 0%| F| |TAMS 0x000000070d600000, 0x000000070d600000| Untracked +| 32|0x000000070d800000, 0x000000070d800000, 0x000000070da00000| 0%| F| |TAMS 0x000000070d800000, 0x000000070d800000| Untracked +| 33|0x000000070da00000, 0x000000070da00000, 0x000000070dc00000| 0%| F| |TAMS 0x000000070da00000, 0x000000070da00000| Untracked +| 34|0x000000070dc00000, 0x000000070dc00000, 0x000000070de00000| 0%| F| |TAMS 0x000000070dc00000, 0x000000070dc00000| Untracked +| 35|0x000000070de00000, 0x000000070de00000, 0x000000070e000000| 0%| F| |TAMS 0x000000070de00000, 0x000000070de00000| Untracked +| 36|0x000000070e000000, 0x000000070e000000, 0x000000070e200000| 0%| F| |TAMS 0x000000070e000000, 0x000000070e000000| Untracked +| 37|0x000000070e200000, 0x000000070e200000, 0x000000070e400000| 0%| F| |TAMS 0x000000070e200000, 0x000000070e200000| Untracked +| 38|0x000000070e400000, 0x000000070e400000, 0x000000070e600000| 0%| F| |TAMS 0x000000070e400000, 0x000000070e400000| Untracked +| 39|0x000000070e600000, 0x000000070e600000, 0x000000070e800000| 0%| F| |TAMS 0x000000070e600000, 0x000000070e600000| Untracked +| 40|0x000000070e800000, 0x000000070e800000, 0x000000070ea00000| 0%| F| |TAMS 0x000000070e800000, 0x000000070e800000| Untracked +| 41|0x000000070ea00000, 0x000000070ea00000, 0x000000070ec00000| 0%| F| |TAMS 0x000000070ea00000, 0x000000070ea00000| Untracked +| 42|0x000000070ec00000, 0x000000070ec00000, 0x000000070ee00000| 0%| F| |TAMS 0x000000070ec00000, 0x000000070ec00000| Untracked +| 43|0x000000070ee00000, 0x000000070ee00000, 0x000000070f000000| 0%| F| |TAMS 0x000000070ee00000, 0x000000070ee00000| Untracked +| 44|0x000000070f000000, 0x000000070f000000, 0x000000070f200000| 0%| F| |TAMS 0x000000070f000000, 0x000000070f000000| Untracked +| 45|0x000000070f200000, 0x000000070f200000, 0x000000070f400000| 0%| F| |TAMS 0x000000070f200000, 0x000000070f200000| Untracked +| 46|0x000000070f400000, 0x000000070f400000, 0x000000070f600000| 0%| F| |TAMS 0x000000070f400000, 0x000000070f400000| Untracked +| 47|0x000000070f600000, 0x000000070f600000, 0x000000070f800000| 0%| F| |TAMS 0x000000070f600000, 0x000000070f600000| Untracked +| 48|0x000000070f800000, 0x000000070f800000, 0x000000070fa00000| 0%| F| |TAMS 0x000000070f800000, 0x000000070f800000| Untracked +| 49|0x000000070fa00000, 0x000000070fa00000, 0x000000070fc00000| 0%| F| |TAMS 0x000000070fa00000, 0x000000070fa00000| Untracked +| 50|0x000000070fc00000, 0x000000070fc00000, 0x000000070fe00000| 0%| F| |TAMS 0x000000070fc00000, 0x000000070fc00000| Untracked +| 51|0x000000070fe00000, 0x000000070fe00000, 0x0000000710000000| 0%| F| |TAMS 0x000000070fe00000, 0x000000070fe00000| Untracked +| 52|0x0000000710000000, 0x0000000710000000, 0x0000000710200000| 0%| F| |TAMS 0x0000000710000000, 0x0000000710000000| Untracked +| 53|0x0000000710200000, 0x0000000710200000, 0x0000000710400000| 0%| F| |TAMS 0x0000000710200000, 0x0000000710200000| Untracked +| 54|0x0000000710400000, 0x0000000710400000, 0x0000000710600000| 0%| F| |TAMS 0x0000000710400000, 0x0000000710400000| Untracked +| 55|0x0000000710600000, 0x0000000710600000, 0x0000000710800000| 0%| F| |TAMS 0x0000000710600000, 0x0000000710600000| Untracked +| 56|0x0000000710800000, 0x0000000710800000, 0x0000000710a00000| 0%| F| |TAMS 0x0000000710800000, 0x0000000710800000| Untracked +| 57|0x0000000710a00000, 0x0000000710a00000, 0x0000000710c00000| 0%| F| |TAMS 0x0000000710a00000, 0x0000000710a00000| Untracked +| 58|0x0000000710c00000, 0x0000000710c00000, 0x0000000710e00000| 0%| F| |TAMS 0x0000000710c00000, 0x0000000710c00000| Untracked +| 59|0x0000000710e00000, 0x0000000710e00000, 0x0000000711000000| 0%| F| |TAMS 0x0000000710e00000, 0x0000000710e00000| Untracked +| 60|0x0000000711000000, 0x0000000711000000, 0x0000000711200000| 0%| F| |TAMS 0x0000000711000000, 0x0000000711000000| Untracked +| 61|0x0000000711200000, 0x0000000711200000, 0x0000000711400000| 0%| F| |TAMS 0x0000000711200000, 0x0000000711200000| Untracked +| 62|0x0000000711400000, 0x0000000711400000, 0x0000000711600000| 0%| F| |TAMS 0x0000000711400000, 0x0000000711400000| Untracked +| 63|0x0000000711600000, 0x0000000711600000, 0x0000000711800000| 0%| F| |TAMS 0x0000000711600000, 0x0000000711600000| Untracked +| 64|0x0000000711800000, 0x0000000711800000, 0x0000000711a00000| 0%| F| |TAMS 0x0000000711800000, 0x0000000711800000| Untracked +| 65|0x0000000711a00000, 0x0000000711a00000, 0x0000000711c00000| 0%| F| |TAMS 0x0000000711a00000, 0x0000000711a00000| Untracked +| 66|0x0000000711c00000, 0x0000000711c00000, 0x0000000711e00000| 0%| F| |TAMS 0x0000000711c00000, 0x0000000711c00000| Untracked +| 67|0x0000000711e00000, 0x0000000711e00000, 0x0000000712000000| 0%| F| |TAMS 0x0000000711e00000, 0x0000000711e00000| Untracked +| 68|0x0000000712000000, 0x0000000712000000, 0x0000000712200000| 0%| F| |TAMS 0x0000000712000000, 0x0000000712000000| Untracked +| 69|0x0000000712200000, 0x0000000712200000, 0x0000000712400000| 0%| F| |TAMS 0x0000000712200000, 0x0000000712200000| Untracked +| 70|0x0000000712400000, 0x0000000712400000, 0x0000000712600000| 0%| F| |TAMS 0x0000000712400000, 0x0000000712400000| Untracked +| 71|0x0000000712600000, 0x0000000712600000, 0x0000000712800000| 0%| F| |TAMS 0x0000000712600000, 0x0000000712600000| Untracked +| 72|0x0000000712800000, 0x0000000712800000, 0x0000000712a00000| 0%| F| |TAMS 0x0000000712800000, 0x0000000712800000| Untracked +| 73|0x0000000712a00000, 0x0000000712a00000, 0x0000000712c00000| 0%| F| |TAMS 0x0000000712a00000, 0x0000000712a00000| Untracked +| 74|0x0000000712c00000, 0x0000000712c00000, 0x0000000712e00000| 0%| F| |TAMS 0x0000000712c00000, 0x0000000712c00000| Untracked +| 75|0x0000000712e00000, 0x0000000712e00000, 0x0000000713000000| 0%| F| |TAMS 0x0000000712e00000, 0x0000000712e00000| Untracked +| 76|0x0000000713000000, 0x0000000713000000, 0x0000000713200000| 0%| F| |TAMS 0x0000000713000000, 0x0000000713000000| Untracked +| 77|0x0000000713200000, 0x0000000713200000, 0x0000000713400000| 0%| F| |TAMS 0x0000000713200000, 0x0000000713200000| Untracked +| 78|0x0000000713400000, 0x0000000713400000, 0x0000000713600000| 0%| F| |TAMS 0x0000000713400000, 0x0000000713400000| Untracked +| 79|0x0000000713600000, 0x0000000713600000, 0x0000000713800000| 0%| F| |TAMS 0x0000000713600000, 0x0000000713600000| Untracked +| 80|0x0000000713800000, 0x0000000713800000, 0x0000000713a00000| 0%| F| |TAMS 0x0000000713800000, 0x0000000713800000| Untracked +| 81|0x0000000713a00000, 0x0000000713a00000, 0x0000000713c00000| 0%| F| |TAMS 0x0000000713a00000, 0x0000000713a00000| Untracked +| 82|0x0000000713c00000, 0x0000000713c00000, 0x0000000713e00000| 0%| F| |TAMS 0x0000000713c00000, 0x0000000713c00000| Untracked +| 83|0x0000000713e00000, 0x0000000713e00000, 0x0000000714000000| 0%| F| |TAMS 0x0000000713e00000, 0x0000000713e00000| Untracked +| 84|0x0000000714000000, 0x0000000714000000, 0x0000000714200000| 0%| F| |TAMS 0x0000000714000000, 0x0000000714000000| Untracked +| 85|0x0000000714200000, 0x0000000714200000, 0x0000000714400000| 0%| F| |TAMS 0x0000000714200000, 0x0000000714200000| Untracked +| 86|0x0000000714400000, 0x0000000714400000, 0x0000000714600000| 0%| F| |TAMS 0x0000000714400000, 0x0000000714400000| Untracked +| 87|0x0000000714600000, 0x0000000714600000, 0x0000000714800000| 0%| F| |TAMS 0x0000000714600000, 0x0000000714600000| Untracked +| 88|0x0000000714800000, 0x0000000714800000, 0x0000000714a00000| 0%| F| |TAMS 0x0000000714800000, 0x0000000714800000| Untracked +| 89|0x0000000714a00000, 0x0000000714a00000, 0x0000000714c00000| 0%| F| |TAMS 0x0000000714a00000, 0x0000000714a00000| Untracked +| 90|0x0000000714c00000, 0x0000000714c00000, 0x0000000714e00000| 0%| F| |TAMS 0x0000000714c00000, 0x0000000714c00000| Untracked +| 91|0x0000000714e00000, 0x0000000714e00000, 0x0000000715000000| 0%| F| |TAMS 0x0000000714e00000, 0x0000000714e00000| Untracked +| 92|0x0000000715000000, 0x0000000715000000, 0x0000000715200000| 0%| F| |TAMS 0x0000000715000000, 0x0000000715000000| Untracked +| 93|0x0000000715200000, 0x0000000715200000, 0x0000000715400000| 0%| F| |TAMS 0x0000000715200000, 0x0000000715200000| Untracked +| 94|0x0000000715400000, 0x0000000715400000, 0x0000000715600000| 0%| F| |TAMS 0x0000000715400000, 0x0000000715400000| Untracked +| 95|0x0000000715600000, 0x0000000715600000, 0x0000000715800000| 0%| F| |TAMS 0x0000000715600000, 0x0000000715600000| Untracked +| 96|0x0000000715800000, 0x0000000715800000, 0x0000000715a00000| 0%| F| |TAMS 0x0000000715800000, 0x0000000715800000| Untracked +| 97|0x0000000715a00000, 0x0000000715a00000, 0x0000000715c00000| 0%| F| |TAMS 0x0000000715a00000, 0x0000000715a00000| Untracked +| 98|0x0000000715c00000, 0x0000000715c00000, 0x0000000715e00000| 0%| F| |TAMS 0x0000000715c00000, 0x0000000715c00000| Untracked +| 99|0x0000000715e00000, 0x0000000715e00000, 0x0000000716000000| 0%| F| |TAMS 0x0000000715e00000, 0x0000000715e00000| Untracked +| 100|0x0000000716000000, 0x0000000716000000, 0x0000000716200000| 0%| F| |TAMS 0x0000000716000000, 0x0000000716000000| Untracked +| 101|0x0000000716200000, 0x0000000716200000, 0x0000000716400000| 0%| F| |TAMS 0x0000000716200000, 0x0000000716200000| Untracked +| 102|0x0000000716400000, 0x0000000716400000, 0x0000000716600000| 0%| F| |TAMS 0x0000000716400000, 0x0000000716400000| Untracked +| 103|0x0000000716600000, 0x0000000716600000, 0x0000000716800000| 0%| F| |TAMS 0x0000000716600000, 0x0000000716600000| Untracked +| 104|0x0000000716800000, 0x0000000716800000, 0x0000000716a00000| 0%| F| |TAMS 0x0000000716800000, 0x0000000716800000| Untracked +| 105|0x0000000716a00000, 0x0000000716c00000, 0x0000000716c00000|100%| S|CS|TAMS 0x0000000716a00000, 0x0000000716a00000| Complete +| 106|0x0000000716c00000, 0x0000000716c00000, 0x0000000716e00000| 0%| F| |TAMS 0x0000000716c00000, 0x0000000716c00000| Untracked +| 107|0x0000000716e00000, 0x0000000716e00000, 0x0000000717000000| 0%| F| |TAMS 0x0000000716e00000, 0x0000000716e00000| Untracked +| 108|0x0000000717000000, 0x0000000717200000, 0x0000000717200000|100%| E| |TAMS 0x0000000717000000, 0x0000000717000000| Complete +| 109|0x0000000717200000, 0x0000000717400000, 0x0000000717400000|100%| E|CS|TAMS 0x0000000717200000, 0x0000000717200000| Complete +| 110|0x0000000717400000, 0x0000000717600000, 0x0000000717600000|100%| E|CS|TAMS 0x0000000717400000, 0x0000000717400000| Complete +| 111|0x0000000717600000, 0x0000000717800000, 0x0000000717800000|100%| E|CS|TAMS 0x0000000717600000, 0x0000000717600000| Complete +| 112|0x0000000717800000, 0x0000000717a00000, 0x0000000717a00000|100%| E|CS|TAMS 0x0000000717800000, 0x0000000717800000| Complete +| 113|0x0000000717a00000, 0x0000000717c00000, 0x0000000717c00000|100%| E|CS|TAMS 0x0000000717a00000, 0x0000000717a00000| Complete +| 114|0x0000000717c00000, 0x0000000717e00000, 0x0000000717e00000|100%| E|CS|TAMS 0x0000000717c00000, 0x0000000717c00000| Complete +| 115|0x0000000717e00000, 0x0000000718000000, 0x0000000718000000|100%| E|CS|TAMS 0x0000000717e00000, 0x0000000717e00000| Complete +| 116|0x0000000718000000, 0x0000000718200000, 0x0000000718200000|100%| E|CS|TAMS 0x0000000718000000, 0x0000000718000000| Complete +| 117|0x0000000718200000, 0x0000000718400000, 0x0000000718400000|100%| E|CS|TAMS 0x0000000718200000, 0x0000000718200000| Complete +| 118|0x0000000718400000, 0x0000000718600000, 0x0000000718600000|100%| E|CS|TAMS 0x0000000718400000, 0x0000000718400000| Complete +| 119|0x0000000718600000, 0x0000000718800000, 0x0000000718800000|100%| E|CS|TAMS 0x0000000718600000, 0x0000000718600000| Complete +| 120|0x0000000718800000, 0x0000000718a00000, 0x0000000718a00000|100%| E|CS|TAMS 0x0000000718800000, 0x0000000718800000| Complete +| 121|0x0000000718a00000, 0x0000000718c00000, 0x0000000718c00000|100%| E|CS|TAMS 0x0000000718a00000, 0x0000000718a00000| Complete +| 122|0x0000000718c00000, 0x0000000718e00000, 0x0000000718e00000|100%| E|CS|TAMS 0x0000000718c00000, 0x0000000718c00000| Complete +| 123|0x0000000718e00000, 0x0000000719000000, 0x0000000719000000|100%| E|CS|TAMS 0x0000000718e00000, 0x0000000718e00000| Complete + +Card table byte_map: [0x000001f736210000,0x000001f7369d0000] _byte_map_base: 0x000001f7329c4000 + +Marking Bits (Prev, Next): (CMBitMap*) 0x000001f71e9c0ce0, (CMBitMap*) 0x000001f71e9c0d20 + Prev Bits: [0x000001f737190000, 0x000001f73af30000) + Next Bits: [0x000001f73af30000, 0x000001f73ecd0000) + +Polling page: 0x000001f71e110000 + +Metaspace: + +Usage: + Non-class: 9.72 MB used. + Class: 965.98 KB used. + Both: 10.66 MB used. + +Virtual space: + Non-class space: 16.00 MB reserved, 9.88 MB ( 62%) committed, 2 nodes. + Class space: 1.00 GB reserved, 1.00 MB ( <1%) committed, 1 nodes. + Both: 1.02 GB reserved, 10.88 MB ( 1%) committed. + +Chunk freelists: + Non-Class: 1.11 MB + Class: 3.01 MB + Both: 4.12 MB + +MaxMetaspaceSize: unlimited +CompressedClassSpaceSize: 1.00 GB +Initial GC threshold: 21.00 MB +Current GC threshold: 21.00 MB +CDS: on +MetaspaceReclaimPolicy: balanced + - commit_granule_bytes: 65536. + - commit_granule_words: 8192. + - virtual_space_node_default_size: 1048576. + - enlarge_chunks_in_place: 1. + - new_chunks_are_fully_committed: 0. + - uncommit_free_chunks: 1. + - use_allocation_guard: 0. + - handle_deallocations: 1. + + +Internal statistics: + +num_allocs_failed_limit: 0. +num_arena_births: 144. +num_arena_deaths: 0. +num_vsnodes_births: 3. +num_vsnodes_deaths: 0. +num_space_committed: 172. +num_space_uncommitted: 0. +num_chunks_returned_to_freelist: 0. +num_chunks_taken_from_freelist: 475. +num_chunk_merges: 0. +num_chunk_splits: 332. +num_chunks_enlarged: 258. +num_purges: 0. +num_inconsistent_stats: 0. + +CodeHeap 'non-profiled nmethods': size=119168Kb used=1866Kb max_used=1866Kb free=117301Kb + bounds [0x000001f72dd60000, 0x000001f72dfd0000, 0x000001f7351c0000] +CodeHeap 'profiled nmethods': size=119104Kb used=5887Kb max_used=5887Kb free=113217Kb + bounds [0x000001f7261c0000, 0x000001f726780000, 0x000001f72d610000] +CodeHeap 'non-nmethods': size=7488Kb used=1656Kb max_used=3392Kb free=5831Kb + bounds [0x000001f72d610000, 0x000001f72d960000, 0x000001f72dd60000] + total_blobs=4070 nmethods=2973 adapters=1009 + compilation: enabled + stopped_count=0, restarted_count=0 + full_count=0 + +Compilation events (20 events): +Event: 22.888 Thread 0x000001f742810d50 2963 4 com.csse3200.game.components.tasks.scanner.ScannerTask::update (131 bytes) +Event: 22.893 Thread 0x000001f742810d50 nmethod 2963 0x000001f72df2aa90 code [0x000001f72df2aca0, 0x000001f72df2b010] +Event: 23.055 Thread 0x000001f742812530 2964 3 com.csse3200.game.components.CombatStatsComponent::changeState (61 bytes) +Event: 23.056 Thread 0x000001f742812530 nmethod 2964 0x000001f72677f090 code [0x000001f72677f280, 0x000001f72677f638] +Event: 23.288 Thread 0x000001f742810d50 2965 4 com.badlogic.gdx.scenes.scene2d.Stage::act (236 bytes) +Event: 23.325 Thread 0x000001f742810d50 nmethod 2965 0x000001f72df2b310 code [0x000001f72df2b580, 0x000001f72df2c970] +Event: 23.604 Thread 0x000001f742810d50 2966 4 com.badlogic.gdx.physics.box2d.World::contactFilter (144 bytes) +Event: 23.615 Thread 0x000001f742810d50 nmethod 2966 0x000001f72df2d490 code [0x000001f72df2d660, 0x000001f72df2dcf8] +Event: 23.689 Thread 0x000001f742810d50 2967 4 com.csse3200.game.services.ServiceLocator::getEntityService (4 bytes) +Event: 23.689 Thread 0x000001f742810d50 nmethod 2967 0x000001f72df2e410 code [0x000001f72df2e580, 0x000001f72df2e5f8] +Event: 23.754 Thread 0x000001f742810d50 2968 4 com.badlogic.gdx.physics.box2d.World::preSolve (41 bytes) +Event: 23.756 Thread 0x000001f742810d50 nmethod 2968 0x000001f72df2e710 code [0x000001f72df2e8a0, 0x000001f72df2e9c8] +Event: 23.756 Thread 0x000001f742810d50 2969 4 com.badlogic.gdx.physics.box2d.World::postSolve (41 bytes) +Event: 23.758 Thread 0x000001f742810d50 nmethod 2969 0x000001f72df2eb10 code [0x000001f72df2eca0, 0x000001f72df2edc8] +Event: 23.770 Thread 0x000001f742810d50 2970 4 com.csse3200.game.components.TouchAttackComponent$$Lambda$72/0x0000000800ce25c8::handle (16 bytes) +Event: 23.820 Thread 0x000001f742810d50 nmethod 2970 0x000001f72df2ef10 code [0x000001f72df2f2c0, 0x000001f72df30a68] +Event: 23.888 Thread 0x000001f742812530 2971 1 com.csse3200.game.components.tasks.human.HumanWanderTask::getPriority (2 bytes) +Event: 23.888 Thread 0x000001f742812530 nmethod 2971 0x000001f72df32190 code [0x000001f72df32320, 0x000001f72df323f8] +Event: 24.240 Thread 0x000001f742812530 2972 3 sun.nio.cs.SingleByte$Encoder::encode (32 bytes) +Event: 24.240 Thread 0x000001f742812530 nmethod 2972 0x000001f72677f710 code [0x000001f72677f8c0, 0x000001f72677fab8] + +GC Heap History (4 events): +Event: 2.942 GC heap before +{Heap before GC invocations=0 (full 0): + garbage-first heap total 253952K, used 20480K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 11 young (22528K), 0 survivors (0K) + Metaspace used 6451K, committed 6656K, reserved 1064960K + class space used 485K, committed 576K, reserved 1048576K +} +Event: 2.947 GC heap after +{Heap after GC invocations=1 (full 0): + garbage-first heap total 253952K, used 3628K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 2 young (4096K), 2 survivors (4096K) + Metaspace used 6451K, committed 6656K, reserved 1064960K + class space used 485K, committed 576K, reserved 1048576K +} +Event: 10.863 GC heap before +{Heap before GC invocations=1 (full 0): + garbage-first heap total 253952K, used 38444K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 18 young (36864K), 2 survivors (4096K) + Metaspace used 9495K, committed 9728K, reserved 1064960K + class space used 777K, committed 896K, reserved 1048576K +} +Event: 10.870 GC heap after +{Heap after GC invocations=2 (full 0): + garbage-first heap total 253952K, used 5102K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 1 young (2048K), 1 survivors (2048K) + Metaspace used 9495K, committed 9728K, reserved 1064960K + class space used 777K, committed 896K, reserved 1048576K +} + +Deoptimization events (20 events): +Event: 21.670 Thread 0x000001f71e94df20 DEOPT PACKING pc=0x000001f726715c22 sp=0x000000e9697ff240 +Event: 21.670 Thread 0x000001f71e94df20 DEOPT UNPACKING pc=0x000001f72d662b43 sp=0x000000e9697fe700 mode 0 +Event: 21.670 Thread 0x000001f71e94df20 DEOPT PACKING pc=0x000001f726717666 sp=0x000000e9697ff2b0 +Event: 21.670 Thread 0x000001f71e94df20 DEOPT UNPACKING pc=0x000001f72d662b43 sp=0x000000e9697fe768 mode 0 +Event: 21.794 Thread 0x000001f71e94df20 Uncommon trap: trap_request=0xffffffde fr.pc=0x000001f72df2942c relative=0x000000000000010c +Event: 21.794 Thread 0x000001f71e94df20 Uncommon trap: reason=class_check action=maybe_recompile pc=0x000001f72df2942c method=jdk.internal.misc.Unsafe.allocateUninitializedArray(Ljava/lang/Class;I)Ljava/lang/Object; @ 51 c2 +Event: 21.794 Thread 0x000001f71e94df20 DEOPT PACKING pc=0x000001f72df2942c sp=0x000000e9697fe240 +Event: 21.794 Thread 0x000001f71e94df20 DEOPT UNPACKING pc=0x000001f72d6623a3 sp=0x000000e9697fe1c8 mode 2 +Event: 24.054 Thread 0x000001f75b573a20 Uncommon trap: trap_request=0xffffff45 fr.pc=0x000001f72df1387c relative=0x00000000000003fc +Event: 24.054 Thread 0x000001f75b573a20 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000001f72df1387c method=java.util.Collections.max(Ljava/util/Collection;Ljava/util/Comparator;)Ljava/lang/Object; @ 49 c2 +Event: 24.054 Thread 0x000001f71e94df20 Uncommon trap: trap_request=0xffffff45 fr.pc=0x000001f72df1387c relative=0x00000000000003fc +Event: 24.054 Thread 0x000001f71e94df20 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000001f72df1387c method=java.util.Collections.max(Ljava/util/Collection;Ljava/util/Comparator;)Ljava/lang/Object; @ 49 c2 +Event: 24.054 Thread 0x000001f75b573a20 DEOPT PACKING pc=0x000001f72df1387c sp=0x000000e96ceff1c0 +Event: 24.054 Thread 0x000001f71e94df20 DEOPT PACKING pc=0x000001f72df1387c sp=0x000000e9697ff2c0 +Event: 24.054 Thread 0x000001f75b573a20 DEOPT UNPACKING pc=0x000001f72d6623a3 sp=0x000000e96ceff090 mode 2 +Event: 24.054 Thread 0x000001f71e94df20 DEOPT UNPACKING pc=0x000001f72d6623a3 sp=0x000000e9697ff188 mode 2 +Event: 24.238 Thread 0x000001f71e93a030 Uncommon trap: trap_request=0xffffff45 fr.pc=0x000001f72defe028 relative=0x0000000000000648 +Event: 24.238 Thread 0x000001f71e93a030 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000001f72defe028 method=com.badlogic.gdx.utils.Array$ArrayIterator.hasNext()Z @ 4 c2 +Event: 24.238 Thread 0x000001f71e93a030 DEOPT PACKING pc=0x000001f72defe028 sp=0x000000e96d2feca0 +Event: 24.238 Thread 0x000001f71e93a030 DEOPT UNPACKING pc=0x000001f72d6623a3 sp=0x000000e96d2febf0 mode 2 + +Classes unloaded (0 events): +No events + +Classes redefined (0 events): +No events + +Internal exceptions (20 events): +Event: 0.643 Thread 0x000001f71e94df20 Exception (0x00000007185089f8) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 0.706 Thread 0x000001f71e94df20 Exception (0x00000007185a4d90) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 0.706 Thread 0x000001f71e94df20 Exception (0x00000007185a5110) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 2.030 Thread 0x000001f71e94df20 Exception (0x00000007185f4d48) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 2.447 Thread 0x000001f71e94df20 Exception (0x00000007183314e8) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 2.447 Thread 0x000001f71e94df20 Exception (0x0000000718331890) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 2.451 Thread 0x000001f71e94df20 Exception (0x000000071833ce58) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 2.451 Thread 0x000001f71e94df20 Exception (0x000000071833d138) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 2.718 Thread 0x000001f71e94df20 Exception (0x0000000717e68ff0) +thrown [s\open\src\hotspot\share\classfile\systemDictionary.cpp, line 256] +Event: 2.750 Thread 0x000001f71e94df20 Exception (0x0000000717eef690) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 2.786 Thread 0x000001f71e94df20 Exception (0x0000000717f3e1e0) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 2.790 Thread 0x000001f71e94df20 Exception (0x0000000717f48600) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 7.309 Thread 0x000001f71e94df20 Implicit null exception at 0x000001f72ddd6d96 to 0x000001f72ddd7020 +Event: 9.626 Thread 0x000001f71e94df20 Exception (0x0000000717e2a558) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 11.526 Thread 0x000001f71e94df20 Exception (0x0000000717d95d10) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 11.528 Thread 0x000001f71e94df20 Exception (0x0000000717da4300) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 11.530 Thread 0x000001f71e94df20 Exception (0x0000000717dada78) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 11.665 Thread 0x000001f71e94df20 Exception (0x0000000717ad1118) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 11.696 Thread 0x000001f71e94df20 Exception (0x0000000717824c10) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 11.701 Thread 0x000001f71e94df20 Exception (0x000000071782df70) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] + +VM Operations (20 events): +Event: 13.590 Executing VM operation: Cleanup +Event: 13.590 Executing VM operation: Cleanup done +Event: 14.073 Executing VM operation: HandshakeAllThreads +Event: 14.073 Executing VM operation: HandshakeAllThreads done +Event: 15.073 Executing VM operation: Cleanup +Event: 15.073 Executing VM operation: Cleanup done +Event: 16.074 Executing VM operation: Cleanup +Event: 16.074 Executing VM operation: Cleanup done +Event: 17.074 Executing VM operation: Cleanup +Event: 17.074 Executing VM operation: Cleanup done +Event: 18.075 Executing VM operation: Cleanup +Event: 18.075 Executing VM operation: Cleanup done +Event: 19.075 Executing VM operation: Cleanup +Event: 19.075 Executing VM operation: Cleanup done +Event: 21.075 Executing VM operation: Cleanup +Event: 21.076 Executing VM operation: Cleanup done +Event: 22.076 Executing VM operation: Cleanup +Event: 22.076 Executing VM operation: Cleanup done +Event: 24.077 Executing VM operation: Cleanup +Event: 24.077 Executing VM operation: Cleanup done + +Events (20 events): +Event: 21.554 Thread 0x000001f7431edfc0 Thread added: 0x000001f7431edfc0 +Event: 21.637 Thread 0x000001f7431eb940 Thread added: 0x000001f7431eb940 +Event: 21.654 Thread 0x000001f7431f14b0 Thread added: 0x000001f7431f14b0 +Event: 21.785 loading class java/lang/invoke/MethodHandle$1 +Event: 21.785 loading class java/lang/invoke/MethodHandle$1 done +Event: 21.887 Thread 0x000001f7431f1e50 Thread added: 0x000001f7431f1e50 +Event: 22.104 Thread 0x000001f7431f27f0 Thread added: 0x000001f7431f27f0 +Event: 22.237 Thread 0x000001f7431ed150 Thread added: 0x000001f7431ed150 +Event: 22.570 Thread 0x000001f7431eafa0 Thread added: 0x000001f7431eafa0 +Event: 22.604 Thread 0x000001f7431ebe10 Thread added: 0x000001f7431ebe10 +Event: 22.954 Thread 0x000001f7431ef7d0 Thread added: 0x000001f7431ef7d0 +Event: 23.254 Thread 0x000001f7431ed620 Thread added: 0x000001f7431ed620 +Event: 23.487 Thread 0x000001f7431efca0 Thread added: 0x000001f7431efca0 +Event: 23.554 Thread 0x000001f7431ec2e0 Thread added: 0x000001f7431ec2e0 +Event: 24.020 Thread 0x000001f7431f0b10 Thread added: 0x000001f7431f0b10 +Event: 24.238 loading class java/lang/Throwable$WrappedPrintStream +Event: 24.238 loading class java/lang/Throwable$PrintStreamOrWriter +Event: 24.239 loading class java/lang/Throwable$PrintStreamOrWriter done +Event: 24.239 loading class java/lang/Throwable$WrappedPrintStream done +Event: 24.243 Thread 0x000001f71e93a030 Thread exited: 0x000001f71e93a030 + + +Dynamic libraries: +0x00007ff726ee0000 - 0x00007ff726ef0000 C:\Program Files\Java\jdk-17\bin\java.exe +0x00007ffba77b0000 - 0x00007ffba79a8000 C:\Windows\SYSTEM32\ntdll.dll +0x00007ffba7300000 - 0x00007ffba73bd000 C:\Windows\System32\KERNEL32.DLL +0x00007ffba4f20000 - 0x00007ffba5216000 C:\Windows\System32\KERNELBASE.dll +0x00007ffba5220000 - 0x00007ffba5320000 C:\Windows\System32\ucrtbase.dll +0x00007ffb7e7c0000 - 0x00007ffb7e7d8000 C:\Program Files\Java\jdk-17\bin\jli.dll +0x00007ffb95200000 - 0x00007ffb9521b000 C:\Program Files\Java\jdk-17\bin\VCRUNTIME140.dll +0x00007ffba7250000 - 0x00007ffba72fe000 C:\Windows\System32\ADVAPI32.dll +0x00007ffba5810000 - 0x00007ffba58ae000 C:\Windows\System32\msvcrt.dll +0x00007ffba58b0000 - 0x00007ffba594c000 C:\Windows\System32\sechost.dll +0x00007ffba60e0000 - 0x00007ffba6206000 C:\Windows\System32\RPCRT4.dll +0x00007ffba73c0000 - 0x00007ffba755e000 C:\Windows\System32\USER32.dll +0x00007ffb9a290000 - 0x00007ffb9a52a000 C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_60b5254171f9507e\COMCTL32.dll +0x00007ffba53f0000 - 0x00007ffba5412000 C:\Windows\System32\win32u.dll +0x00007ffba6210000 - 0x00007ffba623c000 C:\Windows\System32\GDI32.dll +0x00007ffba5640000 - 0x00007ffba575a000 C:\Windows\System32\gdi32full.dll +0x00007ffba5350000 - 0x00007ffba53ed000 C:\Windows\System32\msvcp_win.dll +0x00007ffb98ea0000 - 0x00007ffb98eaa000 C:\Windows\SYSTEM32\VERSION.dll +0x00007ffba6250000 - 0x00007ffba6280000 C:\Windows\System32\IMM32.DLL +0x00007ffb94620000 - 0x00007ffb9462c000 C:\Program Files\Java\jdk-17\bin\vcruntime140_1.dll +0x00007ffb4cb50000 - 0x00007ffb4cbde000 C:\Program Files\Java\jdk-17\bin\msvcp140.dll +0x00007ffb07fb0000 - 0x00007ffb08b87000 C:\Program Files\Java\jdk-17\bin\server\jvm.dll +0x00007ffba6240000 - 0x00007ffba6248000 C:\Windows\System32\PSAPI.DLL +0x00007ffb98e70000 - 0x00007ffb98e97000 C:\Windows\SYSTEM32\WINMM.dll +0x00007ffb84120000 - 0x00007ffb84129000 C:\Windows\SYSTEM32\WSOCK32.dll +0x00007ffba71e0000 - 0x00007ffba724b000 C:\Windows\System32\WS2_32.dll +0x00007ffba36e0000 - 0x00007ffba36f2000 C:\Windows\SYSTEM32\kernel.appcore.dll +0x00007ffb94420000 - 0x00007ffb9442a000 C:\Program Files\Java\jdk-17\bin\jimage.dll +0x00007ffba2bb0000 - 0x00007ffba2d94000 C:\Windows\SYSTEM32\DBGHELP.DLL +0x00007ffb96480000 - 0x00007ffb964b4000 C:\Windows\SYSTEM32\dbgcore.DLL +0x00007ffba4e90000 - 0x00007ffba4f12000 C:\Windows\System32\bcryptPrimitives.dll +0x00007ffb7e790000 - 0x00007ffb7e7b5000 C:\Program Files\Java\jdk-17\bin\java.dll +0x00007ffb3a6a0000 - 0x00007ffb3a777000 C:\Program Files\Java\jdk-17\bin\jsvml.dll +0x00007ffba63f0000 - 0x00007ffba6b35000 C:\Windows\System32\SHELL32.dll +0x00007ffba2f00000 - 0x00007ffba369b000 C:\Windows\SYSTEM32\windows.storage.dll +0x00007ffba5c50000 - 0x00007ffba5fa4000 C:\Windows\System32\combase.dll +0x00007ffba4860000 - 0x00007ffba488e000 C:\Windows\SYSTEM32\Wldp.dll +0x00007ffba6b40000 - 0x00007ffba6bed000 C:\Windows\System32\SHCORE.dll +0x00007ffba5b20000 - 0x00007ffba5b75000 C:\Windows\System32\shlwapi.dll +0x00007ffba4dc0000 - 0x00007ffba4de5000 C:\Windows\SYSTEM32\profapi.dll +0x00007ffb7bf70000 - 0x00007ffb7bf89000 C:\Program Files\Java\jdk-17\bin\net.dll +0x00007ffb9f190000 - 0x00007ffb9f29a000 C:\Windows\SYSTEM32\WINHTTP.dll +0x0000000180000000 - 0x000000018008c000 C:\Windows\system32\ASProxy64.dll +0x00007ffba5fb0000 - 0x00007ffba60da000 C:\Windows\System32\ole32.dll +0x00007ffba5b80000 - 0x00007ffba5c4d000 C:\Windows\System32\OLEAUT32.dll +0x00007ffba45c0000 - 0x00007ffba462a000 C:\Windows\SYSTEM32\MSWSOCK.dll +0x00007ffba42b0000 - 0x00007ffba42eb000 C:\Windows\SYSTEM32\IPHLPAPI.DLL +0x00007ffba4d40000 - 0x00007ffba4d72000 C:\Windows\SYSTEM32\SspiCli.dll +0x00007ffb765b0000 - 0x00007ffb765c6000 C:\Program Files\Java\jdk-17\bin\nio.dll +0x00007ffb74f20000 - 0x00007ffb74f38000 C:\Program Files\Java\jdk-17\bin\zip.dll +0x00007ffba2120000 - 0x00007ffba21be000 C:\Windows\system32\uxtheme.dll +0x00007ffb93330000 - 0x00007ffb93340000 C:\Program Files\Java\jdk-17\bin\verify.dll +0x0000000050410000 - 0x0000000050439000 C:\Users\isaac\AppData\Local\Temp\libgdxisaac\e787ab0a\gdx64.dll +0x00007ffb6c5b0000 - 0x00007ffb6c625000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\lwjgl.dll +0x00007ffb3c540000 - 0x00007ffb3c799000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\jemalloc.dll +0x00007ffb6ef40000 - 0x00007ffb6efa1000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\glfw.dll +0x00007ffb7e680000 - 0x00007ffb7e6c5000 C:\Windows\SYSTEM32\dinput8.dll +0x00007ffb9b0d0000 - 0x00007ffb9b0e1000 C:\Windows\SYSTEM32\xinput1_4.dll +0x00007ffba5420000 - 0x00007ffba546e000 C:\Windows\System32\cfgmgr32.dll +0x00007ffba4c40000 - 0x00007ffba4c73000 C:\Windows\SYSTEM32\DEVOBJ.dll +0x00007ffba24b0000 - 0x00007ffba24df000 C:\Windows\SYSTEM32\dwmapi.dll +0x00007ffb7c850000 - 0x00007ffb7c9a2000 C:\Windows\SYSTEM32\inputhost.dll +0x00007ffba2da0000 - 0x00007ffba2e96000 C:\Windows\SYSTEM32\PROPSYS.dll +0x00007ffba0590000 - 0x00007ffba06e5000 C:\Windows\SYSTEM32\wintypes.dll +0x00007ffba1d30000 - 0x00007ffba1e22000 C:\Windows\SYSTEM32\CoreMessaging.dll +0x00007ffba1650000 - 0x00007ffba19ae000 C:\Windows\SYSTEM32\CoreUIComponents.dll +0x00007ffba3fe0000 - 0x00007ffba4013000 C:\Windows\SYSTEM32\ntmarta.dll +0x00007ffba7570000 - 0x00007ffba7684000 C:\Windows\System32\MSCTF.dll +0x00007ffb2f230000 - 0x00007ffb2f3c7000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\OpenAL.dll +0x00007ffba6bf0000 - 0x00007ffba6c99000 C:\Windows\System32\clbcatq.dll +0x00007ffb9d930000 - 0x00007ffb9d9b5000 C:\Windows\System32\MMDevApi.dll +0x00007ffb9d2a0000 - 0x00007ffb9d422000 C:\Windows\SYSTEM32\AUDIOSES.DLL +0x00007ffba4bd0000 - 0x00007ffba4c1b000 C:\Windows\SYSTEM32\powrprof.dll +0x00007ffba4bb0000 - 0x00007ffba4bc2000 C:\Windows\SYSTEM32\UMPDC.dll +0x00007ffba24e0000 - 0x00007ffba24f4000 C:\Windows\SYSTEM32\resourcepolicyclient.dll +0x00007ffb3c410000 - 0x00007ffb3c535000 C:\Windows\SYSTEM32\opengl32.dll +0x00007ffb95da0000 - 0x00007ffb95dcc000 C:\Windows\SYSTEM32\GLU32.dll +0x00007ffb9c490000 - 0x00007ffb9c592000 C:\Windows\System32\AppXDeploymentClient.dll +0x00007ffb793b0000 - 0x00007ffb793da000 C:\Windows\System32\DriverStore\FileRepository\u0363312.inf_amd64_08fc5018b1b99545\B363211\atig6pxx.dll +0x00007ffb05200000 - 0x00007ffb07fa5000 C:\Windows\System32\DriverStore\FileRepository\u0363312.inf_amd64_08fc5018b1b99545\B363211\atio6axx.dll +0x00007ffba6d10000 - 0x00007ffba717e000 C:\Windows\System32\SETUPAPI.dll +0x00007ffba5320000 - 0x00007ffba5347000 C:\Windows\System32\bcrypt.dll +0x00007ffb94f20000 - 0x00007ffb94f44000 C:\Windows\SYSTEM32\dxva2.dll +0x00007ffb71a10000 - 0x00007ffb71a4c000 C:\Windows\System32\DriverStore\FileRepository\u0363312.inf_amd64_08fc5018b1b99545\B363211\atig6txx.dll +0x00007ffb1f770000 - 0x00007ffb1f92f000 C:\Windows\SYSTEM32\atiadlxx.dll +0x00007ffba55d0000 - 0x00007ffba5637000 C:\Windows\System32\WINTRUST.dll +0x00007ffba5470000 - 0x00007ffba55ce000 C:\Windows\System32\CRYPT32.dll +0x00007ffba49f0000 - 0x00007ffba4a02000 C:\Windows\SYSTEM32\MSASN1.dll +0x00007ffb9eba0000 - 0x00007ffb9ebdb000 C:\Windows\SYSTEM32\dxcore.dll +0x00007ffb6ecb0000 - 0x00007ffb6ed0d000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\lwjgl_opengl.dll +0x00007ffb7c9b0000 - 0x00007ffb7caaa000 C:\Windows\SYSTEM32\textinputframework.dll +0x00007ffb7f310000 - 0x00007ffb7f376000 C:\Windows\system32\Oleacc.dll +0x00007ffb72850000 - 0x00007ffb72b45000 C:\Windows\System32\uiautomationcore.dll +0x00007ffba47d0000 - 0x00007ffba47dc000 C:\Windows\SYSTEM32\CRYPTBASE.DLL +0x00000000503b0000 - 0x000000005040a000 C:\Users\isaac\AppData\Local\Temp\libgdxisaac\888fe1bc\gdx-box2d64.dll + +dbghelp: loaded successfully - version: 4.0.5 - missing functions: none +symbol engine: initialized successfully - sym options: 0x614 - pdb path: .;C:\Program Files\Java\jdk-17\bin;C:\Windows\SYSTEM32;C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_60b5254171f9507e;C:\Program Files\Java\jdk-17\bin\server;C:\Users\isaac\AppData\Local\Temp\libgdxisaac\e787ab0a;C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7;C:\Windows\System32\DriverStore\FileRepository\u0363312.inf_amd64_08fc5018b1b99545\B363211;C:\Users\isaac\AppData\Local\Temp\libgdxisaac\888fe1bc + +VM Arguments: +jvm_args: -XX:+ShowCodeDetailsInExceptionMessages +java_command: com.csse3200.game.desktop.DesktopLauncher +java_class_path (initial): C:\Users\isaac\OneDrive\Documents\School\University of Queensland\UQ 2023\UQ 2023 Semester 2\CSSE3200\2023-studio-3\source\desktop\bin\main;\csse3200-game-core\bin\default;C:\Users\isaac\OneDrive\Documents\School\University of Queensland\UQ 2023\UQ 2023 Semester 2\CSSE3200\2023-studio-3\source\core\bin\main;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-backend-lwjgl3\1.11.0\58a96db4cd349be4292d547856aa1e1c5f065f4e\gdx-backend-lwjgl3-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-platform\1.11.0\697fb13eada6d3c6ca648c9788692b0159add126\gdx-platform-1.11.0-natives-desktop.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-box2d-platform\1.11.0\62ff9baa1e57a11e0a4428a38c9660bf9f312fdc\gdx-box2d-platform-1.11.0-natives-desktop.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-tools\1.11.0\a5d30eafd0f2fbab314efdf6d98ebc27388b7c0a\gdx-tools-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx-controllers\gdx-controllers-desktop\2.2.2\625b3bdbe803e9c4af181b4791202cfcf776d805\gdx-controllers-desktop-2.2.2.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-backend-lwjgl\1.11.0\33555a2cf8b4d9db4122b2fe42e7674b343d8b4\gdx-backend-lwjgl-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-freetype\1.11.0\a3634ad2e6c56d251268d6ab5c0f66eee2841f2c\gdx-freetype-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-backend-headless\1.11.0\3c3d0c951db72891d894df1725d09179fd0bca00\gdx-backend-headless-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\net.dermetfan.libgdx-utils\libgdx-utils-box2d\0.13.4\918d79a20ea3c898cdb3611782c5b2bfa6ec575b\libgdx-utils-box2d-0.13.4.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-box2d\1.11.0\ad4facee800dd945d6d6e93dea2936bc135b +Launcher Type: SUN_STANDARD + +[Global flags] + intx CICompilerCount = 12 {product} {ergonomic} + uint ConcGCThreads = 3 {product} {ergonomic} + uint G1ConcRefinementThreads = 13 {product} {ergonomic} + size_t G1HeapRegionSize = 2097152 {product} {ergonomic} + uintx GCDrainStackTargetSize = 64 {product} {ergonomic} + size_t InitialHeapSize = 260046848 {product} {ergonomic} + size_t MarkStackSize = 4194304 {product} {ergonomic} + size_t MaxHeapSize = 4135583744 {product} {ergonomic} + size_t MaxNewSize = 2480930816 {product} {ergonomic} + size_t MinHeapDeltaBytes = 2097152 {product} {ergonomic} + size_t MinHeapSize = 8388608 {product} {ergonomic} + uintx NonNMethodCodeHeapSize = 7602480 {pd product} {ergonomic} + uintx NonProfiledCodeHeapSize = 122027880 {pd product} {ergonomic} + uintx ProfiledCodeHeapSize = 122027880 {pd product} {ergonomic} + uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} + bool SegmentedCodeCache = true {product} {ergonomic} + bool ShowCodeDetailsInExceptionMessages = true {manageable} {command line} + size_t SoftMaxHeapSize = 4135583744 {manageable} {ergonomic} + bool UseCompressedClassPointers = true {product lp64_product} {ergonomic} + bool UseCompressedOops = true {product lp64_product} {ergonomic} + bool UseG1GC = true {product} {ergonomic} + bool UseLargePagesIndividualAllocation = false {pd product} {ergonomic} + +Logging: +Log output configuration: + #0: stdout all=warning uptime,level,tags + #1: stderr all=off uptime,level,tags + +Environment Variables: +PATH=C:\Users\isaac\bin;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\local\bin;C:\Program Files\Git\usr\bin;C:\Program Files\Git\usr\bin;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Users\isaac\bin;C:\Program Files\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn;C:\Program Files (x86)\Microsoft SQL Server\150\Tools\Binn;C:\Program Files\Microsoft SQL Server\150\Tools\Binn;C:\Program Files\Microsoft SQL Server\150\DTS\Binn;C:\Program Files (x86)\Microsoft SQL Server\150\DTS\Binn;C:\Program Files\Azure Data Studio\bin;C:\Program Files\Git\cmd;C:\Program Files\PuTTY;C:\Program Files (x86)\Pololu\USB AVR Programmer v2\bin;C:\Program Files\nodejs;C:\Users\isaac\AppData\Local\Programs\Python\Python310\Scripts;C:\Users\isaac\AppData\Local\Programs\Python\Python310;C:\Users\isaac\AppData\Local\Microsoft\WindowsApps;C:\Users\isaac\AppData\Local\Programs\Microsoft VS Code\bin;C:\Program Files\Azure Data Studio\bin;C:\Users\isaac\AppData\Roaming\npm;C:\Program Files\Git\usr\bin\vendor_perl;C:\Program Files\Git\usr\bin\core_perl +USERNAME=isaac +SHELL=C:\Program Files\Git\usr\bin\bash.exe +DISPLAY=needs-to-be-defined +LANG=en_US.UTF-8 +OS=Windows_NT +PROCESSOR_IDENTIFIER=AMD64 Family 23 Model 104 Stepping 1, AuthenticAMD + + + +--------------- S Y S T E M --------------- + +OS: + Windows 10 , 64 bit Build 19041 (10.0.19041.3393) +OS uptime: 5 days 6:06 hours + +CPU: total 16 (initial active 16) (16 cores per cpu, 2 threads per core) family 23 model 104 stepping 1 microcode 0x0, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4a, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, clmul, bmi1, bmi2, adx, sha, fma, vzeroupper, clflush, clflushopt + +Memory: 4k page, system-wide physical 15769M (6217M free) +TotalPageFile size 19865M (AvailPageFile size 4344M) +current process WorkingSet (physical memory assigned to process): 405M, peak: 425M +current process commit charge ("private bytes"): 708M, peak: 729M + +vm_info: Java HotSpot(TM) 64-Bit Server VM (17.0.6+9-LTS-190) for windows-amd64 JRE (17.0.6+9-LTS-190), built on Dec 6 2022 15:53:54 by "mach5one" with MS VC++ 17.1 (VS2022) + +END. diff --git a/hs_err_pid22188.log b/hs_err_pid22188.log new file mode 100644 index 000000000..581e87ab5 --- /dev/null +++ b/hs_err_pid22188.log @@ -0,0 +1,929 @@ +# +# A fatal error has been detected by the Java Runtime Environment: +# +# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000000503eb9e2, pid=22188, tid=3688 +# +# JRE version: Java(TM) SE Runtime Environment (17.0.6+9) (build 17.0.6+9-LTS-190) +# Java VM: Java HotSpot(TM) 64-Bit Server VM (17.0.6+9-LTS-190, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64) +# Problematic frame: +# C [gdx-box2d64.dll+0x3b9e2] +# +# 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: +# https://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: -XX:+ShowCodeDetailsInExceptionMessages com.csse3200.game.desktop.DesktopLauncher + +Host: AMD Ryzen 7 5700U with Radeon Graphics , 16 cores, 15G, Windows 10 , 64 bit Build 19041 (10.0.19041.3393) +Time: Wed Sep 27 17:57:12 2023 E. Australia Standard Time elapsed time: 59.377646 seconds (0d 0h 0m 59s) + +--------------- T H R E A D --------------- + +Current thread (0x000001fa5933e0c0): JavaThread "main" [_thread_in_native, id=3688, stack(0x000000b0f4900000,0x000000b0f4a00000)] + +Stack: [0x000000b0f4900000,0x000000b0f4a00000], sp=0x000000b0f49fe750, free space=1017k +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) +C [gdx-box2d64.dll+0x3b9e2] + +Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) +J 2505 com.badlogic.gdx.physics.box2d.World.jniRayCast(JFFFF)V (0 bytes) @ 0x000001fa6889e3f9 [0x000001fa6889e3a0+0x0000000000000059] +J 2846 c2 com.csse3200.game.components.tasks.FireTowerCombatTask.getPriority()I (16 bytes) @ 0x000001fa6890ef54 [0x000001fa6890ee20+0x0000000000000134] +J 3041 c2 com.csse3200.game.ai.tasks.AITaskComponent.update()V (42 bytes) @ 0x000001fa6894f484 [0x000001fa6894f2a0+0x00000000000001e4] +J 2863 c2 com.csse3200.game.entities.EntityService.update()V (39 bytes) @ 0x000001fa6891c25c [0x000001fa6891c0c0+0x000000000000019c] +J 2729 c1 com.csse3200.game.screens.MainGameScreen.render(F)V (122 bytes) @ 0x000001fa610fe77c [0x000001fa610fe100+0x000000000000067c] +J 1670 c1 com.badlogic.gdx.backends.lwjgl3.Lwjgl3Window.update()Z (217 bytes) @ 0x000001fa60eca8fc [0x000001fa60ec9b80+0x0000000000000d7c] +j com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.loop()V+111 +j com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.(Lcom/badlogic/gdx/ApplicationListener;Lcom/badlogic/gdx/backends/lwjgl3/Lwjgl3ApplicationConfiguration;)V+269 +j com.csse3200.game.desktop.DesktopLauncher.main([Ljava/lang/String;)V+19 +v ~StubRoutines::call_stub + +siginfo: EXCEPTION_ACCESS_VIOLATION (0xc0000005), reading address 0x0000000000000000 + + +Register to memory mapping: + +RIP=0x00000000503eb9e2 gdx-box2d64.dll +RAX=0x000001fa09c03d00 points into unknown readable memory: 0x000001fa09c03d20 | 20 3d c0 09 fa 01 00 00 +RBX=0x000001fa09c10a90 points into unknown readable memory: 0x000001fa09c10af0 | f0 0a c1 09 fa 01 00 00 +RCX=0x0 is NULL +RDX=0x000001fa08dd2b80 points into unknown readable memory: 0x000001fa09c19350 | 50 93 c1 09 fa 01 00 00 +RSP=0x000000b0f49fe750 is pointing into the stack for thread: 0x000001fa5933e0c0 +RBP=0x000001fa08e44b40 points into unknown readable memory: 0x000000000000019d | 9d 01 00 00 00 00 00 00 +RSI=0x000000b0f49fe7a4 is pointing into the stack for thread: 0x000001fa5933e0c0 +RDI=0x000000b0f49fe7d8 is pointing into the stack for thread: 0x000001fa5933e0c0 +R8 =0x0 is NULL +R9 =0x0000000000000002 is an unknown value +R10=0x000001fa59336e80 points into unknown readable memory: 0x0000004000000001 | 01 00 00 00 40 00 00 00 +R11=0x000000b0f49fe690 is pointing into the stack for thread: 0x000001fa5933e0c0 +R12=0x000000b0f49fed00 is pointing into the stack for thread: 0x000001fa5933e0c0 +R13=0x000000b0f49fe7d0 is pointing into the stack for thread: 0x000001fa5933e0c0 +R14=0x000000b0f49fecf0 is pointing into the stack for thread: 0x000001fa5933e0c0 +R15=0x000000b0f49fe7b0 is pointing into the stack for thread: 0x000001fa5933e0c0 + + +Registers: +RAX=0x000001fa09c03d00, RBX=0x000001fa09c10a90, RCX=0x0000000000000000, RDX=0x000001fa08dd2b80 +RSP=0x000000b0f49fe750, RBP=0x000001fa08e44b40, RSI=0x000000b0f49fe7a4, RDI=0x000000b0f49fe7d8 +R8 =0x0000000000000000, R9 =0x0000000000000002, R10=0x000001fa59336e80, R11=0x000000b0f49fe690 +R12=0x000000b0f49fed00, R13=0x000000b0f49fe7d0, R14=0x000000b0f49fecf0, R15=0x000000b0f49fe7b0 +RIP=0x00000000503eb9e2, EFLAGS=0x0000000000010283 + +Top of Stack: (sp=0x000000b0f49fe750) +0x000000b0f49fe750: 8000000000000000 0000000000003fff +0x000000b0f49fe760: 3ff000003f800000 0000000000000000 +0x000000b0f49fe770: 000000003e9f8409 0000000000000000 +0x000000b0f49fe780: 800000003f800000 3f8000003f800000 +0x000000b0f49fe790: 000000b0f49fe8d8 4197b286503e3ced +0x000000b0f49fe7a0: bf80000040d00000 3e9f840900000000 +0x000000b0f49fe7b0: 40d0000040d00000 40d00000423a0000 +0x000000b0f49fe7c0: 000000003f800000 00000000503bae81 +0x000000b0f49fe7d0: 000000b0f49fe7d8 000001bf000000cf +0x000000b0f49fe7e0: 0000004800000030 000000670000005e +0x000000b0f49fe7f0: 0000010e00000066 00000166000001fa +0x000000b0f49fe800: 3ba3d70af49fea30 0000000000000000 +0x000000b0f49fe810: 0000000000000000 0000000040000000 +0x000000b0f49fe820: 000000004007b17e 4133430d00000000 +0x000000b0f49fe830: 0000000000000000 4133065f4007b17e +0x000000b0f49fe840: 4000000000000000 800000003f800000 + +Instructions: (pc=0x00000000503eb9e2) +0x00000000503eb8e2: 0f 28 bc 24 a0 04 00 00 44 0f 28 84 24 b0 04 00 +0x00000000503eb8f2: 00 44 0f 28 8c 24 c0 04 00 00 44 0f 28 94 24 d0 +0x00000000503eb902: 04 00 00 44 0f 28 9c 24 e0 04 00 00 44 0f 28 a4 +0x00000000503eb912: 24 f0 04 00 00 44 0f 28 ac 24 00 05 00 00 44 0f +0x00000000503eb922: 28 b4 24 10 05 00 00 44 0f 28 bc 24 20 05 00 00 +0x00000000503eb932: 48 81 c4 38 05 00 00 5b 5e 5f 5d 41 5c 41 5d 41 +0x00000000503eb942: 5e 41 5f c3 66 2e 0f 1f 84 00 00 00 00 00 45 0f +0x00000000503eb952: 28 d3 f3 44 0f 11 64 24 30 e9 3a fd ff ff 48 8d +0x00000000503eb962: 15 71 5f 00 00 48 8d 0d d9 60 00 00 41 b8 d1 00 +0x00000000503eb972: 00 00 e8 17 82 ff ff e9 da fc ff ff 66 90 49 8b +0x00000000503eb982: 04 24 f3 0f 10 5c 24 3c 85 d2 f3 0f 11 5c 24 70 +0x00000000503eb992: 49 8b 36 48 89 44 24 60 49 8b 44 24 08 48 89 44 +0x00000000503eb9a2: 24 68 78 05 3b 56 14 7c 19 48 8d 15 26 5f 00 00 +0x00000000503eb9b2: 48 8d 0d 47 5f 00 00 41 b8 9e 00 00 00 e8 cc 81 +0x00000000503eb9c2: ff ff 48 8b 46 08 48 8d 74 24 54 48 8b 44 18 10 +0x00000000503eb9d2: 48 8b 58 10 44 8b 40 18 48 8b 4b 18 48 8b 53 10 +0x00000000503eb9e2: 48 8b 01 4c 8d 4a 0c 44 89 44 24 20 48 89 f2 4d +0x00000000503eb9f2: 89 f8 ff 50 28 84 c0 f3 0f 10 44 24 70 0f 85 37 +0x00000000503eba02: 01 00 00 0f 2e c6 7a 06 0f 84 a1 01 00 00 0f 2e +0x00000000503eba12: c6 76 4f 45 0f 28 cb 45 0f 28 c4 41 0f 28 df f3 +0x00000000503eba22: 44 0f 59 c8 45 0f 28 ef f3 44 0f 59 c0 41 0f 28 +0x00000000503eba32: fe f3 45 0f 58 cf f3 45 0f 58 c6 f3 41 0f 5f d9 +0x00000000503eba42: 45 0f 2e f0 f3 45 0f 5d e9 f3 41 0f 5d f8 44 0f +0x00000000503eba52: 28 cb 0f 86 4c 01 00 00 45 0f 28 c6 f3 0f 11 44 +0x00000000503eba62: 24 3c 8b 84 24 88 04 00 00 48 8b bc 24 80 00 00 +0x00000000503eba72: 00 85 c0 0f 8f e6 fc ff ff e9 48 fe ff ff 8d 14 +0x00000000503eba82: 00 8d 0c c5 00 00 00 00 89 94 24 8c 04 00 00 e8 +0x00000000503eba92: da 07 fd ff 4c 63 84 24 88 04 00 00 48 89 fa 48 +0x00000000503ebaa2: 89 c1 48 89 84 24 80 00 00 00 49 c1 e0 02 e8 03 +0x00000000503ebab2: d4 ff ff 49 8d 45 08 48 39 c7 74 08 48 89 f9 e8 +0x00000000503ebac2: ba 07 fd ff 48 8b bc 24 80 00 00 00 8b 84 24 88 +0x00000000503ebad2: 04 00 00 e9 c8 fd ff ff 8d 14 00 8d 0c c5 00 00 + + +Stack slot to memory mapping: +stack at sp + 0 slots: 0x8000000000000000 is an unknown value +stack at sp + 1 slots: 0x0000000000003fff is an unknown value +stack at sp + 2 slots: 0x3ff000003f800000 is an unknown value +stack at sp + 3 slots: 0x0 is NULL +stack at sp + 4 slots: 0x000000003e9f8409 is an unknown value +stack at sp + 5 slots: 0x0 is NULL +stack at sp + 6 slots: 0x800000003f800000 is an unknown value +stack at sp + 7 slots: 0x3f8000003f800000 is an unknown value + + +--------------- P R O C E S S --------------- + +Threads class SMR info: +_java_thread_list=0x000001fa175de010, length=166, elements={ +0x000001fa5933e0c0, 0x000001fa7bac1f60, 0x000001fa7bac31e0, 0x000001fa7d00f830, +0x000001fa7d0101e0, 0x000001fa7d0115b0, 0x000001fa7d031f70, 0x000001fa7d033060, +0x000001fa7d033a50, 0x000001fa7d037370, 0x000001fa7d18a1a0, 0x000001fa7d19be70, +0x000001fa055f4680, 0x000001fa0565d790, 0x000001fa002f2a50, 0x000001fa16e92180, +0x000001fa16590260, 0x000001fa5932a2f0, 0x000001fa59326e00, 0x000001fa59328610, +0x000001fa59328ae0, 0x000001fa593272d0, 0x000001fa593277a0, 0x000001fa59329950, +0x000001fa059bcab0, 0x000001fa059bddf0, 0x000001fa059bcf80, 0x000001fa059bd920, +0x000001fa059bc5e0, 0x000001fa059bfad0, 0x000001fa059bd450, 0x000001fa059bb770, +0x000001fa059c0940, 0x000001fa059bbc40, 0x000001fa059badd0, 0x000001fa059be2c0, +0x000001fa059ba430, 0x000001fa059bffa0, 0x000001fa059bc110, 0x000001fa059be790, +0x000001fa059bec60, 0x000001fa059bf130, 0x000001fa059bf600, 0x000001fa059ba900, +0x000001fa059c0e10, 0x000001fa059b9a90, 0x000001fa059b9f60, 0x000001fa059bb2a0, +0x000001fa004d35b0, 0x000001fa004d4dc0, 0x000001fa004d4420, 0x000001fa004d8c50, +0x000001fa004d9ac0, 0x000001fa004d82b0, 0x000001fa004d2c10, 0x000001fa004d5760, +0x000001fa004d6100, 0x000001fa004d8780, 0x000001fa004d48f0, 0x000001fa004d6aa0, +0x000001fa004d5c30, 0x000001fa004d9120, 0x000001fa004d6f70, 0x000001fa004d9f90, +0x000001fa004d95f0, 0x000001fa004d2740, 0x000001fa004d3a80, 0x000001fa004d3f50, +0x000001fa004d30e0, 0x000001fa004d5290, 0x000001fa004d65d0, 0x000001fa004d7440, +0x000001fa004d7910, 0x000001fa004d7de0, 0x000001fa1709eee0, 0x000001fa170a40b0, +0x000001fa170a4a50, 0x000001fa1709f3b0, 0x000001fa170a06f0, 0x000001fa170a1f00, +0x000001fa1709ea10, 0x000001fa170a4580, 0x000001fa170a0220, 0x000001fa1709fd50, +0x000001fa170a23d0, 0x000001fa1709e540, 0x000001fa170a3710, 0x000001fa170a3be0, +0x000001fa170a0bc0, 0x000001fa170a1090, 0x000001fa170a4f20, 0x000001fa170a1560, +0x000001fa1709f880, 0x000001fa170a1a30, 0x000001fa170a28a0, 0x000001fa170a53f0, +0x000001fa170a2d70, 0x000001fa170a3240, 0x000001fa170a58c0, 0x000001fa1709e070, +0x000001fa059c0470, 0x000001fa059b95c0, 0x000001fa15d34140, 0x000001fa15d2fde0, +0x000001fa15d34ae0, 0x000001fa15d34fb0, 0x000001fa15d35480, 0x000001fa15d315f0, +0x000001fa15d30780, 0x000001fa15d337a0, 0x000001fa15d302b0, 0x000001fa15d33c70, +0x000001fa15d2f910, 0x000001fa15d30c50, 0x000001fa15d2ef70, 0x000001fa15d31120, +0x000001fa15d31ac0, 0x000001fa15d31f90, 0x000001fa15d34610, 0x000001fa15d2e100, +0x000001fa15d2e5d0, 0x000001fa15d35950, 0x000001fa15d32460, 0x000001fa15d2eaa0, +0x000001fa15d32930, 0x000001fa15d2f440, 0x000001fa15d32e00, 0x000001fa15d332d0, +0x000001fa15a46870, 0x000001fa15a493c0, 0x000001fa15a49d60, 0x000001fa15a44b90, +0x000001fa15a45ed0, 0x000001fa15a4a230, 0x000001fa15a4a700, 0x000001fa15a446c0, +0x000001fa15a48080, 0x000001fa15a476e0, 0x000001fa15a4abd0, 0x000001fa15a43380, +0x000001fa15a43850, 0x000001fa15a48ef0, 0x000001fa15a43d20, 0x000001fa15a45060, +0x000001fa15a48550, 0x000001fa15a441f0, 0x000001fa15a45530, 0x000001fa15a463a0, +0x000001fa15a47bb0, 0x000001fa15a45a00, 0x000001fa15a48a20, 0x000001fa15a47210, +0x000001fa15f15f50, 0x000001fa15f19910, 0x000001fa15f1a2b0, 0x000001fa15f16420, +0x000001fa15f1a780, 0x000001fa15f168f0, 0x000001fa15f14740, 0x000001fa15f18f70, +0x000001fa15f17c30, 0x000001fa15f18aa0, 0x000001fa15f19440, 0x000001fa15f14c10, +0x000001fa15f13da0, 0x000001fa15f138d0 +} + +Java Threads: ( => current thread ) +=>0x000001fa5933e0c0 JavaThread "main" [_thread_in_native, id=3688, stack(0x000000b0f4900000,0x000000b0f4a00000)] + 0x000001fa7bac1f60 JavaThread "Reference Handler" daemon [_thread_blocked, id=15184, stack(0x000000b0f5000000,0x000000b0f5100000)] + 0x000001fa7bac31e0 JavaThread "Finalizer" daemon [_thread_blocked, id=20644, stack(0x000000b0f5100000,0x000000b0f5200000)] + 0x000001fa7d00f830 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=11696, stack(0x000000b0f5200000,0x000000b0f5300000)] + 0x000001fa7d0101e0 JavaThread "Attach Listener" daemon [_thread_blocked, id=11260, stack(0x000000b0f5300000,0x000000b0f5400000)] + 0x000001fa7d0115b0 JavaThread "Service Thread" daemon [_thread_blocked, id=15640, stack(0x000000b0f5400000,0x000000b0f5500000)] + 0x000001fa7d031f70 JavaThread "Monitor Deflation Thread" daemon [_thread_blocked, id=24704, stack(0x000000b0f5500000,0x000000b0f5600000)] + 0x000001fa7d033060 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=4132, stack(0x000000b0f5600000,0x000000b0f5700000)] + 0x000001fa7d033a50 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=10780, stack(0x000000b0f5700000,0x000000b0f5800000)] + 0x000001fa7d037370 JavaThread "Sweeper thread" daemon [_thread_blocked, id=7764, stack(0x000000b0f5800000,0x000000b0f5900000)] + 0x000001fa7d18a1a0 JavaThread "Notification Thread" daemon [_thread_blocked, id=21708, stack(0x000000b0f5a00000,0x000000b0f5b00000)] + 0x000001fa7d19be70 JavaThread "Common-Cleaner" daemon [_thread_blocked, id=7376, stack(0x000000b0f5c00000,0x000000b0f5d00000)] + 0x000001fa055f4680 JavaThread "AssetManager" daemon [_thread_blocked, id=26968, stack(0x000000b0f7400000,0x000000b0f7500000)] + 0x000001fa0565d790 JavaThread "LWJGL3 Timer" daemon [_thread_blocked, id=26112, stack(0x000000b0f7500000,0x000000b0f7600000)] + 0x000001fa002f2a50 JavaThread "AssetManager" daemon [_thread_blocked, id=24884, stack(0x000000b0f5900000,0x000000b0f5a00000)] + 0x000001fa16e92180 JavaThread "Timer-0" [_thread_blocked, id=21012, stack(0x000000b0f8a00000,0x000000b0f8b00000)] + 0x000001fa16590260 JavaThread "Timer" daemon [_thread_blocked, id=22260, stack(0x000000b0f7f00000,0x000000b0f8000000)] + 0x000001fa5932a2f0 JavaThread "Timer-1" [_thread_blocked, id=24168, stack(0x000000b0f8200000,0x000000b0f8300000)] + 0x000001fa59326e00 JavaThread "Timer-2" [_thread_blocked, id=24988, stack(0x000000b0f8100000,0x000000b0f8200000)] + 0x000001fa59328610 JavaThread "Timer-3" [_thread_blocked, id=11640, stack(0x000000b0f8000000,0x000000b0f8100000)] + 0x000001fa59328ae0 JavaThread "Timer-4" [_thread_blocked, id=16444, stack(0x000000b0f8400000,0x000000b0f8500000)] + 0x000001fa593272d0 JavaThread "Timer-5" [_thread_blocked, id=17448, stack(0x000000b0f8500000,0x000000b0f8600000)] + 0x000001fa593277a0 JavaThread "Timer-6" [_thread_blocked, id=12236, stack(0x000000b0f8600000,0x000000b0f8700000)] + 0x000001fa59329950 JavaThread "Timer-7" [_thread_blocked, id=23252, stack(0x000000b0f8700000,0x000000b0f8800000)] + 0x000001fa059bcab0 JavaThread "Timer-8" [_thread_blocked, id=524, stack(0x000000b0f8800000,0x000000b0f8900000)] + 0x000001fa059bddf0 JavaThread "Timer-9" [_thread_blocked, id=15224, stack(0x000000b0f8900000,0x000000b0f8a00000)] + 0x000001fa059bcf80 JavaThread "Timer-10" [_thread_blocked, id=14020, stack(0x000000b0f8b00000,0x000000b0f8c00000)] + 0x000001fa059bd920 JavaThread "Timer-11" [_thread_blocked, id=22292, stack(0x000000b0f8c00000,0x000000b0f8d00000)] + 0x000001fa059bc5e0 JavaThread "Timer-12" [_thread_blocked, id=4336, stack(0x000000b0f8d00000,0x000000b0f8e00000)] + 0x000001fa059bfad0 JavaThread "Timer-13" [_thread_blocked, id=26744, stack(0x000000b0f8e00000,0x000000b0f8f00000)] + 0x000001fa059bd450 JavaThread "Timer-14" [_thread_blocked, id=23528, stack(0x000000b0f8f00000,0x000000b0f9000000)] + 0x000001fa059bb770 JavaThread "Timer-15" [_thread_blocked, id=19952, stack(0x000000b0f9000000,0x000000b0f9100000)] + 0x000001fa059c0940 JavaThread "Timer-16" [_thread_blocked, id=18136, stack(0x000000b0f9100000,0x000000b0f9200000)] + 0x000001fa059bbc40 JavaThread "Timer-17" [_thread_blocked, id=27572, stack(0x000000b0f9200000,0x000000b0f9300000)] + 0x000001fa059badd0 JavaThread "Timer-18" [_thread_blocked, id=12864, stack(0x000000b0f9300000,0x000000b0f9400000)] + 0x000001fa059be2c0 JavaThread "Timer-19" [_thread_blocked, id=15712, stack(0x000000b0f9400000,0x000000b0f9500000)] + 0x000001fa059ba430 JavaThread "Timer-20" [_thread_blocked, id=11020, stack(0x000000b0f9500000,0x000000b0f9600000)] + 0x000001fa059bffa0 JavaThread "Timer-21" [_thread_blocked, id=26704, stack(0x000000b0f9600000,0x000000b0f9700000)] + 0x000001fa059bc110 JavaThread "Timer-22" [_thread_blocked, id=26600, stack(0x000000b0f9700000,0x000000b0f9800000)] + 0x000001fa059be790 JavaThread "Timer-23" [_thread_blocked, id=16848, stack(0x000000b0f9800000,0x000000b0f9900000)] + 0x000001fa059bec60 JavaThread "Timer-24" [_thread_blocked, id=21060, stack(0x000000b0f9900000,0x000000b0f9a00000)] + 0x000001fa059bf130 JavaThread "Timer-25" [_thread_blocked, id=2584, stack(0x000000b0f9a00000,0x000000b0f9b00000)] + 0x000001fa059bf600 JavaThread "Timer-26" [_thread_blocked, id=308, stack(0x000000b0f9b00000,0x000000b0f9c00000)] + 0x000001fa059ba900 JavaThread "Timer-28" [_thread_blocked, id=2372, stack(0x000000b0f9d00000,0x000000b0f9e00000)] + 0x000001fa059c0e10 JavaThread "Timer-29" [_thread_blocked, id=10696, stack(0x000000b0f9e00000,0x000000b0f9f00000)] + 0x000001fa059b9a90 JavaThread "Timer-31" [_thread_blocked, id=2712, stack(0x000000b0fa000000,0x000000b0fa100000)] + 0x000001fa059b9f60 JavaThread "Timer-32" [_thread_blocked, id=12820, stack(0x000000b0fa100000,0x000000b0fa200000)] + 0x000001fa059bb2a0 JavaThread "Timer-33" [_thread_blocked, id=13012, stack(0x000000b0fa200000,0x000000b0fa300000)] + 0x000001fa004d35b0 JavaThread "Timer-34" [_thread_blocked, id=21740, stack(0x000000b0fa300000,0x000000b0fa400000)] + 0x000001fa004d4dc0 JavaThread "Timer-35" [_thread_blocked, id=17444, stack(0x000000b0fa400000,0x000000b0fa500000)] + 0x000001fa004d4420 JavaThread "Timer-36" [_thread_blocked, id=26088, stack(0x000000b0fa500000,0x000000b0fa600000)] + 0x000001fa004d8c50 JavaThread "Timer-37" [_thread_blocked, id=23612, stack(0x000000b0fa600000,0x000000b0fa700000)] + 0x000001fa004d9ac0 JavaThread "Timer-38" [_thread_blocked, id=11852, stack(0x000000b0fa700000,0x000000b0fa800000)] + 0x000001fa004d82b0 JavaThread "Timer-39" [_thread_blocked, id=8908, stack(0x000000b0fa800000,0x000000b0fa900000)] + 0x000001fa004d2c10 JavaThread "Timer-40" [_thread_blocked, id=25452, stack(0x000000b0fa900000,0x000000b0faa00000)] + 0x000001fa004d5760 JavaThread "Timer-41" [_thread_blocked, id=22112, stack(0x000000b0faa00000,0x000000b0fab00000)] + 0x000001fa004d6100 JavaThread "Timer-42" [_thread_blocked, id=10644, stack(0x000000b0fab00000,0x000000b0fac00000)] + 0x000001fa004d8780 JavaThread "Timer-43" [_thread_blocked, id=25384, stack(0x000000b0fac00000,0x000000b0fad00000)] + 0x000001fa004d48f0 JavaThread "Timer-44" [_thread_blocked, id=27316, stack(0x000000b0fad00000,0x000000b0fae00000)] + 0x000001fa004d6aa0 JavaThread "Timer-45" [_thread_blocked, id=3696, stack(0x000000b0fae00000,0x000000b0faf00000)] + 0x000001fa004d5c30 JavaThread "Timer-46" [_thread_blocked, id=13580, stack(0x000000b0faf00000,0x000000b0fb000000)] + 0x000001fa004d9120 JavaThread "Timer-47" [_thread_blocked, id=21460, stack(0x000000b0fb000000,0x000000b0fb100000)] + 0x000001fa004d6f70 JavaThread "Timer-48" [_thread_blocked, id=14164, stack(0x000000b0fb100000,0x000000b0fb200000)] + 0x000001fa004d9f90 JavaThread "Timer-49" [_thread_blocked, id=11232, stack(0x000000b0fb200000,0x000000b0fb300000)] + 0x000001fa004d95f0 JavaThread "Timer-50" [_thread_blocked, id=14464, stack(0x000000b0fb300000,0x000000b0fb400000)] + 0x000001fa004d2740 JavaThread "Timer-51" [_thread_blocked, id=7404, stack(0x000000b0fb400000,0x000000b0fb500000)] + 0x000001fa004d3a80 JavaThread "Timer-52" [_thread_blocked, id=22276, stack(0x000000b0fb500000,0x000000b0fb600000)] + 0x000001fa004d3f50 JavaThread "Timer-53" [_thread_blocked, id=12004, stack(0x000000b0fb600000,0x000000b0fb700000)] + 0x000001fa004d30e0 JavaThread "Timer-54" [_thread_blocked, id=13812, stack(0x000000b0fb700000,0x000000b0fb800000)] + 0x000001fa004d5290 JavaThread "Timer-55" [_thread_blocked, id=18728, stack(0x000000b0fb800000,0x000000b0fb900000)] + 0x000001fa004d65d0 JavaThread "Timer-56" [_thread_blocked, id=12816, stack(0x000000b0fb900000,0x000000b0fba00000)] + 0x000001fa004d7440 JavaThread "Timer-57" [_thread_blocked, id=26108, stack(0x000000b0fba00000,0x000000b0fbb00000)] + 0x000001fa004d7910 JavaThread "Timer-58" [_thread_blocked, id=12460, stack(0x000000b0fbb00000,0x000000b0fbc00000)] + 0x000001fa004d7de0 JavaThread "Timer-59" [_thread_blocked, id=17596, stack(0x000000b0fbc00000,0x000000b0fbd00000)] + 0x000001fa1709eee0 JavaThread "Timer-60" [_thread_blocked, id=10580, stack(0x000000b0fbd00000,0x000000b0fbe00000)] + 0x000001fa170a40b0 JavaThread "Timer-61" [_thread_blocked, id=18796, stack(0x000000b0fbe00000,0x000000b0fbf00000)] + 0x000001fa170a4a50 JavaThread "Timer-62" [_thread_blocked, id=11516, stack(0x000000b0fbf00000,0x000000b0fc000000)] + 0x000001fa1709f3b0 JavaThread "Timer-63" [_thread_blocked, id=25768, stack(0x000000b0fc000000,0x000000b0fc100000)] + 0x000001fa170a06f0 JavaThread "Timer-64" [_thread_blocked, id=26380, stack(0x000000b0fc100000,0x000000b0fc200000)] + 0x000001fa170a1f00 JavaThread "Timer-65" [_thread_blocked, id=13224, stack(0x000000b0fc200000,0x000000b0fc300000)] + 0x000001fa1709ea10 JavaThread "Timer-66" [_thread_blocked, id=22028, stack(0x000000b0fc300000,0x000000b0fc400000)] + 0x000001fa170a4580 JavaThread "Timer-67" [_thread_blocked, id=26344, stack(0x000000b0fc400000,0x000000b0fc500000)] + 0x000001fa170a0220 JavaThread "Timer-68" [_thread_blocked, id=18396, stack(0x000000b0fc500000,0x000000b0fc600000)] + 0x000001fa1709fd50 JavaThread "Timer-69" [_thread_blocked, id=13084, stack(0x000000b0fc600000,0x000000b0fc700000)] + 0x000001fa170a23d0 JavaThread "Timer-70" [_thread_blocked, id=24112, stack(0x000000b0fc700000,0x000000b0fc800000)] + 0x000001fa1709e540 JavaThread "Timer-71" [_thread_blocked, id=20832, stack(0x000000b0fc800000,0x000000b0fc900000)] + 0x000001fa170a3710 JavaThread "Timer-72" [_thread_blocked, id=16876, stack(0x000000b0fc900000,0x000000b0fca00000)] + 0x000001fa170a3be0 JavaThread "Timer-73" [_thread_blocked, id=16588, stack(0x000000b0fca00000,0x000000b0fcb00000)] + 0x000001fa170a0bc0 JavaThread "Timer-74" [_thread_blocked, id=11772, stack(0x000000b0fcb00000,0x000000b0fcc00000)] + 0x000001fa170a1090 JavaThread "Timer-75" [_thread_blocked, id=5124, stack(0x000000b0fcc00000,0x000000b0fcd00000)] + 0x000001fa170a4f20 JavaThread "Timer-76" [_thread_blocked, id=13412, stack(0x000000b0fcd00000,0x000000b0fce00000)] + 0x000001fa170a1560 JavaThread "Timer-77" [_thread_blocked, id=17264, stack(0x000000b0fce00000,0x000000b0fcf00000)] + 0x000001fa1709f880 JavaThread "Timer-78" [_thread_blocked, id=10588, stack(0x000000b0fcf00000,0x000000b0fd000000)] + 0x000001fa170a1a30 JavaThread "Timer-79" [_thread_blocked, id=16852, stack(0x000000b0fd000000,0x000000b0fd100000)] + 0x000001fa170a28a0 JavaThread "Timer-80" [_thread_blocked, id=12908, stack(0x000000b0fd100000,0x000000b0fd200000)] + 0x000001fa170a53f0 JavaThread "Timer-81" [_thread_blocked, id=22196, stack(0x000000b0f9c00000,0x000000b0f9d00000)] + 0x000001fa170a2d70 JavaThread "Timer-82" [_thread_blocked, id=8204, stack(0x000000b0fd200000,0x000000b0fd300000)] + 0x000001fa170a3240 JavaThread "Timer-83" [_thread_blocked, id=18540, stack(0x000000b0fd300000,0x000000b0fd400000)] + 0x000001fa170a58c0 JavaThread "Timer-84" [_thread_blocked, id=12340, stack(0x000000b0f9f00000,0x000000b0fa000000)] + 0x000001fa1709e070 JavaThread "Timer-85" [_thread_blocked, id=19728, stack(0x000000b0fd400000,0x000000b0fd500000)] + 0x000001fa059c0470 JavaThread "Timer-86" [_thread_blocked, id=17380, stack(0x000000b0fd500000,0x000000b0fd600000)] + 0x000001fa059b95c0 JavaThread "Timer-87" [_thread_blocked, id=26824, stack(0x000000b0fd600000,0x000000b0fd700000)] + 0x000001fa15d34140 JavaThread "Timer-88" [_thread_blocked, id=19556, stack(0x000000b0fd700000,0x000000b0fd800000)] + 0x000001fa15d2fde0 JavaThread "Timer-89" [_thread_blocked, id=21588, stack(0x000000b0fd800000,0x000000b0fd900000)] + 0x000001fa15d34ae0 JavaThread "Timer-90" [_thread_blocked, id=11664, stack(0x000000b0fd900000,0x000000b0fda00000)] + 0x000001fa15d34fb0 JavaThread "Timer-91" [_thread_blocked, id=7724, stack(0x000000b0fda00000,0x000000b0fdb00000)] + 0x000001fa15d35480 JavaThread "Timer-92" [_thread_blocked, id=22384, stack(0x000000b0fdb00000,0x000000b0fdc00000)] + 0x000001fa15d315f0 JavaThread "Timer-93" [_thread_blocked, id=7200, stack(0x000000b0fdc00000,0x000000b0fdd00000)] + 0x000001fa15d30780 JavaThread "Timer-94" [_thread_blocked, id=26668, stack(0x000000b0fdd00000,0x000000b0fde00000)] + 0x000001fa15d337a0 JavaThread "Timer-95" [_thread_blocked, id=8772, stack(0x000000b0fde00000,0x000000b0fdf00000)] + 0x000001fa15d302b0 JavaThread "Timer-96" [_thread_blocked, id=25696, stack(0x000000b0fdf00000,0x000000b0fe000000)] + 0x000001fa15d33c70 JavaThread "Timer-97" [_thread_blocked, id=24024, stack(0x000000b0fe000000,0x000000b0fe100000)] + 0x000001fa15d2f910 JavaThread "Timer-98" [_thread_blocked, id=5360, stack(0x000000b0fe100000,0x000000b0fe200000)] + 0x000001fa15d30c50 JavaThread "Timer-99" [_thread_blocked, id=3052, stack(0x000000b0fe200000,0x000000b0fe300000)] + 0x000001fa15d2ef70 JavaThread "Timer-100" [_thread_blocked, id=14744, stack(0x000000b0fe300000,0x000000b0fe400000)] + 0x000001fa15d31120 JavaThread "Timer-101" [_thread_blocked, id=12884, stack(0x000000b0fe400000,0x000000b0fe500000)] + 0x000001fa15d31ac0 JavaThread "Timer-102" [_thread_blocked, id=10372, stack(0x000000b0fe500000,0x000000b0fe600000)] + 0x000001fa15d31f90 JavaThread "Timer-103" [_thread_blocked, id=16604, stack(0x000000b0fe600000,0x000000b0fe700000)] + 0x000001fa15d34610 JavaThread "Timer-104" [_thread_blocked, id=24400, stack(0x000000b0fe700000,0x000000b0fe800000)] + 0x000001fa15d2e100 JavaThread "Timer-105" [_thread_blocked, id=15872, stack(0x000000b0fe800000,0x000000b0fe900000)] + 0x000001fa15d2e5d0 JavaThread "Timer-106" [_thread_blocked, id=21704, stack(0x000000b0fe900000,0x000000b0fea00000)] + 0x000001fa15d35950 JavaThread "Timer-107" [_thread_blocked, id=3248, stack(0x000000b0fea00000,0x000000b0feb00000)] + 0x000001fa15d32460 JavaThread "Timer-108" [_thread_blocked, id=9464, stack(0x000000b0feb00000,0x000000b0fec00000)] + 0x000001fa15d2eaa0 JavaThread "Timer-109" [_thread_blocked, id=8216, stack(0x000000b0fec00000,0x000000b0fed00000)] + 0x000001fa15d32930 JavaThread "Timer-110" [_thread_blocked, id=24744, stack(0x000000b0fed00000,0x000000b0fee00000)] + 0x000001fa15d2f440 JavaThread "Timer-111" [_thread_blocked, id=7792, stack(0x000000b0fee00000,0x000000b0fef00000)] + 0x000001fa15d32e00 JavaThread "Timer-112" [_thread_blocked, id=15980, stack(0x000000b0fef00000,0x000000b0ff000000)] + 0x000001fa15d332d0 JavaThread "Timer-113" [_thread_blocked, id=8260, stack(0x000000b0ff000000,0x000000b0ff100000)] + 0x000001fa15a46870 JavaThread "Timer-114" [_thread_blocked, id=17560, stack(0x000000b0ff100000,0x000000b0ff200000)] + 0x000001fa15a493c0 JavaThread "Timer-115" [_thread_blocked, id=4848, stack(0x000000b0ff200000,0x000000b0ff300000)] + 0x000001fa15a49d60 JavaThread "Timer-116" [_thread_blocked, id=15192, stack(0x000000b0ff300000,0x000000b0ff400000)] + 0x000001fa15a44b90 JavaThread "Timer-117" [_thread_blocked, id=23872, stack(0x000000b0ff400000,0x000000b0ff500000)] + 0x000001fa15a45ed0 JavaThread "Timer-118" [_thread_blocked, id=2868, stack(0x000000b0ff500000,0x000000b0ff600000)] + 0x000001fa15a4a230 JavaThread "Timer-119" [_thread_blocked, id=2636, stack(0x000000b0ff600000,0x000000b0ff700000)] + 0x000001fa15a4a700 JavaThread "Timer-120" [_thread_blocked, id=13024, stack(0x000000b0ff700000,0x000000b0ff800000)] + 0x000001fa15a446c0 JavaThread "Timer-121" [_thread_blocked, id=7600, stack(0x000000b0ff800000,0x000000b0ff900000)] + 0x000001fa15a48080 JavaThread "Timer-122" [_thread_blocked, id=13888, stack(0x000000b0ff900000,0x000000b0ffa00000)] + 0x000001fa15a476e0 JavaThread "Timer-123" [_thread_blocked, id=11792, stack(0x000000b0ffa00000,0x000000b0ffb00000)] + 0x000001fa15a4abd0 JavaThread "Timer-124" [_thread_blocked, id=16212, stack(0x000000b0ffb00000,0x000000b0ffc00000)] + 0x000001fa15a43380 JavaThread "Timer-125" [_thread_blocked, id=14664, stack(0x000000b0ffc00000,0x000000b0ffd00000)] + 0x000001fa15a43850 JavaThread "Timer-126" [_thread_blocked, id=17156, stack(0x000000b0ffd00000,0x000000b0ffe00000)] + 0x000001fa15a48ef0 JavaThread "Timer-127" [_thread_blocked, id=20700, stack(0x000000b0ffe00000,0x000000b0fff00000)] + 0x000001fa15a43d20 JavaThread "AssetManager" daemon [_thread_blocked, id=3556, stack(0x000000b0fff00000,0x000000b100000000)] + 0x000001fa15a45060 JavaThread "Timer-128" [_thread_blocked, id=27196, stack(0x000000b080400000,0x000000b080500000)] + 0x000001fa15a48550 JavaThread "Timer-129" [_thread_blocked, id=26284, stack(0x000000b080000000,0x000000b080100000)] + 0x000001fa15a441f0 JavaThread "Timer-130" [_thread_blocked, id=20984, stack(0x000000b080100000,0x000000b080200000)] + 0x000001fa15a45530 JavaThread "Timer-131" [_thread_blocked, id=24712, stack(0x000000b080200000,0x000000b080300000)] + 0x000001fa15a463a0 JavaThread "Timer-132" [_thread_blocked, id=22412, stack(0x000000b080300000,0x000000b080400000)] + 0x000001fa15a47bb0 JavaThread "Timer-133" [_thread_blocked, id=26004, stack(0x000000b080500000,0x000000b080600000)] + 0x000001fa15a45a00 JavaThread "Timer-134" [_thread_blocked, id=11024, stack(0x000000b080600000,0x000000b080700000)] + 0x000001fa15a48a20 JavaThread "Timer-135" [_thread_blocked, id=15324, stack(0x000000b080700000,0x000000b080800000)] + 0x000001fa15a47210 JavaThread "Timer-136" [_thread_blocked, id=15424, stack(0x000000b080800000,0x000000b080900000)] + 0x000001fa15f15f50 JavaThread "Timer-137" [_thread_blocked, id=5652, stack(0x000000b080900000,0x000000b080a00000)] + 0x000001fa15f19910 JavaThread "Timer-138" [_thread_blocked, id=13640, stack(0x000000b080a00000,0x000000b080b00000)] + 0x000001fa15f1a2b0 JavaThread "Timer-139" [_thread_blocked, id=13088, stack(0x000000b080b00000,0x000000b080c00000)] + 0x000001fa15f16420 JavaThread "Timer-140" [_thread_blocked, id=20688, stack(0x000000b080c00000,0x000000b080d00000)] + 0x000001fa15f1a780 JavaThread "Timer-141" [_thread_blocked, id=25728, stack(0x000000b080d00000,0x000000b080e00000)] + 0x000001fa15f168f0 JavaThread "Timer-142" [_thread_blocked, id=15260, stack(0x000000b080e00000,0x000000b080f00000)] + 0x000001fa15f14740 JavaThread "Timer-143" [_thread_blocked, id=25380, stack(0x000000b080f00000,0x000000b081000000)] + 0x000001fa15f18f70 JavaThread "Timer-144" [_thread_blocked, id=15680, stack(0x000000b081000000,0x000000b081100000)] + 0x000001fa15f17c30 JavaThread "Timer-145" [_thread_blocked, id=14576, stack(0x000000b081100000,0x000000b081200000)] + 0x000001fa15f18aa0 JavaThread "Timer-146" [_thread_blocked, id=968, stack(0x000000b081200000,0x000000b081300000)] + 0x000001fa15f19440 JavaThread "Timer-147" [_thread_blocked, id=13112, stack(0x000000b081300000,0x000000b081400000)] + 0x000001fa15f14c10 JavaThread "Timer-148" [_thread_blocked, id=4648, stack(0x000000b081400000,0x000000b081500000)] + 0x000001fa15f13da0 JavaThread "Timer-149" [_thread_blocked, id=27120, stack(0x000000b081500000,0x000000b081600000)] + 0x000001fa15f138d0 JavaThread "Timer-150" [_thread_blocked, id=19352, stack(0x000000b081600000,0x000000b081700000)] + +Other Threads: + 0x000001fa7babe470 VMThread "VM Thread" [stack: 0x000000b0f4f00000,0x000000b0f5000000] [id=25480] + 0x000001fa7d18ede0 WatcherThread [stack: 0x000000b0f5b00000,0x000000b0f5c00000] [id=18900] + 0x000001fa593afc70 GCTaskThread "GC Thread#0" [stack: 0x000000b0f4a00000,0x000000b0f4b00000] [id=4584] + 0x000001fa054c24f0 GCTaskThread "GC Thread#1" [stack: 0x000000b0f7600000,0x000000b0f7700000] [id=23996] + 0x000001fa054bff50 GCTaskThread "GC Thread#2" [stack: 0x000000b0f7700000,0x000000b0f7800000] [id=7420] + 0x000001fa054c0200 GCTaskThread "GC Thread#3" [stack: 0x000000b0f7800000,0x000000b0f7900000] [id=26200] + 0x000001fa054c1220 GCTaskThread "GC Thread#4" [stack: 0x000000b0f7900000,0x000000b0f7a00000] [id=24936] + 0x000001fa054c1a30 GCTaskThread "GC Thread#5" [stack: 0x000000b0f7a00000,0x000000b0f7b00000] [id=13304] + 0x000001fa054c14d0 GCTaskThread "GC Thread#6" [stack: 0x000000b0f7b00000,0x000000b0f7c00000] [id=18656] + 0x000001fa054c04b0 GCTaskThread "GC Thread#7" [stack: 0x000000b0f7c00000,0x000000b0f7d00000] [id=14184] + 0x000001fa054c2240 GCTaskThread "GC Thread#8" [stack: 0x000000b0f7d00000,0x000000b0f7e00000] [id=20044] + 0x000001fa059672e0 GCTaskThread "GC Thread#9" [stack: 0x000000b0f8300000,0x000000b0f8400000] [id=10684] + 0x000001fa593c3150 ConcurrentGCThread "G1 Main Marker" [stack: 0x000000b0f4b00000,0x000000b0f4c00000] [id=25248] + 0x000001fa593c3a60 ConcurrentGCThread "G1 Conc#0" [stack: 0x000000b0f4c00000,0x000000b0f4d00000] [id=3768] + 0x000001fa7b979ca0 ConcurrentGCThread "G1 Refine#0" [stack: 0x000000b0f4d00000,0x000000b0f4e00000] [id=9852] + 0x000001fa7b97a5c0 ConcurrentGCThread "G1 Service" [stack: 0x000000b0f4e00000,0x000000b0f4f00000] [id=6308] + +Threads with active compile tasks: + +VM state: not at safepoint (normal execution) + +VM Mutex/Monitor currently owned by a thread: None + +Heap address: 0x0000000709800000, size: 3944 MB, Compressed Oops mode: Zero based, Oop shift amount: 3 + +CDS archive(s) mapped at: [0x0000000800000000-0x0000000800bd0000-0x0000000800bd0000), size 12386304, SharedBaseAddress: 0x0000000800000000, ArchiveRelocationMode: 0. +Compressed class space mapped at: 0x0000000800c00000-0x0000000840c00000, reserved size: 1073741824 +Narrow klass base: 0x0000000800000000, Narrow klass shift: 0, Narrow klass range: 0x100000000 + +GC Precious Log: + CPUs: 16 total, 16 available + Memory: 15769M + Large Page Support: Disabled + NUMA Support: Disabled + Compressed Oops: Enabled (Zero based) + Heap Region Size: 2M + Heap Min Capacity: 8M + Heap Initial Capacity: 248M + Heap Max Capacity: 3944M + Pre-touch: Disabled + Parallel Workers: 13 + Concurrent Workers: 3 + Concurrent Refinement Workers: 13 + Periodic GC: Disabled + +Heap: + garbage-first heap total 253952K, used 151095K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 73 young (149504K), 2 survivors (4096K) + Metaspace used 11198K, committed 11456K, reserved 1064960K + class space used 976K, committed 1088K, reserved 1048576K + +Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, OA=open archive, CA=closed archive, TAMS=top-at-mark-start (previous, next) +| 0|0x0000000709800000, 0x0000000709a00000, 0x0000000709a00000|100%| O| |TAMS 0x0000000709800000, 0x0000000709800000| Untracked +| 1|0x0000000709a00000, 0x0000000709b0c200, 0x0000000709c00000| 52%| O| |TAMS 0x0000000709a00000, 0x0000000709a00000| Untracked +| 2|0x0000000709c00000, 0x0000000709e00000, 0x0000000709e00000|100%|HS| |TAMS 0x0000000709c00000, 0x0000000709c00000| Complete +| 3|0x0000000709e00000, 0x000000070a000000, 0x000000070a000000|100%|HS| |TAMS 0x0000000709e00000, 0x0000000709e00000| Complete +| 4|0x000000070a000000, 0x000000070a000000, 0x000000070a200000| 0%| F| |TAMS 0x000000070a000000, 0x000000070a000000| Untracked +| 5|0x000000070a200000, 0x000000070a200000, 0x000000070a400000| 0%| F| |TAMS 0x000000070a200000, 0x000000070a200000| Untracked +| 6|0x000000070a400000, 0x000000070a400000, 0x000000070a600000| 0%| F| |TAMS 0x000000070a400000, 0x000000070a400000| Untracked +| 7|0x000000070a600000, 0x000000070a600000, 0x000000070a800000| 0%| F| |TAMS 0x000000070a600000, 0x000000070a600000| Untracked +| 8|0x000000070a800000, 0x000000070a800000, 0x000000070aa00000| 0%| F| |TAMS 0x000000070a800000, 0x000000070a800000| Untracked +| 9|0x000000070aa00000, 0x000000070aa00000, 0x000000070ac00000| 0%| F| |TAMS 0x000000070aa00000, 0x000000070aa00000| Untracked +| 10|0x000000070ac00000, 0x000000070ac00000, 0x000000070ae00000| 0%| F| |TAMS 0x000000070ac00000, 0x000000070ac00000| Untracked +| 11|0x000000070ae00000, 0x000000070ae00000, 0x000000070b000000| 0%| F| |TAMS 0x000000070ae00000, 0x000000070ae00000| Untracked +| 12|0x000000070b000000, 0x000000070b000000, 0x000000070b200000| 0%| F| |TAMS 0x000000070b000000, 0x000000070b000000| Untracked +| 13|0x000000070b200000, 0x000000070b200000, 0x000000070b400000| 0%| F| |TAMS 0x000000070b200000, 0x000000070b200000| Untracked +| 14|0x000000070b400000, 0x000000070b400000, 0x000000070b600000| 0%| F| |TAMS 0x000000070b400000, 0x000000070b400000| Untracked +| 15|0x000000070b600000, 0x000000070b600000, 0x000000070b800000| 0%| F| |TAMS 0x000000070b600000, 0x000000070b600000| Untracked +| 16|0x000000070b800000, 0x000000070b800000, 0x000000070ba00000| 0%| F| |TAMS 0x000000070b800000, 0x000000070b800000| Untracked +| 17|0x000000070ba00000, 0x000000070ba00000, 0x000000070bc00000| 0%| F| |TAMS 0x000000070ba00000, 0x000000070ba00000| Untracked +| 18|0x000000070bc00000, 0x000000070bc00000, 0x000000070be00000| 0%| F| |TAMS 0x000000070bc00000, 0x000000070bc00000| Untracked +| 19|0x000000070be00000, 0x000000070be00000, 0x000000070c000000| 0%| F| |TAMS 0x000000070be00000, 0x000000070be00000| Untracked +| 20|0x000000070c000000, 0x000000070c000000, 0x000000070c200000| 0%| F| |TAMS 0x000000070c000000, 0x000000070c000000| Untracked +| 21|0x000000070c200000, 0x000000070c200000, 0x000000070c400000| 0%| F| |TAMS 0x000000070c200000, 0x000000070c200000| Untracked +| 22|0x000000070c400000, 0x000000070c400000, 0x000000070c600000| 0%| F| |TAMS 0x000000070c400000, 0x000000070c400000| Untracked +| 23|0x000000070c600000, 0x000000070c600000, 0x000000070c800000| 0%| F| |TAMS 0x000000070c600000, 0x000000070c600000| Untracked +| 24|0x000000070c800000, 0x000000070c800000, 0x000000070ca00000| 0%| F| |TAMS 0x000000070c800000, 0x000000070c800000| Untracked +| 25|0x000000070ca00000, 0x000000070ca00000, 0x000000070cc00000| 0%| F| |TAMS 0x000000070ca00000, 0x000000070ca00000| Untracked +| 26|0x000000070cc00000, 0x000000070cc00000, 0x000000070ce00000| 0%| F| |TAMS 0x000000070cc00000, 0x000000070cc00000| Untracked +| 27|0x000000070ce00000, 0x000000070ce00000, 0x000000070d000000| 0%| F| |TAMS 0x000000070ce00000, 0x000000070ce00000| Untracked +| 28|0x000000070d000000, 0x000000070d000000, 0x000000070d200000| 0%| F| |TAMS 0x000000070d000000, 0x000000070d000000| Untracked +| 29|0x000000070d200000, 0x000000070d200000, 0x000000070d400000| 0%| F| |TAMS 0x000000070d200000, 0x000000070d200000| Untracked +| 30|0x000000070d400000, 0x000000070d400000, 0x000000070d600000| 0%| F| |TAMS 0x000000070d400000, 0x000000070d400000| Untracked +| 31|0x000000070d600000, 0x000000070d600000, 0x000000070d800000| 0%| F| |TAMS 0x000000070d600000, 0x000000070d600000| Untracked +| 32|0x000000070d800000, 0x000000070d800000, 0x000000070da00000| 0%| F| |TAMS 0x000000070d800000, 0x000000070d800000| Untracked +| 33|0x000000070da00000, 0x000000070da00000, 0x000000070dc00000| 0%| F| |TAMS 0x000000070da00000, 0x000000070da00000| Untracked +| 34|0x000000070dc00000, 0x000000070dc00000, 0x000000070de00000| 0%| F| |TAMS 0x000000070dc00000, 0x000000070dc00000| Untracked +| 35|0x000000070de00000, 0x000000070de00000, 0x000000070e000000| 0%| F| |TAMS 0x000000070de00000, 0x000000070de00000| Untracked +| 36|0x000000070e000000, 0x000000070e000000, 0x000000070e200000| 0%| F| |TAMS 0x000000070e000000, 0x000000070e000000| Untracked +| 37|0x000000070e200000, 0x000000070e200000, 0x000000070e400000| 0%| F| |TAMS 0x000000070e200000, 0x000000070e200000| Untracked +| 38|0x000000070e400000, 0x000000070e400000, 0x000000070e600000| 0%| F| |TAMS 0x000000070e400000, 0x000000070e400000| Untracked +| 39|0x000000070e600000, 0x000000070e600000, 0x000000070e800000| 0%| F| |TAMS 0x000000070e600000, 0x000000070e600000| Untracked +| 40|0x000000070e800000, 0x000000070e800000, 0x000000070ea00000| 0%| F| |TAMS 0x000000070e800000, 0x000000070e800000| Untracked +| 41|0x000000070ea00000, 0x000000070ea00000, 0x000000070ec00000| 0%| F| |TAMS 0x000000070ea00000, 0x000000070ea00000| Untracked +| 42|0x000000070ec00000, 0x000000070ec00000, 0x000000070ee00000| 0%| F| |TAMS 0x000000070ec00000, 0x000000070ec00000| Untracked +| 43|0x000000070ee00000, 0x000000070ee00000, 0x000000070f000000| 0%| F| |TAMS 0x000000070ee00000, 0x000000070ee00000| Untracked +| 44|0x000000070f000000, 0x000000070f000000, 0x000000070f200000| 0%| F| |TAMS 0x000000070f000000, 0x000000070f000000| Untracked +| 45|0x000000070f200000, 0x000000070f200000, 0x000000070f400000| 0%| F| |TAMS 0x000000070f200000, 0x000000070f200000| Untracked +| 46|0x000000070f400000, 0x000000070f400000, 0x000000070f600000| 0%| F| |TAMS 0x000000070f400000, 0x000000070f400000| Untracked +| 47|0x000000070f600000, 0x000000070f600000, 0x000000070f800000| 0%| F| |TAMS 0x000000070f600000, 0x000000070f600000| Untracked +| 48|0x000000070f800000, 0x000000070f800000, 0x000000070fa00000| 0%| F| |TAMS 0x000000070f800000, 0x000000070f800000| Untracked +| 49|0x000000070fa00000, 0x000000070fa00000, 0x000000070fc00000| 0%| F| |TAMS 0x000000070fa00000, 0x000000070fa00000| Untracked +| 50|0x000000070fc00000, 0x000000070fc00000, 0x000000070fe00000| 0%| F| |TAMS 0x000000070fc00000, 0x000000070fc00000| Untracked +| 51|0x000000070fe00000, 0x000000070fff6448, 0x0000000710000000| 98%| E| |TAMS 0x000000070fe00000, 0x000000070fe00000| Complete +| 52|0x0000000710000000, 0x0000000710200000, 0x0000000710200000|100%| E|CS|TAMS 0x0000000710000000, 0x0000000710000000| Complete +| 53|0x0000000710200000, 0x0000000710400000, 0x0000000710400000|100%| E|CS|TAMS 0x0000000710200000, 0x0000000710200000| Complete +| 54|0x0000000710400000, 0x0000000710600000, 0x0000000710600000|100%| E|CS|TAMS 0x0000000710400000, 0x0000000710400000| Complete +| 55|0x0000000710600000, 0x0000000710800000, 0x0000000710800000|100%| E|CS|TAMS 0x0000000710600000, 0x0000000710600000| Complete +| 56|0x0000000710800000, 0x0000000710a00000, 0x0000000710a00000|100%| E|CS|TAMS 0x0000000710800000, 0x0000000710800000| Complete +| 57|0x0000000710a00000, 0x0000000710c00000, 0x0000000710c00000|100%| E|CS|TAMS 0x0000000710a00000, 0x0000000710a00000| Complete +| 58|0x0000000710c00000, 0x0000000710e00000, 0x0000000710e00000|100%| E|CS|TAMS 0x0000000710c00000, 0x0000000710c00000| Complete +| 59|0x0000000710e00000, 0x0000000711000000, 0x0000000711000000|100%| E|CS|TAMS 0x0000000710e00000, 0x0000000710e00000| Complete +| 60|0x0000000711000000, 0x0000000711200000, 0x0000000711200000|100%| E| |TAMS 0x0000000711000000, 0x0000000711000000| Complete +| 61|0x0000000711200000, 0x0000000711400000, 0x0000000711400000|100%| E|CS|TAMS 0x0000000711200000, 0x0000000711200000| Complete +| 62|0x0000000711400000, 0x0000000711600000, 0x0000000711600000|100%| E|CS|TAMS 0x0000000711400000, 0x0000000711400000| Complete +| 63|0x0000000711600000, 0x0000000711800000, 0x0000000711800000|100%| E|CS|TAMS 0x0000000711600000, 0x0000000711600000| Complete +| 64|0x0000000711800000, 0x0000000711a00000, 0x0000000711a00000|100%| E|CS|TAMS 0x0000000711800000, 0x0000000711800000| Complete +| 65|0x0000000711a00000, 0x0000000711c00000, 0x0000000711c00000|100%| E|CS|TAMS 0x0000000711a00000, 0x0000000711a00000| Complete +| 66|0x0000000711c00000, 0x0000000711e00000, 0x0000000711e00000|100%| E|CS|TAMS 0x0000000711c00000, 0x0000000711c00000| Complete +| 67|0x0000000711e00000, 0x0000000712000000, 0x0000000712000000|100%| E|CS|TAMS 0x0000000711e00000, 0x0000000711e00000| Complete +| 68|0x0000000712000000, 0x0000000712200000, 0x0000000712200000|100%| E|CS|TAMS 0x0000000712000000, 0x0000000712000000| Complete +| 69|0x0000000712200000, 0x0000000712400000, 0x0000000712400000|100%| E|CS|TAMS 0x0000000712200000, 0x0000000712200000| Complete +| 70|0x0000000712400000, 0x0000000712600000, 0x0000000712600000|100%| E|CS|TAMS 0x0000000712400000, 0x0000000712400000| Complete +| 71|0x0000000712600000, 0x0000000712800000, 0x0000000712800000|100%| E|CS|TAMS 0x0000000712600000, 0x0000000712600000| Complete +| 72|0x0000000712800000, 0x0000000712a00000, 0x0000000712a00000|100%| E|CS|TAMS 0x0000000712800000, 0x0000000712800000| Complete +| 73|0x0000000712a00000, 0x0000000712c00000, 0x0000000712c00000|100%| E|CS|TAMS 0x0000000712a00000, 0x0000000712a00000| Complete +| 74|0x0000000712c00000, 0x0000000712e00000, 0x0000000712e00000|100%| E|CS|TAMS 0x0000000712c00000, 0x0000000712c00000| Complete +| 75|0x0000000712e00000, 0x0000000713000000, 0x0000000713000000|100%| E|CS|TAMS 0x0000000712e00000, 0x0000000712e00000| Complete +| 76|0x0000000713000000, 0x0000000713200000, 0x0000000713200000|100%| E|CS|TAMS 0x0000000713000000, 0x0000000713000000| Complete +| 77|0x0000000713200000, 0x0000000713400000, 0x0000000713400000|100%| E|CS|TAMS 0x0000000713200000, 0x0000000713200000| Complete +| 78|0x0000000713400000, 0x0000000713600000, 0x0000000713600000|100%| E|CS|TAMS 0x0000000713400000, 0x0000000713400000| Complete +| 79|0x0000000713600000, 0x0000000713800000, 0x0000000713800000|100%| E|CS|TAMS 0x0000000713600000, 0x0000000713600000| Complete +| 80|0x0000000713800000, 0x0000000713a00000, 0x0000000713a00000|100%| E|CS|TAMS 0x0000000713800000, 0x0000000713800000| Complete +| 81|0x0000000713a00000, 0x0000000713c00000, 0x0000000713c00000|100%| E|CS|TAMS 0x0000000713a00000, 0x0000000713a00000| Complete +| 82|0x0000000713c00000, 0x0000000713e00000, 0x0000000713e00000|100%| E|CS|TAMS 0x0000000713c00000, 0x0000000713c00000| Complete +| 83|0x0000000713e00000, 0x0000000714000000, 0x0000000714000000|100%| E|CS|TAMS 0x0000000713e00000, 0x0000000713e00000| Complete +| 84|0x0000000714000000, 0x0000000714200000, 0x0000000714200000|100%| E|CS|TAMS 0x0000000714000000, 0x0000000714000000| Complete +| 85|0x0000000714200000, 0x0000000714400000, 0x0000000714400000|100%| E|CS|TAMS 0x0000000714200000, 0x0000000714200000| Complete +| 86|0x0000000714400000, 0x0000000714600000, 0x0000000714600000|100%| E|CS|TAMS 0x0000000714400000, 0x0000000714400000| Complete +| 87|0x0000000714600000, 0x0000000714800000, 0x0000000714800000|100%| E|CS|TAMS 0x0000000714600000, 0x0000000714600000| Complete +| 88|0x0000000714800000, 0x0000000714a00000, 0x0000000714a00000|100%| E|CS|TAMS 0x0000000714800000, 0x0000000714800000| Complete +| 89|0x0000000714a00000, 0x0000000714c00000, 0x0000000714c00000|100%| E|CS|TAMS 0x0000000714a00000, 0x0000000714a00000| Complete +| 90|0x0000000714c00000, 0x0000000714e00000, 0x0000000714e00000|100%| E|CS|TAMS 0x0000000714c00000, 0x0000000714c00000| Complete +| 91|0x0000000714e00000, 0x0000000715000000, 0x0000000715000000|100%| E|CS|TAMS 0x0000000714e00000, 0x0000000714e00000| Complete +| 92|0x0000000715000000, 0x0000000715200000, 0x0000000715200000|100%| E|CS|TAMS 0x0000000715000000, 0x0000000715000000| Complete +| 93|0x0000000715200000, 0x0000000715400000, 0x0000000715400000|100%| E|CS|TAMS 0x0000000715200000, 0x0000000715200000| Complete +| 94|0x0000000715400000, 0x0000000715600000, 0x0000000715600000|100%| E|CS|TAMS 0x0000000715400000, 0x0000000715400000| Complete +| 95|0x0000000715600000, 0x0000000715800000, 0x0000000715800000|100%| E|CS|TAMS 0x0000000715600000, 0x0000000715600000| Complete +| 96|0x0000000715800000, 0x0000000715a00000, 0x0000000715a00000|100%| E|CS|TAMS 0x0000000715800000, 0x0000000715800000| Complete +| 97|0x0000000715a00000, 0x0000000715c00000, 0x0000000715c00000|100%| E|CS|TAMS 0x0000000715a00000, 0x0000000715a00000| Complete +| 98|0x0000000715c00000, 0x0000000715e00000, 0x0000000715e00000|100%| E|CS|TAMS 0x0000000715c00000, 0x0000000715c00000| Complete +| 99|0x0000000715e00000, 0x0000000716000000, 0x0000000716000000|100%| E|CS|TAMS 0x0000000715e00000, 0x0000000715e00000| Complete +| 100|0x0000000716000000, 0x0000000716200000, 0x0000000716200000|100%| E|CS|TAMS 0x0000000716000000, 0x0000000716000000| Complete +| 101|0x0000000716200000, 0x0000000716400000, 0x0000000716400000|100%| E|CS|TAMS 0x0000000716200000, 0x0000000716200000| Complete +| 102|0x0000000716400000, 0x0000000716600000, 0x0000000716600000|100%| E|CS|TAMS 0x0000000716400000, 0x0000000716400000| Complete +| 103|0x0000000716600000, 0x0000000716800000, 0x0000000716800000|100%| E|CS|TAMS 0x0000000716600000, 0x0000000716600000| Complete +| 104|0x0000000716800000, 0x0000000716881c00, 0x0000000716a00000| 25%| S|CS|TAMS 0x0000000716800000, 0x0000000716800000| Complete +| 105|0x0000000716a00000, 0x0000000716c00000, 0x0000000716c00000|100%| S|CS|TAMS 0x0000000716a00000, 0x0000000716a00000| Complete +| 106|0x0000000716c00000, 0x0000000716e00000, 0x0000000716e00000|100%| E|CS|TAMS 0x0000000716c00000, 0x0000000716c00000| Complete +| 107|0x0000000716e00000, 0x0000000717000000, 0x0000000717000000|100%| E|CS|TAMS 0x0000000716e00000, 0x0000000716e00000| Complete +| 108|0x0000000717000000, 0x0000000717200000, 0x0000000717200000|100%| E|CS|TAMS 0x0000000717000000, 0x0000000717000000| Complete +| 109|0x0000000717200000, 0x0000000717400000, 0x0000000717400000|100%| E|CS|TAMS 0x0000000717200000, 0x0000000717200000| Complete +| 110|0x0000000717400000, 0x0000000717600000, 0x0000000717600000|100%| E|CS|TAMS 0x0000000717400000, 0x0000000717400000| Complete +| 111|0x0000000717600000, 0x0000000717800000, 0x0000000717800000|100%| E|CS|TAMS 0x0000000717600000, 0x0000000717600000| Complete +| 112|0x0000000717800000, 0x0000000717a00000, 0x0000000717a00000|100%| E|CS|TAMS 0x0000000717800000, 0x0000000717800000| Complete +| 113|0x0000000717a00000, 0x0000000717c00000, 0x0000000717c00000|100%| E|CS|TAMS 0x0000000717a00000, 0x0000000717a00000| Complete +| 114|0x0000000717c00000, 0x0000000717e00000, 0x0000000717e00000|100%| E|CS|TAMS 0x0000000717c00000, 0x0000000717c00000| Complete +| 115|0x0000000717e00000, 0x0000000718000000, 0x0000000718000000|100%| E|CS|TAMS 0x0000000717e00000, 0x0000000717e00000| Complete +| 116|0x0000000718000000, 0x0000000718200000, 0x0000000718200000|100%| E|CS|TAMS 0x0000000718000000, 0x0000000718000000| Complete +| 117|0x0000000718200000, 0x0000000718400000, 0x0000000718400000|100%| E|CS|TAMS 0x0000000718200000, 0x0000000718200000| Complete +| 118|0x0000000718400000, 0x0000000718600000, 0x0000000718600000|100%| E|CS|TAMS 0x0000000718400000, 0x0000000718400000| Complete +| 119|0x0000000718600000, 0x0000000718800000, 0x0000000718800000|100%| E|CS|TAMS 0x0000000718600000, 0x0000000718600000| Complete +| 120|0x0000000718800000, 0x0000000718a00000, 0x0000000718a00000|100%| E|CS|TAMS 0x0000000718800000, 0x0000000718800000| Complete +| 121|0x0000000718a00000, 0x0000000718c00000, 0x0000000718c00000|100%| E|CS|TAMS 0x0000000718a00000, 0x0000000718a00000| Complete +| 122|0x0000000718c00000, 0x0000000718e00000, 0x0000000718e00000|100%| E|CS|TAMS 0x0000000718c00000, 0x0000000718c00000| Complete +| 123|0x0000000718e00000, 0x0000000719000000, 0x0000000719000000|100%| E|CS|TAMS 0x0000000718e00000, 0x0000000718e00000| Complete + +Card table byte_map: [0x000001fa70bf0000,0x000001fa713b0000] _byte_map_base: 0x000001fa6d3a4000 + +Marking Bits (Prev, Next): (CMBitMap*) 0x000001fa593b2190, (CMBitMap*) 0x000001fa593b21d0 + Prev Bits: [0x000001fa71b70000, 0x000001fa75910000) + Next Bits: [0x000001fa75910000, 0x000001fa796b0000) + +Polling page: 0x000001fa570e0000 + +Metaspace: + +Usage: + Non-class: 9.98 MB used. + Class: 976.95 KB used. + Both: 10.94 MB used. + +Virtual space: + Non-class space: 16.00 MB reserved, 10.12 MB ( 63%) committed, 2 nodes. + Class space: 1.00 GB reserved, 1.06 MB ( <1%) committed, 1 nodes. + Both: 1.02 GB reserved, 11.19 MB ( 1%) committed. + +Chunk freelists: + Non-Class: 944.00 KB + Class: 3.00 MB + Both: 3.92 MB + +MaxMetaspaceSize: unlimited +CompressedClassSpaceSize: 1.00 GB +Initial GC threshold: 21.00 MB +Current GC threshold: 21.00 MB +CDS: on +MetaspaceReclaimPolicy: balanced + - commit_granule_bytes: 65536. + - commit_granule_words: 8192. + - virtual_space_node_default_size: 1048576. + - enlarge_chunks_in_place: 1. + - new_chunks_are_fully_committed: 0. + - uncommit_free_chunks: 1. + - use_allocation_guard: 0. + - handle_deallocations: 1. + + +Internal statistics: + +num_allocs_failed_limit: 0. +num_arena_births: 152. +num_arena_deaths: 0. +num_vsnodes_births: 3. +num_vsnodes_deaths: 0. +num_space_committed: 177. +num_space_uncommitted: 0. +num_chunks_returned_to_freelist: 0. +num_chunks_taken_from_freelist: 501. +num_chunk_merges: 0. +num_chunk_splits: 340. +num_chunks_enlarged: 258. +num_purges: 0. +num_inconsistent_stats: 0. + +CodeHeap 'non-profiled nmethods': size=119168Kb used=2516Kb max_used=2516Kb free=116651Kb + bounds [0x000001fa68750000, 0x000001fa689d0000, 0x000001fa6fbb0000] +CodeHeap 'profiled nmethods': size=119104Kb used=6715Kb max_used=6715Kb free=112388Kb + bounds [0x000001fa60bb0000, 0x000001fa61240000, 0x000001fa68000000] +CodeHeap 'non-nmethods': size=7488Kb used=1655Kb max_used=3380Kb free=5832Kb + bounds [0x000001fa68000000, 0x000001fa683c0000, 0x000001fa68750000] + total_blobs=4529 nmethods=3432 adapters=1009 + compilation: enabled + stopped_count=0, restarted_count=0 + full_count=0 + +Compilation events (20 events): +Event: 55.293 Thread 0x000001fa7d033060 3423 4 com.csse3200.game.components.tasks.DroidCombatTask::isTargetVisible (22 bytes) +Event: 55.296 Thread 0x000001fa7d033060 nmethod 3423 0x000001fa689c1290 code [0x000001fa689c1420, 0x000001fa689c1788] +Event: 55.609 Thread 0x000001fa7d033060 3424 4 com.badlogic.gdx.physics.box2d.World::contactFilter (144 bytes) +Event: 55.615 Thread 0x000001fa7d033060 nmethod 3424 0x000001fa689c1990 code [0x000001fa689c1b60, 0x000001fa689c21d8] +Event: 55.694 Thread 0x000001fa7d033060 3425 4 com.csse3200.game.components.tasks.DroidCombatTask::getPriority (16 bytes) +Event: 55.697 Thread 0x000001fa7d033060 nmethod 3425 0x000001fa689c2890 code [0x000001fa689c2a20, 0x000001fa689c2da8] +Event: 56.160 Thread 0x000001fa7d033060 3426 4 com.csse3200.game.components.DeleteOnMapEdgeComponent$$Lambda$120/0x0000000800cf9188::handle (16 bytes) +Event: 56.167 Thread 0x000001fa7d033060 nmethod 3426 0x000001fa689c3010 code [0x000001fa689c3240, 0x000001fa689c3a38] +Event: 56.459 Thread 0x000001fa7d033060 3427 ! 4 org.lwjgl.openal.AL10::alGetSourcei (52 bytes) +Event: 56.463 Thread 0x000001fa7d033060 nmethod 3427 0x000001fa689c4310 code [0x000001fa689c4500, 0x000001fa689c4860] +Event: 57.343 Thread 0x000001fa7d033a50 3428 3 java.nio.MappedByteBuffer::flip (5 bytes) +Event: 57.343 Thread 0x000001fa7d033a50 nmethod 3428 0x000001fa6123d390 code [0x000001fa6123d540, 0x000001fa6123d778] +Event: 57.577 Thread 0x000001fa7d033060 3429 4 java.util.ArrayList:: (12 bytes) +Event: 57.578 Thread 0x000001fa7d033060 nmethod 3429 0x000001fa689c4e10 code [0x000001fa689c4f80, 0x000001fa689c50b8] +Event: 58.594 Thread 0x000001fa7d033a50 3430 3 com.csse3200.game.components.tasks.MobRangedAttackTask::meleeOrProjectile (39 bytes) +Event: 58.595 Thread 0x000001fa7d033a50 nmethod 3430 0x000001fa6123d890 code [0x000001fa6123da80, 0x000001fa6123e038] +Event: 58.927 Thread 0x000001fa7d033a50 3431 3 com.csse3200.game.rendering.AnimationRenderComponent::addAnimation (10 bytes) +Event: 58.927 Thread 0x000001fa7d033a50 nmethod 3431 0x000001fa6123e290 code [0x000001fa6123e440, 0x000001fa6123e588] +Event: 59.193 Thread 0x000001fa7d033a50 3432 3 java.util.ArrayList::fastRemove (44 bytes) +Event: 59.193 Thread 0x000001fa7d033a50 nmethod 3432 0x000001fa6123e690 code [0x000001fa6123e840, 0x000001fa6123ec48] + +GC Heap History (4 events): +Event: 1.503 GC heap before +{Heap before GC invocations=0 (full 0): + garbage-first heap total 253952K, used 26624K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 11 young (22528K), 0 survivors (0K) + Metaspace used 6603K, committed 6784K, reserved 1064960K + class space used 505K, committed 576K, reserved 1048576K +} +Event: 1.506 GC heap after +{Heap after GC invocations=1 (full 0): + garbage-first heap total 253952K, used 3723K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 2 young (4096K), 2 survivors (4096K) + Metaspace used 6603K, committed 6784K, reserved 1064960K + class space used 505K, committed 576K, reserved 1048576K +} +Event: 11.058 GC heap before +{Heap before GC invocations=1 (full 0): + garbage-first heap total 253952K, used 34443K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 18 young (36864K), 2 survivors (4096K) + Metaspace used 9467K, committed 9664K, reserved 1064960K + class space used 777K, committed 896K, reserved 1048576K +} +Event: 11.062 GC heap after +{Heap after GC invocations=2 (full 0): + garbage-first heap total 253952K, used 5687K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 2 young (4096K), 2 survivors (4096K) + Metaspace used 9467K, committed 9664K, reserved 1064960K + class space used 777K, committed 896K, reserved 1048576K +} + +Deoptimization events (20 events): +Event: 47.560 Thread 0x000001fa5933e0c0 DEOPT PACKING pc=0x000001fa611f43c3 sp=0x000000b0f49fe740 +Event: 47.560 Thread 0x000001fa5933e0c0 DEOPT UNPACKING pc=0x000001fa68052b43 sp=0x000000b0f49fdc08 mode 0 +Event: 47.560 Thread 0x000001fa5933e0c0 DEOPT PACKING pc=0x000001fa6122ee34 sp=0x000000b0f49fe880 +Event: 47.560 Thread 0x000001fa5933e0c0 DEOPT UNPACKING pc=0x000001fa68052b43 sp=0x000000b0f49fdd28 mode 0 +Event: 47.567 Thread 0x000001fa5933e0c0 Uncommon trap: trap_request=0xffffffde fr.pc=0x000001fa68921b34 relative=0x00000000000028f4 +Event: 47.568 Thread 0x000001fa5933e0c0 Uncommon trap: reason=class_check action=maybe_recompile pc=0x000001fa68921b34 method=com.badlogic.gdx.utils.ComparableTimSort.countRunAndMakeAscending([Ljava/lang/Object;II)I @ 39 c2 +Event: 47.568 Thread 0x000001fa5933e0c0 DEOPT PACKING pc=0x000001fa68921b34 sp=0x000000b0f49fee10 +Event: 47.568 Thread 0x000001fa5933e0c0 DEOPT UNPACKING pc=0x000001fa680523a3 sp=0x000000b0f49fec10 mode 2 +Event: 47.792 Thread 0x000001fa5933e0c0 DEOPT PACKING pc=0x000001fa6122ee34 sp=0x000000b0f49fee20 +Event: 47.792 Thread 0x000001fa5933e0c0 DEOPT UNPACKING pc=0x000001fa68052b43 sp=0x000000b0f49fe2c8 mode 0 +Event: 48.025 Thread 0x000001fa5933e0c0 DEOPT PACKING pc=0x000001fa6122ee34 sp=0x000000b0f49fee20 +Event: 48.025 Thread 0x000001fa5933e0c0 DEOPT UNPACKING pc=0x000001fa68052b43 sp=0x000000b0f49fe2c8 mode 0 +Event: 48.275 Thread 0x000001fa5933e0c0 DEOPT PACKING pc=0x000001fa6122ee34 sp=0x000000b0f49fee20 +Event: 48.275 Thread 0x000001fa5933e0c0 DEOPT UNPACKING pc=0x000001fa68052b43 sp=0x000000b0f49fe2c8 mode 0 +Event: 48.509 Thread 0x000001fa5933e0c0 DEOPT PACKING pc=0x000001fa6122ee34 sp=0x000000b0f49fee20 +Event: 48.509 Thread 0x000001fa5933e0c0 DEOPT UNPACKING pc=0x000001fa68052b43 sp=0x000000b0f49fe2c8 mode 0 +Event: 52.909 Thread 0x000001fa5933e0c0 Uncommon trap: trap_request=0xffffffde fr.pc=0x000001fa689612fc relative=0x0000000000002dbc +Event: 52.909 Thread 0x000001fa5933e0c0 Uncommon trap: reason=class_check action=maybe_recompile pc=0x000001fa689612fc method=com.csse3200.game.components.tasks.MobWanderTask.update()V @ 70 c2 +Event: 52.909 Thread 0x000001fa5933e0c0 DEOPT PACKING pc=0x000001fa689612fc sp=0x000000b0f49fedd0 +Event: 52.909 Thread 0x000001fa5933e0c0 DEOPT UNPACKING pc=0x000001fa680523a3 sp=0x000000b0f49fedc0 mode 2 + +Classes unloaded (0 events): +No events + +Classes redefined (0 events): +No events + +Internal exceptions (20 events): +Event: 0.319 Thread 0x000001fa5933e0c0 Exception (0x0000000718534420) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 0.949 Thread 0x000001fa5933e0c0 Exception (0x0000000718584690) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 1.116 Thread 0x000001fa5933e0c0 Exception (0x00000007182c0e28) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 1.116 Thread 0x000001fa5933e0c0 Exception (0x00000007182c11d0) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 1.118 Thread 0x000001fa5933e0c0 Exception (0x00000007182cc798) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 1.118 Thread 0x000001fa5933e0c0 Exception (0x00000007182cca78) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 1.269 Thread 0x000001fa5933e0c0 Exception (0x00000007181f7b08) +thrown [s\open\src\hotspot\share\classfile\systemDictionary.cpp, line 256] +Event: 1.283 Thread 0x000001fa5933e0c0 Exception (0x0000000717e7ea28) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 1.303 Thread 0x000001fa5933e0c0 Exception (0x0000000717ecd578) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 1.304 Thread 0x000001fa5933e0c0 Exception (0x0000000717ed7998) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 4.383 Thread 0x000001fa5933e0c0 Implicit null exception at 0x000001fa687c5c16 to 0x000001fa687c5ea0 +Event: 10.431 Thread 0x000001fa5933e0c0 Exception (0x0000000718142528) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 11.350 Thread 0x000001fa5933e0c0 Exception (0x0000000717c92268) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 11.351 Thread 0x000001fa5933e0c0 Exception (0x0000000717ca0858) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 11.352 Thread 0x000001fa5933e0c0 Exception (0x0000000717ca9fd0) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 11.433 Thread 0x000001fa5933e0c0 Exception (0x0000000717dca240) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 11.450 Thread 0x000001fa5933e0c0 Exception (0x0000000717b4e5d8) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 11.452 Thread 0x000001fa5933e0c0 Exception (0x0000000717b577d8) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 11.460 Thread 0x000001fa5933e0c0 Implicit null exception at 0x000001fa687f076d to 0x000001fa687f1eb4 +Event: 47.367 Thread 0x000001fa15a43d20 Implicit null exception at 0x000001fa688b2906 to 0x000001fa688b2d14 + +VM Operations (20 events): +Event: 39.750 Executing VM operation: Cleanup +Event: 39.751 Executing VM operation: Cleanup done +Event: 40.751 Executing VM operation: Cleanup +Event: 40.752 Executing VM operation: Cleanup done +Event: 41.752 Executing VM operation: Cleanup +Event: 41.752 Executing VM operation: Cleanup done +Event: 45.754 Executing VM operation: Cleanup +Event: 45.754 Executing VM operation: Cleanup done +Event: 46.755 Executing VM operation: Cleanup +Event: 46.755 Executing VM operation: Cleanup done +Event: 47.756 Executing VM operation: Cleanup +Event: 47.756 Executing VM operation: Cleanup done +Event: 50.758 Executing VM operation: Cleanup +Event: 50.758 Executing VM operation: Cleanup done +Event: 51.759 Executing VM operation: Cleanup +Event: 51.759 Executing VM operation: Cleanup done +Event: 53.760 Executing VM operation: Cleanup +Event: 53.760 Executing VM operation: Cleanup done +Event: 55.761 Executing VM operation: Cleanup +Event: 55.761 Executing VM operation: Cleanup done + +Events (20 events): +Event: 56.509 Thread 0x000001fa15a45530 Thread added: 0x000001fa15a45530 +Event: 56.526 Thread 0x000001fa15a463a0 Thread added: 0x000001fa15a463a0 +Event: 57.094 Thread 0x000001fa15a47bb0 Thread added: 0x000001fa15a47bb0 +Event: 57.176 Thread 0x000001fa15a45a00 Thread added: 0x000001fa15a45a00 +Event: 57.192 Thread 0x000001fa15a48a20 Thread added: 0x000001fa15a48a20 +Event: 57.509 Thread 0x000001fa15a47210 Thread added: 0x000001fa15a47210 +Event: 57.842 Thread 0x000001fa15f15f50 Thread added: 0x000001fa15f15f50 +Event: 57.876 Thread 0x000001fa15f19910 Thread added: 0x000001fa15f19910 +Event: 57.892 Thread 0x000001fa15f1a2b0 Thread added: 0x000001fa15f1a2b0 +Event: 58.176 Thread 0x000001fa15f16420 Thread added: 0x000001fa15f16420 +Event: 58.342 Thread 0x000001fa15f1a780 Thread added: 0x000001fa15f1a780 +Event: 58.442 Thread 0x000001fa15f168f0 Thread added: 0x000001fa15f168f0 +Event: 58.509 Thread 0x000001fa15f14740 Thread added: 0x000001fa15f14740 +Event: 58.559 Thread 0x000001fa15f18f70 Thread added: 0x000001fa15f18f70 +Event: 58.792 Thread 0x000001fa15f17c30 Thread added: 0x000001fa15f17c30 +Event: 58.960 Thread 0x000001fa15f18aa0 Thread added: 0x000001fa15f18aa0 +Event: 58.960 Thread 0x000001fa15f19440 Thread added: 0x000001fa15f19440 +Event: 58.961 Thread 0x000001fa15f14c10 Thread added: 0x000001fa15f14c10 +Event: 58.976 Thread 0x000001fa15f13da0 Thread added: 0x000001fa15f13da0 +Event: 59.193 Thread 0x000001fa15f138d0 Thread added: 0x000001fa15f138d0 + + +Dynamic libraries: +0x00007ff726ee0000 - 0x00007ff726ef0000 C:\Program Files\Java\jdk-17\bin\java.exe +0x00007ffba77b0000 - 0x00007ffba79a8000 C:\Windows\SYSTEM32\ntdll.dll +0x00007ffba7300000 - 0x00007ffba73bd000 C:\Windows\System32\KERNEL32.DLL +0x00007ffba4f20000 - 0x00007ffba5216000 C:\Windows\System32\KERNELBASE.dll +0x00007ffba5220000 - 0x00007ffba5320000 C:\Windows\System32\ucrtbase.dll +0x00007ffb7e7c0000 - 0x00007ffb7e7d8000 C:\Program Files\Java\jdk-17\bin\jli.dll +0x00007ffb95200000 - 0x00007ffb9521b000 C:\Program Files\Java\jdk-17\bin\VCRUNTIME140.dll +0x00007ffba7250000 - 0x00007ffba72fe000 C:\Windows\System32\ADVAPI32.dll +0x00007ffba5810000 - 0x00007ffba58ae000 C:\Windows\System32\msvcrt.dll +0x00007ffba58b0000 - 0x00007ffba594c000 C:\Windows\System32\sechost.dll +0x00007ffba60e0000 - 0x00007ffba6206000 C:\Windows\System32\RPCRT4.dll +0x00007ffba73c0000 - 0x00007ffba755e000 C:\Windows\System32\USER32.dll +0x00007ffba53f0000 - 0x00007ffba5412000 C:\Windows\System32\win32u.dll +0x00007ffb9a290000 - 0x00007ffb9a52a000 C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_60b5254171f9507e\COMCTL32.dll +0x00007ffba6210000 - 0x00007ffba623c000 C:\Windows\System32\GDI32.dll +0x00007ffba5640000 - 0x00007ffba575a000 C:\Windows\System32\gdi32full.dll +0x00007ffba5350000 - 0x00007ffba53ed000 C:\Windows\System32\msvcp_win.dll +0x00007ffb98ea0000 - 0x00007ffb98eaa000 C:\Windows\SYSTEM32\VERSION.dll +0x00007ffba6250000 - 0x00007ffba6280000 C:\Windows\System32\IMM32.DLL +0x00007ffb94620000 - 0x00007ffb9462c000 C:\Program Files\Java\jdk-17\bin\vcruntime140_1.dll +0x00007ffb4cb50000 - 0x00007ffb4cbde000 C:\Program Files\Java\jdk-17\bin\msvcp140.dll +0x00007ffb07fb0000 - 0x00007ffb08b87000 C:\Program Files\Java\jdk-17\bin\server\jvm.dll +0x00007ffba6240000 - 0x00007ffba6248000 C:\Windows\System32\PSAPI.DLL +0x00007ffb98e70000 - 0x00007ffb98e97000 C:\Windows\SYSTEM32\WINMM.dll +0x00007ffb84120000 - 0x00007ffb84129000 C:\Windows\SYSTEM32\WSOCK32.dll +0x00007ffba71e0000 - 0x00007ffba724b000 C:\Windows\System32\WS2_32.dll +0x00007ffba36e0000 - 0x00007ffba36f2000 C:\Windows\SYSTEM32\kernel.appcore.dll +0x00007ffb94420000 - 0x00007ffb9442a000 C:\Program Files\Java\jdk-17\bin\jimage.dll +0x00007ffba2bb0000 - 0x00007ffba2d94000 C:\Windows\SYSTEM32\DBGHELP.DLL +0x00007ffb96480000 - 0x00007ffb964b4000 C:\Windows\SYSTEM32\dbgcore.DLL +0x00007ffba4e90000 - 0x00007ffba4f12000 C:\Windows\System32\bcryptPrimitives.dll +0x00007ffb7e790000 - 0x00007ffb7e7b5000 C:\Program Files\Java\jdk-17\bin\java.dll +0x00007ffb3a6a0000 - 0x00007ffb3a777000 C:\Program Files\Java\jdk-17\bin\jsvml.dll +0x00007ffba63f0000 - 0x00007ffba6b35000 C:\Windows\System32\SHELL32.dll +0x00007ffba2f00000 - 0x00007ffba369b000 C:\Windows\SYSTEM32\windows.storage.dll +0x00007ffba5c50000 - 0x00007ffba5fa4000 C:\Windows\System32\combase.dll +0x00007ffba4860000 - 0x00007ffba488e000 C:\Windows\SYSTEM32\Wldp.dll +0x00007ffba6b40000 - 0x00007ffba6bed000 C:\Windows\System32\SHCORE.dll +0x00007ffba5b20000 - 0x00007ffba5b75000 C:\Windows\System32\shlwapi.dll +0x00007ffba4dc0000 - 0x00007ffba4de5000 C:\Windows\SYSTEM32\profapi.dll +0x00007ffb7bf70000 - 0x00007ffb7bf89000 C:\Program Files\Java\jdk-17\bin\net.dll +0x00007ffb9f190000 - 0x00007ffb9f29a000 C:\Windows\SYSTEM32\WINHTTP.dll +0x0000000180000000 - 0x000000018008c000 C:\Windows\system32\ASProxy64.dll +0x00007ffba5fb0000 - 0x00007ffba60da000 C:\Windows\System32\ole32.dll +0x00007ffba5b80000 - 0x00007ffba5c4d000 C:\Windows\System32\OLEAUT32.dll +0x00007ffba42b0000 - 0x00007ffba42eb000 C:\Windows\SYSTEM32\IPHLPAPI.DLL +0x00007ffba45c0000 - 0x00007ffba462a000 C:\Windows\SYSTEM32\MSWSOCK.dll +0x00007ffba4d40000 - 0x00007ffba4d72000 C:\Windows\SYSTEM32\SspiCli.dll +0x00007ffb765b0000 - 0x00007ffb765c6000 C:\Program Files\Java\jdk-17\bin\nio.dll +0x00007ffb74f20000 - 0x00007ffb74f38000 C:\Program Files\Java\jdk-17\bin\zip.dll +0x00007ffb93330000 - 0x00007ffb93340000 C:\Program Files\Java\jdk-17\bin\verify.dll +0x0000000050410000 - 0x0000000050439000 C:\Users\isaac\AppData\Local\Temp\libgdxisaac\e787ab0a\gdx64.dll +0x00007ffba2120000 - 0x00007ffba21be000 C:\Windows\system32\uxtheme.dll +0x00007ffb6c5b0000 - 0x00007ffb6c625000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\lwjgl.dll +0x00007ffb2acc0000 - 0x00007ffb2af19000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\jemalloc.dll +0x00007ffb6cf20000 - 0x00007ffb6cf81000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\glfw.dll +0x00007ffb6d270000 - 0x00007ffb6d2b5000 C:\Windows\SYSTEM32\dinput8.dll +0x00007ffb95db0000 - 0x00007ffb95dc1000 C:\Windows\SYSTEM32\xinput1_4.dll +0x00007ffba5420000 - 0x00007ffba546e000 C:\Windows\System32\cfgmgr32.dll +0x00007ffba4c40000 - 0x00007ffba4c73000 C:\Windows\SYSTEM32\DEVOBJ.dll +0x00007ffba24b0000 - 0x00007ffba24df000 C:\Windows\SYSTEM32\dwmapi.dll +0x00007ffb7c850000 - 0x00007ffb7c9a2000 C:\Windows\SYSTEM32\inputhost.dll +0x00007ffba0590000 - 0x00007ffba06e5000 C:\Windows\SYSTEM32\wintypes.dll +0x00007ffba2da0000 - 0x00007ffba2e96000 C:\Windows\SYSTEM32\PROPSYS.dll +0x00007ffba1650000 - 0x00007ffba19ae000 C:\Windows\SYSTEM32\CoreUIComponents.dll +0x00007ffba1d30000 - 0x00007ffba1e22000 C:\Windows\SYSTEM32\CoreMessaging.dll +0x00007ffba3fe0000 - 0x00007ffba4013000 C:\Windows\SYSTEM32\ntmarta.dll +0x00007ffba7570000 - 0x00007ffba7684000 C:\Windows\System32\MSCTF.dll +0x00007ffb27c20000 - 0x00007ffb27db7000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\OpenAL.dll +0x00007ffba6bf0000 - 0x00007ffba6c99000 C:\Windows\System32\clbcatq.dll +0x00007ffb9d930000 - 0x00007ffb9d9b5000 C:\Windows\System32\MMDevApi.dll +0x00007ffb9d2a0000 - 0x00007ffb9d422000 C:\Windows\SYSTEM32\AUDIOSES.DLL +0x00007ffba4bd0000 - 0x00007ffba4c1b000 C:\Windows\SYSTEM32\powrprof.dll +0x00007ffba4bb0000 - 0x00007ffba4bc2000 C:\Windows\SYSTEM32\UMPDC.dll +0x00007ffba24e0000 - 0x00007ffba24f4000 C:\Windows\SYSTEM32\resourcepolicyclient.dll +0x00007ffb34dd0000 - 0x00007ffb34ef5000 C:\Windows\SYSTEM32\opengl32.dll +0x00007ffb793b0000 - 0x00007ffb793dc000 C:\Windows\SYSTEM32\GLU32.dll +0x00007ffb9c490000 - 0x00007ffb9c592000 C:\Windows\System32\AppXDeploymentClient.dll +0x00007ffb71a20000 - 0x00007ffb71a4a000 C:\Windows\System32\DriverStore\FileRepository\u0363312.inf_amd64_08fc5018b1b99545\B363211\atig6pxx.dll +0x00007ffb05200000 - 0x00007ffb07fa5000 C:\Windows\System32\DriverStore\FileRepository\u0363312.inf_amd64_08fc5018b1b99545\B363211\atio6axx.dll +0x00007ffba6d10000 - 0x00007ffba717e000 C:\Windows\System32\SETUPAPI.dll +0x00007ffba5320000 - 0x00007ffba5347000 C:\Windows\System32\bcrypt.dll +0x00007ffb94f20000 - 0x00007ffb94f44000 C:\Windows\SYSTEM32\dxva2.dll +0x00007ffb6d8c0000 - 0x00007ffb6d8fc000 C:\Windows\System32\DriverStore\FileRepository\u0363312.inf_amd64_08fc5018b1b99545\B363211\atig6txx.dll +0x00007ffb1fb10000 - 0x00007ffb1fccf000 C:\Windows\SYSTEM32\atiadlxx.dll +0x00007ffba55d0000 - 0x00007ffba5637000 C:\Windows\System32\WINTRUST.dll +0x00007ffba5470000 - 0x00007ffba55ce000 C:\Windows\System32\CRYPT32.dll +0x00007ffba49f0000 - 0x00007ffba4a02000 C:\Windows\SYSTEM32\MSASN1.dll +0x00007ffb9eba0000 - 0x00007ffb9ebdb000 C:\Windows\SYSTEM32\dxcore.dll +0x00007ffb6c2e0000 - 0x00007ffb6c33d000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\lwjgl_opengl.dll +0x00007ffb7c9b0000 - 0x00007ffb7caaa000 C:\Windows\SYSTEM32\textinputframework.dll +0x00007ffb7f310000 - 0x00007ffb7f376000 C:\Windows\system32\Oleacc.dll +0x00007ffb72850000 - 0x00007ffb72b45000 C:\Windows\System32\uiautomationcore.dll +0x00007ffba47d0000 - 0x00007ffba47dc000 C:\Windows\SYSTEM32\CRYPTBASE.DLL +0x00000000503b0000 - 0x000000005040a000 C:\Users\isaac\AppData\Local\Temp\libgdxisaac\888fe1bc\gdx-box2d64.dll + +dbghelp: loaded successfully - version: 4.0.5 - missing functions: none +symbol engine: initialized successfully - sym options: 0x614 - pdb path: .;C:\Program Files\Java\jdk-17\bin;C:\Windows\SYSTEM32;C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_60b5254171f9507e;C:\Program Files\Java\jdk-17\bin\server;C:\Users\isaac\AppData\Local\Temp\libgdxisaac\e787ab0a;C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7;C:\Windows\System32\DriverStore\FileRepository\u0363312.inf_amd64_08fc5018b1b99545\B363211;C:\Users\isaac\AppData\Local\Temp\libgdxisaac\888fe1bc + +VM Arguments: +jvm_args: -XX:+ShowCodeDetailsInExceptionMessages +java_command: com.csse3200.game.desktop.DesktopLauncher +java_class_path (initial): C:\Users\isaac\OneDrive\Documents\School\University of Queensland\UQ 2023\UQ 2023 Semester 2\CSSE3200\2023-studio-3\source\desktop\bin\main;\csse3200-game-core\bin\default;C:\Users\isaac\OneDrive\Documents\School\University of Queensland\UQ 2023\UQ 2023 Semester 2\CSSE3200\2023-studio-3\source\core\bin\main;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-backend-lwjgl3\1.11.0\58a96db4cd349be4292d547856aa1e1c5f065f4e\gdx-backend-lwjgl3-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-platform\1.11.0\697fb13eada6d3c6ca648c9788692b0159add126\gdx-platform-1.11.0-natives-desktop.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-box2d-platform\1.11.0\62ff9baa1e57a11e0a4428a38c9660bf9f312fdc\gdx-box2d-platform-1.11.0-natives-desktop.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-tools\1.11.0\a5d30eafd0f2fbab314efdf6d98ebc27388b7c0a\gdx-tools-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx-controllers\gdx-controllers-desktop\2.2.2\625b3bdbe803e9c4af181b4791202cfcf776d805\gdx-controllers-desktop-2.2.2.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-backend-lwjgl\1.11.0\33555a2cf8b4d9db4122b2fe42e7674b343d8b4\gdx-backend-lwjgl-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-freetype\1.11.0\a3634ad2e6c56d251268d6ab5c0f66eee2841f2c\gdx-freetype-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-backend-headless\1.11.0\3c3d0c951db72891d894df1725d09179fd0bca00\gdx-backend-headless-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\net.dermetfan.libgdx-utils\libgdx-utils-box2d\0.13.4\918d79a20ea3c898cdb3611782c5b2bfa6ec575b\libgdx-utils-box2d-0.13.4.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-box2d\1.11.0\ad4facee800dd945d6d6e93dea2936bc135b +Launcher Type: SUN_STANDARD + +[Global flags] + intx CICompilerCount = 12 {product} {ergonomic} + uint ConcGCThreads = 3 {product} {ergonomic} + uint G1ConcRefinementThreads = 13 {product} {ergonomic} + size_t G1HeapRegionSize = 2097152 {product} {ergonomic} + uintx GCDrainStackTargetSize = 64 {product} {ergonomic} + size_t InitialHeapSize = 260046848 {product} {ergonomic} + size_t MarkStackSize = 4194304 {product} {ergonomic} + size_t MaxHeapSize = 4135583744 {product} {ergonomic} + size_t MaxNewSize = 2480930816 {product} {ergonomic} + size_t MinHeapDeltaBytes = 2097152 {product} {ergonomic} + size_t MinHeapSize = 8388608 {product} {ergonomic} + uintx NonNMethodCodeHeapSize = 7602480 {pd product} {ergonomic} + uintx NonProfiledCodeHeapSize = 122027880 {pd product} {ergonomic} + uintx ProfiledCodeHeapSize = 122027880 {pd product} {ergonomic} + uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} + bool SegmentedCodeCache = true {product} {ergonomic} + bool ShowCodeDetailsInExceptionMessages = true {manageable} {command line} + size_t SoftMaxHeapSize = 4135583744 {manageable} {ergonomic} + bool UseCompressedClassPointers = true {product lp64_product} {ergonomic} + bool UseCompressedOops = true {product lp64_product} {ergonomic} + bool UseG1GC = true {product} {ergonomic} + bool UseLargePagesIndividualAllocation = false {pd product} {ergonomic} + +Logging: +Log output configuration: + #0: stdout all=warning uptime,level,tags + #1: stderr all=off uptime,level,tags + +Environment Variables: +PATH=C:\Users\isaac\bin;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\local\bin;C:\Program Files\Git\usr\bin;C:\Program Files\Git\usr\bin;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Users\isaac\bin;C:\Program Files\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn;C:\Program Files (x86)\Microsoft SQL Server\150\Tools\Binn;C:\Program Files\Microsoft SQL Server\150\Tools\Binn;C:\Program Files\Microsoft SQL Server\150\DTS\Binn;C:\Program Files (x86)\Microsoft SQL Server\150\DTS\Binn;C:\Program Files\Azure Data Studio\bin;C:\Program Files\Git\cmd;C:\Program Files\PuTTY;C:\Program Files (x86)\Pololu\USB AVR Programmer v2\bin;C:\Program Files\nodejs;C:\Users\isaac\AppData\Local\Programs\Python\Python310\Scripts;C:\Users\isaac\AppData\Local\Programs\Python\Python310;C:\Users\isaac\AppData\Local\Microsoft\WindowsApps;C:\Users\isaac\AppData\Local\Programs\Microsoft VS Code\bin;C:\Program Files\Azure Data Studio\bin;C:\Users\isaac\AppData\Roaming\npm;C:\Program Files\Git\usr\bin\vendor_perl;C:\Program Files\Git\usr\bin\core_perl +USERNAME=isaac +SHELL=C:\Program Files\Git\usr\bin\bash.exe +DISPLAY=needs-to-be-defined +LANG=en_US.UTF-8 +OS=Windows_NT +PROCESSOR_IDENTIFIER=AMD64 Family 23 Model 104 Stepping 1, AuthenticAMD + + + +--------------- S Y S T E M --------------- + +OS: + Windows 10 , 64 bit Build 19041 (10.0.19041.3393) +OS uptime: 5 days 7:58 hours + +CPU: total 16 (initial active 16) (16 cores per cpu, 2 threads per core) family 23 model 104 stepping 1 microcode 0x0, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4a, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, clmul, bmi1, bmi2, adx, sha, fma, vzeroupper, clflush, clflushopt + +Memory: 4k page, system-wide physical 15769M (6261M free) +TotalPageFile size 19865M (AvailPageFile size 4020M) +current process WorkingSet (physical memory assigned to process): 478M, peak: 515M +current process commit charge ("private bytes"): 769M, peak: 807M + +vm_info: Java HotSpot(TM) 64-Bit Server VM (17.0.6+9-LTS-190) for windows-amd64 JRE (17.0.6+9-LTS-190), built on Dec 6 2022 15:53:54 by "mach5one" with MS VC++ 17.1 (VS2022) + +END. diff --git a/hs_err_pid22716.log b/hs_err_pid22716.log new file mode 100644 index 000000000..46b1c9e02 --- /dev/null +++ b/hs_err_pid22716.log @@ -0,0 +1,765 @@ +# +# A fatal error has been detected by the Java Runtime Environment: +# +# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000000503cf46a, pid=22716, tid=11740 +# +# JRE version: Java(TM) SE Runtime Environment (17.0.6+9) (build 17.0.6+9-LTS-190) +# Java VM: Java HotSpot(TM) 64-Bit Server VM (17.0.6+9-LTS-190, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64) +# Problematic frame: +# C [gdx-box2d64.dll+0x1f46a] +# +# 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: +# https://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: -XX:+ShowCodeDetailsInExceptionMessages com.csse3200.game.desktop.DesktopLauncher + +Host: AMD Ryzen 7 5700U with Radeon Graphics , 16 cores, 15G, Windows 10 , 64 bit Build 19041 (10.0.19041.3393) +Time: Sat Sep 30 14:50:15 2023 E. Australia Standard Time elapsed time: 10.328440 seconds (0d 0h 0m 10s) + +--------------- T H R E A D --------------- + +Current thread (0x000001f90ec7c340): JavaThread "Timer-0" [_thread_in_native, id=11740, stack(0x00000062e3600000,0x00000062e3700000)] + +Stack: [0x00000062e3600000,0x00000062e3700000], sp=0x00000062e36feef8, free space=1019k +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) +C [gdx-box2d64.dll+0x1f46a] + +Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) +j com.badlogic.gdx.physics.box2d.Body.jniCreateFixture(JJFFFZSSS)J+0 +j com.badlogic.gdx.physics.box2d.Body.createFixture(Lcom/badlogic/gdx/physics/box2d/FixtureDef;)Lcom/badlogic/gdx/physics/box2d/Fixture;+49 +j com.csse3200.game.physics.components.ColliderComponent.create()V+54 +j com.csse3200.game.entities.Entity.create()V+55 +j com.csse3200.game.entities.EntityService.register(Lcom/csse3200/game/entities/Entity;)V+20 +j com.csse3200.game.areas.GameArea.spawnEntity(Lcom/csse3200/game/entities/Entity;)V+15 +j com.csse3200.game.areas.GameArea.spawnEntityAt(Lcom/csse3200/game/entities/Entity;Lcom/badlogic/gdx/math/GridPoint2;ZZ)V+80 +j com.csse3200.game.areas.ForestGameArea.spawnWaterQueen()V+70 +j com.csse3200.game.areas.ForestGameArea.spawnWave()V+57 +j com.csse3200.game.areas.ForestGameArea$1.run()V+4 +j java.util.TimerThread.mainLoop()V+221 java.base@17.0.6 +j java.util.TimerThread.run()V+1 java.base@17.0.6 +v ~StubRoutines::call_stub + +siginfo: EXCEPTION_ACCESS_VIOLATION (0xc0000005), writing address 0x000001f900000030 + + +Register to memory mapping: + +RIP=0x00000000503cf46a gdx-box2d64.dll +RAX=0xffff000100000000 is an unknown value +RBX=0x000001f907e2bda0 points into unknown readable memory: 0x0000003600000002 | 02 00 00 00 36 00 00 00 +RCX=0x000001f900000000 points into unknown readable memory: 0x0000001000001000 | 00 10 00 00 10 00 00 00 +RDX=0x0000000000000048 is an unknown value +RSP=0x00000062e36feef8 is pointing into the stack for thread: 0x000001f90ec7c340 +RBP=0x00000062e36fef70 is pointing into the stack for thread: 0x000001f90ec7c340 +RSI=0x000001f900000000 points into unknown readable memory: 0x0000001000001000 | 00 10 00 00 10 00 00 00 +RDI=0x000001f97d192550 points into unknown readable memory: 0x000001f97d1ab8e0 | e0 b8 1a 7d f9 01 00 00 +R8 =0x000001f907e2bda0 points into unknown readable memory: 0x0000003600000002 | 02 00 00 00 36 00 00 00 +R9 =0x000001f908be04a0 points into unknown readable memory: 0x00000000503f5600 | 00 56 3f 50 00 00 00 00 +R10=0x000001f967c9d5f2 is at code_begin+946 in an Interpreter codelet +method entry point (kind = native) [0x000001f967c9d240, 0x000001f967c9dbc0] 2432 bytes +R11=0x0000000000000102 is an unknown value +R12=0x0 is NULL +R13={method} {0x000001f9082293f8} 'jniCreateFixture' '(JJFFFZSSS)J' in 'com/badlogic/gdx/physics/box2d/Body' +R14=0x00000062e36ff0f8 is pointing into the stack for thread: 0x000001f90ec7c340 +R15=0x000001f90ec7c340 is a thread + + +Registers: +RAX=0xffff000100000000, RBX=0x000001f907e2bda0, RCX=0x000001f900000000, RDX=0x0000000000000048 +RSP=0x00000062e36feef8, RBP=0x00000062e36fef70, RSI=0x000001f900000000, RDI=0x000001f97d192550 +R8 =0x000001f907e2bda0, R9 =0x000001f908be04a0, R10=0x000001f967c9d5f2, R11=0x0000000000000102 +R12=0x0000000000000000, R13=0x000001f9082293f0, R14=0x00000062e36ff0f8, R15=0x000001f90ec7c340 +RIP=0x00000000503cf46a, EFLAGS=0x0000000000010206 + +Top of Stack: (sp=0x00000062e36feef8) +0x00000062e36feef8: 00000000503ce3ac 0000000000000000 +0x00000062e36fef08: af071404aba62d7d 0000000000000000 +0x00000062e36fef18: 00000062e36fef18 000001f97c96d518 +0x00000062e36fef28: 000001f9082293f0 0000000000000120 +0x00000062e36fef38: 000000000000118a 00000062e36ff080 +0x00000062e36fef48: 00000000503d464d 0000000000000000 +0x00000062e36fef58: 00000062e36fef70 00000062e36fefd0 +0x00000062e36fef68: 000001f967c99612 000001f908be04a0 +0x00000062e36fef78: 0000000000000000 000000003e4ccccd +0x00000062e36fef88: 0001000000000000 000001f90000ffff +0x00000062e36fef98: 00000062e36ff010 9e3779b97f4a7c15 +0x00000062e36fefa8: 000001f967c9d621 454021de755d453b +0x00000062e36fefb8: 0000000000000000 00000062e36fefc0 +0x00000062e36fefc8: 000001f97c970fc8 000000623e4ccccd +0x00000062e36fefd8: 000001f900000000 0000000000000000 +0x00000062e36fefe8: 0000000700000000 000001f900000001 + +Instructions: (pc=0x00000000503cf46a) +0x00000000503cf36a: 4c 8b 48 60 4c 8b 58 68 4d 85 c0 49 8b 49 10 49 +0x00000000503cf37a: 8b 53 10 48 c7 40 10 00 00 00 00 4c 89 40 18 74 +0x00000000503cf38a: 04 49 89 40 10 4c 8b 81 88 00 00 00 49 89 44 24 +0x00000000503cf39a: 58 4c 8d 50 20 48 89 40 28 48 89 50 20 48 c7 40 +0x00000000503cf3aa: 30 00 00 00 00 4d 85 c0 4c 89 40 38 74 04 4d 89 +0x00000000503cf3ba: 50 10 4c 89 91 88 00 00 00 4c 8b 82 88 00 00 00 +0x00000000503cf3ca: 48 89 48 40 48 c7 40 50 00 00 00 00 48 89 40 48 +0x00000000503cf3da: 48 83 c0 40 4c 89 40 18 4d 85 c0 74 04 49 89 40 +0x00000000503cf3ea: 10 41 80 79 3a 00 48 89 82 88 00 00 00 75 39 41 +0x00000000503cf3fa: 80 7b 3a 00 75 32 0f b7 41 04 a8 02 75 11 83 c8 +0x00000000503cf40a: 02 c7 81 ac 00 00 00 00 00 00 00 66 89 41 04 0f +0x00000000503cf41a: b7 42 04 a8 02 75 11 83 c8 02 c7 82 ac 00 00 00 +0x00000000503cf42a: 00 00 00 00 66 89 42 04 41 83 44 24 60 01 48 83 +0x00000000503cf43a: c4 38 5b 5e 5f 5d 41 5c 41 5d c3 90 66 2e 0f 1f +0x00000000503cf44a: 84 00 00 00 00 00 48 89 ca e9 78 af 01 00 90 90 +0x00000000503cf45a: 90 90 90 90 90 90 48 b8 00 00 00 00 01 00 ff ff +0x00000000503cf46a: 48 89 41 30 31 c0 48 c7 41 40 00 00 00 00 48 c7 +0x00000000503cf47a: 41 10 00 00 00 00 48 c7 41 08 00 00 00 00 48 c7 +0x00000000503cf48a: 41 28 00 00 00 00 66 89 41 38 48 c7 41 18 00 00 +0x00000000503cf49a: 00 00 c7 01 00 00 00 00 c3 90 66 90 66 2e 0f 1f +0x00000000503cf4aa: 84 00 00 00 00 00 55 57 56 53 48 83 ec 28 49 8b +0x00000000503cf4ba: 41 08 f3 41 0f 10 41 10 48 89 cb 48 89 d5 f3 0f +0x00000000503cf4ca: 11 41 20 4c 89 ce 48 89 41 40 41 8b 41 1e f3 41 +0x00000000503cf4da: 0f 10 41 14 f3 0f 11 41 24 4c 89 41 10 48 c7 41 +0x00000000503cf4ea: 08 00 00 00 00 89 41 34 41 0f b7 41 22 66 89 41 +0x00000000503cf4fa: 38 41 0f b6 41 1c 88 41 3a 49 8b 09 48 8b 01 ff +0x00000000503cf50a: 50 10 48 8b 10 48 89 c1 48 89 43 18 ff 52 18 89 +0x00000000503cf51a: c2 89 c7 48 89 e9 c1 e2 05 e8 c8 c4 fe ff 85 ff +0x00000000503cf52a: 48 89 43 28 7e 27 8d 4f ff 48 8d 50 10 48 c1 e1 +0x00000000503cf53a: 05 48 8d 44 08 30 48 c7 02 00 00 00 00 c7 42 0c +0x00000000503cf54a: ff ff ff ff 48 83 c2 20 48 39 c2 75 e9 f3 0f 10 +0x00000000503cf55a: 46 18 c7 43 30 00 00 00 00 f3 0f 11 03 48 83 c4 + + +Stack slot to memory mapping: +stack at sp + 0 slots: 0x00000000503ce3ac gdx-box2d64.dll +stack at sp + 1 slots: 0x0 is NULL +stack at sp + 2 slots: 0xaf071404aba62d7d is an unknown value +stack at sp + 3 slots: 0x0 is NULL +stack at sp + 4 slots: 0x00000062e36fef18 is pointing into the stack for thread: 0x000001f90ec7c340 +stack at sp + 5 slots: 0x000001f97c96d518 is pointing into metadata +stack at sp + 6 slots: {method} {0x000001f9082293f8} 'jniCreateFixture' '(JJFFFZSSS)J' in 'com/badlogic/gdx/physics/box2d/Body' +stack at sp + 7 slots: 0x0000000000000120 is an unknown value + + +--------------- P R O C E S S --------------- + +Threads class SMR info: +_java_thread_list=0x000001f917d0b190, length=24, elements={ +0x000001f958fcf110, 0x000001f97c2ffa50, 0x000001f97c3006c0, 0x000001f97c31a260, +0x000001f97c31ac10, 0x000001f97c31b5c0, 0x000001f97c31bf70, 0x000001f97c31cc50, +0x000001f97cd00080, 0x000001f97cd01990, 0x000001f97c2eb570, 0x000001f97ce9bbf0, +0x000001f97cea9ae0, 0x000001f9045e5060, 0x000001f9046d2c10, 0x000001f97d9cb330, +0x000001f97d9cb840, 0x000001f97dd2cea0, 0x000001f9048d8a80, 0x000001f9048d7640, +0x000001f9048d99b0, 0x000001f9048d8570, 0x000001f9048d8f90, 0x000001f90ec7c340 +} + +Java Threads: ( => current thread ) + 0x000001f958fcf110 JavaThread "main" [_thread_in_native, id=27368, stack(0x00000062df600000,0x00000062df700000)] + 0x000001f97c2ffa50 JavaThread "Reference Handler" daemon [_thread_blocked, id=8496, stack(0x00000062dfd00000,0x00000062dfe00000)] + 0x000001f97c3006c0 JavaThread "Finalizer" daemon [_thread_blocked, id=11008, stack(0x00000062dfe00000,0x00000062dff00000)] + 0x000001f97c31a260 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=14836, stack(0x00000062dff00000,0x00000062e0000000)] + 0x000001f97c31ac10 JavaThread "Attach Listener" daemon [_thread_blocked, id=9028, stack(0x00000062e0000000,0x00000062e0100000)] + 0x000001f97c31b5c0 JavaThread "Service Thread" daemon [_thread_blocked, id=13668, stack(0x00000062e0100000,0x00000062e0200000)] + 0x000001f97c31bf70 JavaThread "Monitor Deflation Thread" daemon [_thread_blocked, id=22516, stack(0x00000062e0200000,0x00000062e0300000)] + 0x000001f97c31cc50 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=18288, stack(0x00000062e0300000,0x00000062e0400000)] + 0x000001f97cd00080 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=6092, stack(0x00000062e0400000,0x00000062e0500000)] + 0x000001f97cd01990 JavaThread "Sweeper thread" daemon [_thread_blocked, id=29084, stack(0x00000062e0500000,0x00000062e0600000)] + 0x000001f97c2eb570 JavaThread "C1 CompilerThread1" daemon [_thread_blocked, id=29232, stack(0x00000062e0600000,0x00000062e0700000)] + 0x000001f97ce9bbf0 JavaThread "Notification Thread" daemon [_thread_blocked, id=30360, stack(0x00000062e0700000,0x00000062e0800000)] + 0x000001f97cea9ae0 JavaThread "Common-Cleaner" daemon [_thread_blocked, id=23212, stack(0x00000062e0900000,0x00000062e0a00000)] + 0x000001f9045e5060 JavaThread "AssetManager" daemon [_thread_blocked, id=11788, stack(0x00000062e2100000,0x00000062e2200000)] + 0x000001f9046d2c10 JavaThread "LWJGL3 Timer" daemon [_thread_blocked, id=1032, stack(0x00000062e2a00000,0x00000062e2b00000)] + 0x000001f97d9cb330 JavaThread "C1 CompilerThread2" daemon [_thread_blocked, id=18308, stack(0x00000062e2d00000,0x00000062e2e00000)] + 0x000001f97d9cb840 JavaThread "C1 CompilerThread3" daemon [_thread_blocked, id=24848, stack(0x00000062e2e00000,0x00000062e2f00000)] + 0x000001f97dd2cea0 JavaThread "AssetManager" daemon [_thread_blocked, id=20796, stack(0x00000062e2c00000,0x00000062e2d00000)] + 0x000001f9048d8a80 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=19012, stack(0x00000062e2f00000,0x00000062e3000000)] + 0x000001f9048d7640 JavaThread "C2 CompilerThread2" daemon [_thread_blocked, id=14288, stack(0x00000062e3200000,0x00000062e3300000)] + 0x000001f9048d99b0 JavaThread "C2 CompilerThread3" daemon [_thread_blocked, id=19436, stack(0x00000062e3300000,0x00000062e3400000)] + 0x000001f9048d8570 JavaThread "C2 CompilerThread4" daemon [_thread_blocked, id=19280, stack(0x00000062e3400000,0x00000062e3500000)] + 0x000001f9048d8f90 JavaThread "C2 CompilerThread5" daemon [_thread_blocked, id=29144, stack(0x00000062e3500000,0x00000062e3600000)] +=>0x000001f90ec7c340 JavaThread "Timer-0" [_thread_in_native, id=11740, stack(0x00000062e3600000,0x00000062e3700000)] + +Other Threads: + 0x000001f97c2fbf60 VMThread "VM Thread" [stack: 0x00000062dfc00000,0x00000062dfd00000] [id=19716] + 0x000001f97cea0cc0 WatcherThread [stack: 0x00000062e0800000,0x00000062e0900000] [id=29456] + 0x000001f95903f6b0 GCTaskThread "GC Thread#0" [stack: 0x00000062df700000,0x00000062df800000] [id=10816] + 0x000001f97fd8e400 GCTaskThread "GC Thread#1" [stack: 0x00000062e2200000,0x00000062e2300000] [id=18392] + 0x000001f97fd8e150 GCTaskThread "GC Thread#2" [stack: 0x00000062e2300000,0x00000062e2400000] [id=20768] + 0x000001f97fd8fc30 GCTaskThread "GC Thread#3" [stack: 0x00000062e2400000,0x00000062e2500000] [id=29616] + 0x000001f97fd90440 GCTaskThread "GC Thread#4" [stack: 0x00000062e2500000,0x00000062e2600000] [id=29540] + 0x000001f97fd909a0 GCTaskThread "GC Thread#5" [stack: 0x00000062e2600000,0x00000062e2700000] [id=17304] + 0x000001f97fd8f170 GCTaskThread "GC Thread#6" [stack: 0x00000062e2700000,0x00000062e2800000] [id=26768] + 0x000001f97fd8fee0 GCTaskThread "GC Thread#7" [stack: 0x00000062e2800000,0x00000062e2900000] [id=23352] + 0x000001f97fd8f420 GCTaskThread "GC Thread#8" [stack: 0x00000062e2900000,0x00000062e2a00000] [id=10372] + 0x000001f9048226e0 GCTaskThread "GC Thread#9" [stack: 0x00000062e3000000,0x00000062e3100000] [id=4980] + 0x000001f9048206a0 GCTaskThread "GC Thread#10" [stack: 0x00000062e3100000,0x00000062e3200000] [id=4236] + 0x000001f959053fa0 ConcurrentGCThread "G1 Main Marker" [stack: 0x00000062df800000,0x00000062df900000] [id=26636] + 0x000001f9590548b0 ConcurrentGCThread "G1 Conc#0" [stack: 0x00000062df900000,0x00000062dfa00000] [id=11560] + 0x000001f97c1b7940 ConcurrentGCThread "G1 Refine#0" [stack: 0x00000062dfa00000,0x00000062dfb00000] [id=29076] + 0x000001f97c1b8170 ConcurrentGCThread "G1 Service" [stack: 0x00000062dfb00000,0x00000062dfc00000] [id=28168] + +Threads with active compile tasks: + +VM state: not at safepoint (normal execution) + +VM Mutex/Monitor currently owned by a thread: None + +Heap address: 0x0000000709800000, size: 3944 MB, Compressed Oops mode: Zero based, Oop shift amount: 3 + +CDS archive(s) mapped at: [0x0000000800000000-0x0000000800bd0000-0x0000000800bd0000), size 12386304, SharedBaseAddress: 0x0000000800000000, ArchiveRelocationMode: 0. +Compressed class space mapped at: 0x0000000800c00000-0x0000000840c00000, reserved size: 1073741824 +Narrow klass base: 0x0000000800000000, Narrow klass shift: 0, Narrow klass range: 0x100000000 + +GC Precious Log: + CPUs: 16 total, 16 available + Memory: 15769M + Large Page Support: Disabled + NUMA Support: Disabled + Compressed Oops: Enabled (Zero based) + Heap Region Size: 2M + Heap Min Capacity: 8M + Heap Initial Capacity: 248M + Heap Max Capacity: 3944M + Pre-touch: Disabled + Parallel Workers: 13 + Concurrent Workers: 3 + Concurrent Refinement Workers: 13 + Periodic GC: Disabled + +Heap: + garbage-first heap total 253952K, used 56608K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 20 young (40960K), 2 survivors (4096K) + Metaspace used 10910K, committed 11072K, reserved 1064960K + class space used 960K, committed 1024K, reserved 1048576K + +Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, OA=open archive, CA=closed archive, TAMS=top-at-mark-start (previous, next) +| 0|0x0000000709800000, 0x0000000709a00000, 0x0000000709a00000|100%| O| |TAMS 0x0000000709800000, 0x0000000709800000| Untracked +| 1|0x0000000709a00000, 0x0000000709b0ac00, 0x0000000709c00000| 52%| O| |TAMS 0x0000000709a00000, 0x0000000709a00000| Untracked +| 2|0x0000000709c00000, 0x0000000709e00000, 0x0000000709e00000|100%|HS| |TAMS 0x0000000709c00000, 0x0000000709c00000| Complete +| 3|0x0000000709e00000, 0x000000070a000000, 0x000000070a000000|100%|HS| |TAMS 0x0000000709e00000, 0x0000000709e00000| Complete +| 4|0x000000070a000000, 0x000000070a200000, 0x000000070a200000|100%|HS| |TAMS 0x000000070a000000, 0x000000070a000000| Complete +| 5|0x000000070a200000, 0x000000070a400000, 0x000000070a400000|100%|HS| |TAMS 0x000000070a200000, 0x000000070a200000| Complete +| 6|0x000000070a400000, 0x000000070a600000, 0x000000070a600000|100%|HS| |TAMS 0x000000070a400000, 0x000000070a400000| Complete +| 7|0x000000070a600000, 0x000000070a800000, 0x000000070a800000|100%|HC| |TAMS 0x000000070a600000, 0x000000070a600000| Complete +| 8|0x000000070a800000, 0x000000070aa00000, 0x000000070aa00000|100%|HS| |TAMS 0x000000070a800000, 0x000000070a800000| Complete +| 9|0x000000070aa00000, 0x000000070ac00000, 0x000000070ac00000|100%|HS| |TAMS 0x000000070aa00000, 0x000000070aa00000| Complete +| 10|0x000000070ac00000, 0x000000070ae00000, 0x000000070ae00000|100%|HS| |TAMS 0x000000070ac00000, 0x000000070ac00000| Complete +| 11|0x000000070ae00000, 0x000000070ae00000, 0x000000070b000000| 0%| F| |TAMS 0x000000070ae00000, 0x000000070ae00000| Untracked +| 12|0x000000070b000000, 0x000000070b000000, 0x000000070b200000| 0%| F| |TAMS 0x000000070b000000, 0x000000070b000000| Untracked +| 13|0x000000070b200000, 0x000000070b200000, 0x000000070b400000| 0%| F| |TAMS 0x000000070b200000, 0x000000070b200000| Untracked +| 14|0x000000070b400000, 0x000000070b400000, 0x000000070b600000| 0%| F| |TAMS 0x000000070b400000, 0x000000070b400000| Untracked +| 15|0x000000070b600000, 0x000000070b600000, 0x000000070b800000| 0%| F| |TAMS 0x000000070b600000, 0x000000070b600000| Untracked +| 16|0x000000070b800000, 0x000000070b800000, 0x000000070ba00000| 0%| F| |TAMS 0x000000070b800000, 0x000000070b800000| Untracked +| 17|0x000000070ba00000, 0x000000070ba00000, 0x000000070bc00000| 0%| F| |TAMS 0x000000070ba00000, 0x000000070ba00000| Untracked +| 18|0x000000070bc00000, 0x000000070bc00000, 0x000000070be00000| 0%| F| |TAMS 0x000000070bc00000, 0x000000070bc00000| Untracked +| 19|0x000000070be00000, 0x000000070be00000, 0x000000070c000000| 0%| F| |TAMS 0x000000070be00000, 0x000000070be00000| Untracked +| 20|0x000000070c000000, 0x000000070c000000, 0x000000070c200000| 0%| F| |TAMS 0x000000070c000000, 0x000000070c000000| Untracked +| 21|0x000000070c200000, 0x000000070c200000, 0x000000070c400000| 0%| F| |TAMS 0x000000070c200000, 0x000000070c200000| Untracked +| 22|0x000000070c400000, 0x000000070c400000, 0x000000070c600000| 0%| F| |TAMS 0x000000070c400000, 0x000000070c400000| Untracked +| 23|0x000000070c600000, 0x000000070c600000, 0x000000070c800000| 0%| F| |TAMS 0x000000070c600000, 0x000000070c600000| Untracked +| 24|0x000000070c800000, 0x000000070c800000, 0x000000070ca00000| 0%| F| |TAMS 0x000000070c800000, 0x000000070c800000| Untracked +| 25|0x000000070ca00000, 0x000000070ca00000, 0x000000070cc00000| 0%| F| |TAMS 0x000000070ca00000, 0x000000070ca00000| Untracked +| 26|0x000000070cc00000, 0x000000070cc00000, 0x000000070ce00000| 0%| F| |TAMS 0x000000070cc00000, 0x000000070cc00000| Untracked +| 27|0x000000070ce00000, 0x000000070ce00000, 0x000000070d000000| 0%| F| |TAMS 0x000000070ce00000, 0x000000070ce00000| Untracked +| 28|0x000000070d000000, 0x000000070d000000, 0x000000070d200000| 0%| F| |TAMS 0x000000070d000000, 0x000000070d000000| Untracked +| 29|0x000000070d200000, 0x000000070d200000, 0x000000070d400000| 0%| F| |TAMS 0x000000070d200000, 0x000000070d200000| Untracked +| 30|0x000000070d400000, 0x000000070d400000, 0x000000070d600000| 0%| F| |TAMS 0x000000070d400000, 0x000000070d400000| Untracked +| 31|0x000000070d600000, 0x000000070d600000, 0x000000070d800000| 0%| F| |TAMS 0x000000070d600000, 0x000000070d600000| Untracked +| 32|0x000000070d800000, 0x000000070d800000, 0x000000070da00000| 0%| F| |TAMS 0x000000070d800000, 0x000000070d800000| Untracked +| 33|0x000000070da00000, 0x000000070da00000, 0x000000070dc00000| 0%| F| |TAMS 0x000000070da00000, 0x000000070da00000| Untracked +| 34|0x000000070dc00000, 0x000000070dc00000, 0x000000070de00000| 0%| F| |TAMS 0x000000070dc00000, 0x000000070dc00000| Untracked +| 35|0x000000070de00000, 0x000000070de00000, 0x000000070e000000| 0%| F| |TAMS 0x000000070de00000, 0x000000070de00000| Untracked +| 36|0x000000070e000000, 0x000000070e000000, 0x000000070e200000| 0%| F| |TAMS 0x000000070e000000, 0x000000070e000000| Untracked +| 37|0x000000070e200000, 0x000000070e200000, 0x000000070e400000| 0%| F| |TAMS 0x000000070e200000, 0x000000070e200000| Untracked +| 38|0x000000070e400000, 0x000000070e400000, 0x000000070e600000| 0%| F| |TAMS 0x000000070e400000, 0x000000070e400000| Untracked +| 39|0x000000070e600000, 0x000000070e600000, 0x000000070e800000| 0%| F| |TAMS 0x000000070e600000, 0x000000070e600000| Untracked +| 40|0x000000070e800000, 0x000000070e800000, 0x000000070ea00000| 0%| F| |TAMS 0x000000070e800000, 0x000000070e800000| Untracked +| 41|0x000000070ea00000, 0x000000070ea00000, 0x000000070ec00000| 0%| F| |TAMS 0x000000070ea00000, 0x000000070ea00000| Untracked +| 42|0x000000070ec00000, 0x000000070ec00000, 0x000000070ee00000| 0%| F| |TAMS 0x000000070ec00000, 0x000000070ec00000| Untracked +| 43|0x000000070ee00000, 0x000000070ee00000, 0x000000070f000000| 0%| F| |TAMS 0x000000070ee00000, 0x000000070ee00000| Untracked +| 44|0x000000070f000000, 0x000000070f000000, 0x000000070f200000| 0%| F| |TAMS 0x000000070f000000, 0x000000070f000000| Untracked +| 45|0x000000070f200000, 0x000000070f200000, 0x000000070f400000| 0%| F| |TAMS 0x000000070f200000, 0x000000070f200000| Untracked +| 46|0x000000070f400000, 0x000000070f400000, 0x000000070f600000| 0%| F| |TAMS 0x000000070f400000, 0x000000070f400000| Untracked +| 47|0x000000070f600000, 0x000000070f600000, 0x000000070f800000| 0%| F| |TAMS 0x000000070f600000, 0x000000070f600000| Untracked +| 48|0x000000070f800000, 0x000000070f800000, 0x000000070fa00000| 0%| F| |TAMS 0x000000070f800000, 0x000000070f800000| Untracked +| 49|0x000000070fa00000, 0x000000070fa00000, 0x000000070fc00000| 0%| F| |TAMS 0x000000070fa00000, 0x000000070fa00000| Untracked +| 50|0x000000070fc00000, 0x000000070fc00000, 0x000000070fe00000| 0%| F| |TAMS 0x000000070fc00000, 0x000000070fc00000| Untracked +| 51|0x000000070fe00000, 0x000000070fe00000, 0x0000000710000000| 0%| F| |TAMS 0x000000070fe00000, 0x000000070fe00000| Untracked +| 52|0x0000000710000000, 0x0000000710000000, 0x0000000710200000| 0%| F| |TAMS 0x0000000710000000, 0x0000000710000000| Untracked +| 53|0x0000000710200000, 0x0000000710200000, 0x0000000710400000| 0%| F| |TAMS 0x0000000710200000, 0x0000000710200000| Untracked +| 54|0x0000000710400000, 0x0000000710400000, 0x0000000710600000| 0%| F| |TAMS 0x0000000710400000, 0x0000000710400000| Untracked +| 55|0x0000000710600000, 0x0000000710600000, 0x0000000710800000| 0%| F| |TAMS 0x0000000710600000, 0x0000000710600000| Untracked +| 56|0x0000000710800000, 0x0000000710800000, 0x0000000710a00000| 0%| F| |TAMS 0x0000000710800000, 0x0000000710800000| Untracked +| 57|0x0000000710a00000, 0x0000000710a00000, 0x0000000710c00000| 0%| F| |TAMS 0x0000000710a00000, 0x0000000710a00000| Untracked +| 58|0x0000000710c00000, 0x0000000710c00000, 0x0000000710e00000| 0%| F| |TAMS 0x0000000710c00000, 0x0000000710c00000| Untracked +| 59|0x0000000710e00000, 0x0000000710e00000, 0x0000000711000000| 0%| F| |TAMS 0x0000000710e00000, 0x0000000710e00000| Untracked +| 60|0x0000000711000000, 0x0000000711000000, 0x0000000711200000| 0%| F| |TAMS 0x0000000711000000, 0x0000000711000000| Untracked +| 61|0x0000000711200000, 0x0000000711200000, 0x0000000711400000| 0%| F| |TAMS 0x0000000711200000, 0x0000000711200000| Untracked +| 62|0x0000000711400000, 0x0000000711400000, 0x0000000711600000| 0%| F| |TAMS 0x0000000711400000, 0x0000000711400000| Untracked +| 63|0x0000000711600000, 0x0000000711600000, 0x0000000711800000| 0%| F| |TAMS 0x0000000711600000, 0x0000000711600000| Untracked +| 64|0x0000000711800000, 0x0000000711800000, 0x0000000711a00000| 0%| F| |TAMS 0x0000000711800000, 0x0000000711800000| Untracked +| 65|0x0000000711a00000, 0x0000000711a00000, 0x0000000711c00000| 0%| F| |TAMS 0x0000000711a00000, 0x0000000711a00000| Untracked +| 66|0x0000000711c00000, 0x0000000711c00000, 0x0000000711e00000| 0%| F| |TAMS 0x0000000711c00000, 0x0000000711c00000| Untracked +| 67|0x0000000711e00000, 0x0000000711e00000, 0x0000000712000000| 0%| F| |TAMS 0x0000000711e00000, 0x0000000711e00000| Untracked +| 68|0x0000000712000000, 0x0000000712000000, 0x0000000712200000| 0%| F| |TAMS 0x0000000712000000, 0x0000000712000000| Untracked +| 69|0x0000000712200000, 0x0000000712200000, 0x0000000712400000| 0%| F| |TAMS 0x0000000712200000, 0x0000000712200000| Untracked +| 70|0x0000000712400000, 0x0000000712400000, 0x0000000712600000| 0%| F| |TAMS 0x0000000712400000, 0x0000000712400000| Untracked +| 71|0x0000000712600000, 0x0000000712600000, 0x0000000712800000| 0%| F| |TAMS 0x0000000712600000, 0x0000000712600000| Untracked +| 72|0x0000000712800000, 0x0000000712800000, 0x0000000712a00000| 0%| F| |TAMS 0x0000000712800000, 0x0000000712800000| Untracked +| 73|0x0000000712a00000, 0x0000000712a00000, 0x0000000712c00000| 0%| F| |TAMS 0x0000000712a00000, 0x0000000712a00000| Untracked +| 74|0x0000000712c00000, 0x0000000712c00000, 0x0000000712e00000| 0%| F| |TAMS 0x0000000712c00000, 0x0000000712c00000| Untracked +| 75|0x0000000712e00000, 0x0000000712e00000, 0x0000000713000000| 0%| F| |TAMS 0x0000000712e00000, 0x0000000712e00000| Untracked +| 76|0x0000000713000000, 0x0000000713000000, 0x0000000713200000| 0%| F| |TAMS 0x0000000713000000, 0x0000000713000000| Untracked +| 77|0x0000000713200000, 0x0000000713200000, 0x0000000713400000| 0%| F| |TAMS 0x0000000713200000, 0x0000000713200000| Untracked +| 78|0x0000000713400000, 0x0000000713400000, 0x0000000713600000| 0%| F| |TAMS 0x0000000713400000, 0x0000000713400000| Untracked +| 79|0x0000000713600000, 0x0000000713600000, 0x0000000713800000| 0%| F| |TAMS 0x0000000713600000, 0x0000000713600000| Untracked +| 80|0x0000000713800000, 0x0000000713800000, 0x0000000713a00000| 0%| F| |TAMS 0x0000000713800000, 0x0000000713800000| Untracked +| 81|0x0000000713a00000, 0x0000000713a00000, 0x0000000713c00000| 0%| F| |TAMS 0x0000000713a00000, 0x0000000713a00000| Untracked +| 82|0x0000000713c00000, 0x0000000713c00000, 0x0000000713e00000| 0%| F| |TAMS 0x0000000713c00000, 0x0000000713c00000| Untracked +| 83|0x0000000713e00000, 0x0000000713e00000, 0x0000000714000000| 0%| F| |TAMS 0x0000000713e00000, 0x0000000713e00000| Untracked +| 84|0x0000000714000000, 0x0000000714000000, 0x0000000714200000| 0%| F| |TAMS 0x0000000714000000, 0x0000000714000000| Untracked +| 85|0x0000000714200000, 0x0000000714200000, 0x0000000714400000| 0%| F| |TAMS 0x0000000714200000, 0x0000000714200000| Untracked +| 86|0x0000000714400000, 0x0000000714400000, 0x0000000714600000| 0%| F| |TAMS 0x0000000714400000, 0x0000000714400000| Untracked +| 87|0x0000000714600000, 0x0000000714600000, 0x0000000714800000| 0%| F| |TAMS 0x0000000714600000, 0x0000000714600000| Untracked +| 88|0x0000000714800000, 0x0000000714800000, 0x0000000714a00000| 0%| F| |TAMS 0x0000000714800000, 0x0000000714800000| Untracked +| 89|0x0000000714a00000, 0x0000000714a00000, 0x0000000714c00000| 0%| F| |TAMS 0x0000000714a00000, 0x0000000714a00000| Untracked +| 90|0x0000000714c00000, 0x0000000714c00000, 0x0000000714e00000| 0%| F| |TAMS 0x0000000714c00000, 0x0000000714c00000| Untracked +| 91|0x0000000714e00000, 0x0000000714e00000, 0x0000000715000000| 0%| F| |TAMS 0x0000000714e00000, 0x0000000714e00000| Untracked +| 92|0x0000000715000000, 0x0000000715000000, 0x0000000715200000| 0%| F| |TAMS 0x0000000715000000, 0x0000000715000000| Untracked +| 93|0x0000000715200000, 0x0000000715200000, 0x0000000715400000| 0%| F| |TAMS 0x0000000715200000, 0x0000000715200000| Untracked +| 94|0x0000000715400000, 0x0000000715400000, 0x0000000715600000| 0%| F| |TAMS 0x0000000715400000, 0x0000000715400000| Untracked +| 95|0x0000000715600000, 0x0000000715600000, 0x0000000715800000| 0%| F| |TAMS 0x0000000715600000, 0x0000000715600000| Untracked +| 96|0x0000000715800000, 0x0000000715800000, 0x0000000715a00000| 0%| F| |TAMS 0x0000000715800000, 0x0000000715800000| Untracked +| 97|0x0000000715a00000, 0x0000000715a00000, 0x0000000715c00000| 0%| F| |TAMS 0x0000000715a00000, 0x0000000715a00000| Untracked +| 98|0x0000000715c00000, 0x0000000715c00000, 0x0000000715e00000| 0%| F| |TAMS 0x0000000715c00000, 0x0000000715c00000| Untracked +| 99|0x0000000715e00000, 0x0000000715e00000, 0x0000000716000000| 0%| F| |TAMS 0x0000000715e00000, 0x0000000715e00000| Untracked +| 100|0x0000000716000000, 0x0000000716000000, 0x0000000716200000| 0%| F| |TAMS 0x0000000716000000, 0x0000000716000000| Untracked +| 101|0x0000000716200000, 0x0000000716200000, 0x0000000716400000| 0%| F| |TAMS 0x0000000716200000, 0x0000000716200000| Untracked +| 102|0x0000000716400000, 0x0000000716400000, 0x0000000716600000| 0%| F| |TAMS 0x0000000716400000, 0x0000000716400000| Untracked +| 103|0x0000000716600000, 0x0000000716600000, 0x0000000716800000| 0%| F| |TAMS 0x0000000716600000, 0x0000000716600000| Untracked +| 104|0x0000000716800000, 0x00000007169b8d38, 0x0000000716a00000| 86%| E| |TAMS 0x0000000716800000, 0x0000000716800000| Complete +| 105|0x0000000716a00000, 0x0000000716a3d6a0, 0x0000000716c00000| 11%| S|CS|TAMS 0x0000000716a00000, 0x0000000716a00000| Complete +| 106|0x0000000716c00000, 0x0000000716e00000, 0x0000000716e00000|100%| S|CS|TAMS 0x0000000716c00000, 0x0000000716c00000| Complete +| 107|0x0000000716e00000, 0x0000000717000000, 0x0000000717000000|100%| E|CS|TAMS 0x0000000716e00000, 0x0000000716e00000| Complete +| 108|0x0000000717000000, 0x0000000717200000, 0x0000000717200000|100%| E|CS|TAMS 0x0000000717000000, 0x0000000717000000| Complete +| 109|0x0000000717200000, 0x0000000717400000, 0x0000000717400000|100%| E|CS|TAMS 0x0000000717200000, 0x0000000717200000| Complete +| 110|0x0000000717400000, 0x0000000717600000, 0x0000000717600000|100%| E|CS|TAMS 0x0000000717400000, 0x0000000717400000| Complete +| 111|0x0000000717600000, 0x0000000717800000, 0x0000000717800000|100%| E|CS|TAMS 0x0000000717600000, 0x0000000717600000| Complete +| 112|0x0000000717800000, 0x0000000717a00000, 0x0000000717a00000|100%| E|CS|TAMS 0x0000000717800000, 0x0000000717800000| Complete +| 113|0x0000000717a00000, 0x0000000717c00000, 0x0000000717c00000|100%| E|CS|TAMS 0x0000000717a00000, 0x0000000717a00000| Complete +| 114|0x0000000717c00000, 0x0000000717e00000, 0x0000000717e00000|100%| E|CS|TAMS 0x0000000717c00000, 0x0000000717c00000| Complete +| 115|0x0000000717e00000, 0x0000000718000000, 0x0000000718000000|100%| E| |TAMS 0x0000000717e00000, 0x0000000717e00000| Complete +| 116|0x0000000718000000, 0x0000000718200000, 0x0000000718200000|100%| E|CS|TAMS 0x0000000718000000, 0x0000000718000000| Complete +| 117|0x0000000718200000, 0x0000000718400000, 0x0000000718400000|100%| E|CS|TAMS 0x0000000718200000, 0x0000000718200000| Complete +| 118|0x0000000718400000, 0x0000000718600000, 0x0000000718600000|100%| E|CS|TAMS 0x0000000718400000, 0x0000000718400000| Complete +| 119|0x0000000718600000, 0x0000000718800000, 0x0000000718800000|100%| E|CS|TAMS 0x0000000718600000, 0x0000000718600000| Complete +| 120|0x0000000718800000, 0x0000000718a00000, 0x0000000718a00000|100%| E|CS|TAMS 0x0000000718800000, 0x0000000718800000| Complete +| 121|0x0000000718a00000, 0x0000000718c00000, 0x0000000718c00000|100%| E|CS|TAMS 0x0000000718a00000, 0x0000000718a00000| Complete +| 122|0x0000000718c00000, 0x0000000718e00000, 0x0000000718e00000|100%| E|CS|TAMS 0x0000000718c00000, 0x0000000718c00000| Complete +| 123|0x0000000718e00000, 0x0000000719000000, 0x0000000719000000|100%| E|CS|TAMS 0x0000000718e00000, 0x0000000718e00000| Complete + +Card table byte_map: [0x000001f970880000,0x000001f971040000] _byte_map_base: 0x000001f96d034000 + +Marking Bits (Prev, Next): (CMBitMap*) 0x000001f959042fe0, (CMBitMap*) 0x000001f959043020 + Prev Bits: [0x000001f971800000, 0x000001f9755a0000) + Next Bits: [0x000001f9755a0000, 0x000001f979340000) + +Polling page: 0x000001f956f70000 + +Metaspace: + +Usage: + Non-class: 9.72 MB used. + Class: 960.75 KB used. + Both: 10.65 MB used. + +Virtual space: + Non-class space: 16.00 MB reserved, 9.81 MB ( 61%) committed, 2 nodes. + Class space: 1.00 GB reserved, 1.00 MB ( <1%) committed, 1 nodes. + Both: 1.02 GB reserved, 10.81 MB ( 1%) committed. + +Chunk freelists: + Non-Class: 1.58 MB + Class: 3.02 MB + Both: 4.59 MB + +MaxMetaspaceSize: unlimited +CompressedClassSpaceSize: 1.00 GB +Initial GC threshold: 21.00 MB +Current GC threshold: 21.00 MB +CDS: on +MetaspaceReclaimPolicy: balanced + - commit_granule_bytes: 65536. + - commit_granule_words: 8192. + - virtual_space_node_default_size: 1048576. + - enlarge_chunks_in_place: 1. + - new_chunks_are_fully_committed: 0. + - uncommit_free_chunks: 1. + - use_allocation_guard: 0. + - handle_deallocations: 1. + + +Internal statistics: + +num_allocs_failed_limit: 0. +num_arena_births: 144. +num_arena_deaths: 0. +num_vsnodes_births: 3. +num_vsnodes_deaths: 0. +num_space_committed: 171. +num_space_uncommitted: 0. +num_chunks_returned_to_freelist: 0. +num_chunks_taken_from_freelist: 458. +num_chunk_merges: 0. +num_chunk_splits: 313. +num_chunks_enlarged: 236. +num_purges: 0. +num_inconsistent_stats: 0. + +CodeHeap 'non-profiled nmethods': size=119168Kb used=1401Kb max_used=1401Kb free=117766Kb + bounds [0x000001f9683e0000, 0x000001f968650000, 0x000001f96f840000] +CodeHeap 'profiled nmethods': size=119104Kb used=5406Kb max_used=5406Kb free=113698Kb + bounds [0x000001f960840000, 0x000001f960d90000, 0x000001f967c90000] +CodeHeap 'non-nmethods': size=7488Kb used=3347Kb max_used=3411Kb free=4140Kb + bounds [0x000001f967c90000, 0x000001f967ff0000, 0x000001f9683e0000] + total_blobs=3658 nmethods=2556 adapters=1011 + compilation: enabled + stopped_count=0, restarted_count=0 + full_count=0 + +Compilation events (20 events): +Event: 10.298 Thread 0x000001f97d9cb840 nmethod 2544 0x000001f96852e290 code [0x000001f96852e420, 0x000001f96852e4f8] +Event: 10.301 Thread 0x000001f9048d99b0 2545 ! 4 java.net.URL:: (543 bytes) +Event: 10.301 Thread 0x000001f97c31cc50 nmethod 2517% 0x000001f96852e590 code [0x000001f96852e720, 0x000001f96852f238] +Event: 10.303 Thread 0x000001f97d9cb330 2546 3 jdk.internal.org.objectweb.asm.ClassWriter::visitMethod (57 bytes) +Event: 10.303 Thread 0x000001f97cd00080 2547 3 jdk.internal.org.objectweb.asm.MethodWriter:: (232 bytes) +Event: 10.303 Thread 0x000001f97c2eb570 2548 3 jdk.internal.org.objectweb.asm.MethodVisitor:: (7 bytes) +Event: 10.303 Thread 0x000001f97d9cb840 2549 3 jdk.internal.org.objectweb.asm.MethodWriter::visitEnd (1 bytes) +Event: 10.303 Thread 0x000001f97c2eb570 nmethod 2548 0x000001f960d7e610 code [0x000001f960d7e7c0, 0x000001f960d7e908] +Event: 10.303 Thread 0x000001f97d9cb840 nmethod 2549 0x000001f960d7e990 code [0x000001f960d7eb20, 0x000001f960d7ec38] +Event: 10.303 Thread 0x000001f97c2eb570 2550 3 jdk.internal.org.objectweb.asm.MethodWriter::computeMethodInfoSize (571 bytes) +Event: 10.303 Thread 0x000001f97d9cb840 2552 3 jdk.internal.org.objectweb.asm.MethodWriter::hasFrames (13 bytes) +Event: 10.303 Thread 0x000001f97d9cb330 nmethod 2546 0x000001f960d7ed10 code [0x000001f960d7eec0, 0x000001f960d7f248] +Event: 10.303 Thread 0x000001f97d9cb330 2553 3 jdk.internal.org.objectweb.asm.MethodWriter::putMethodInfo (1274 bytes) +Event: 10.303 Thread 0x000001f97c31cc50 2555 ! 4 java.lang.ref.ReferenceQueue::poll (28 bytes) +Event: 10.303 Thread 0x000001f97d9cb840 nmethod 2552 0x000001f960d7f390 code [0x000001f960d7f520, 0x000001f960d7f698] +Event: 10.303 Thread 0x000001f97d9cb840 2554 3 jdk.internal.org.objectweb.asm.Handler::putExceptionTable (63 bytes) +Event: 10.304 Thread 0x000001f97d9cb840 nmethod 2554 0x000001f960d7f710 code [0x000001f960d7f920, 0x000001f960d7fda8] +Event: 10.304 Thread 0x000001f97d9cb840 2556 3 jdk.internal.org.objectweb.asm.MethodWriter::visitMaxs (60 bytes) +Event: 10.304 Thread 0x000001f97cd00080 nmethod 2547 0x000001f960d80090 code [0x000001f960d80320, 0x000001f960d810f8] +Event: 10.304 Thread 0x000001f97cd00080 2551 1 jdk.internal.org.objectweb.asm.SymbolTable::getConstantPoolCount (5 bytes) + +GC Heap History (4 events): +Event: 2.982 GC heap before +{Heap before GC invocations=0 (full 0): + garbage-first heap total 253952K, used 26624K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 11 young (22528K), 0 survivors (0K) + Metaspace used 6601K, committed 6784K, reserved 1064960K + class space used 503K, committed 576K, reserved 1048576K +} +Event: 2.987 GC heap after +{Heap after GC invocations=1 (full 0): + garbage-first heap total 253952K, used 3824K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 2 young (4096K), 2 survivors (4096K) + Metaspace used 6601K, committed 6784K, reserved 1064960K + class space used 503K, committed 576K, reserved 1048576K +} +Event: 9.108 GC heap before +{Heap before GC invocations=1 (full 0): + garbage-first heap total 253952K, used 32496K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 17 young (34816K), 2 survivors (4096K) + Metaspace used 9237K, committed 9472K, reserved 1064960K + class space used 765K, committed 896K, reserved 1048576K +} +Event: 9.113 GC heap after +{Heap after GC invocations=2 (full 0): + garbage-first heap total 253952K, used 5408K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 2 young (4096K), 2 survivors (4096K) + Metaspace used 9237K, committed 9472K, reserved 1064960K + class space used 765K, committed 896K, reserved 1048576K +} + +Deoptimization events (20 events): +Event: 9.857 Thread 0x000001f958fcf110 Uncommon trap: trap_request=0xffffffc6 fr.pc=0x000001f9684a80b4 relative=0x0000000000000ab4 +Event: 9.857 Thread 0x000001f958fcf110 Uncommon trap: reason=bimorphic_or_optimized_type_check action=maybe_recompile pc=0x000001f9684a80b4 method=com.badlogic.gdx.assets.AssetLoadingTask.handleAsyncLoader()V @ 137 c2 +Event: 9.857 Thread 0x000001f958fcf110 DEOPT PACKING pc=0x000001f9684a80b4 sp=0x00000062df6fe940 +Event: 9.857 Thread 0x000001f958fcf110 DEOPT UNPACKING pc=0x000001f967ce23a3 sp=0x00000062df6fe820 mode 2 +Event: 9.857 Thread 0x000001f958fcf110 Uncommon trap: trap_request=0xffffff45 fr.pc=0x000001f968481498 relative=0x0000000000000418 +Event: 9.857 Thread 0x000001f958fcf110 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000001f968481498 method=com.badlogic.gdx.assets.AssetManager.update(I)Z @ 15 c2 +Event: 9.857 Thread 0x000001f958fcf110 DEOPT PACKING pc=0x000001f968481498 sp=0x00000062df6fe9d0 +Event: 9.857 Thread 0x000001f958fcf110 DEOPT UNPACKING pc=0x000001f967ce23a3 sp=0x00000062df6fe988 mode 2 +Event: 10.165 Thread 0x000001f958fcf110 DEOPT PACKING pc=0x000001f960c2c725 sp=0x00000062df6fe450 +Event: 10.165 Thread 0x000001f958fcf110 DEOPT UNPACKING pc=0x000001f967ce2b43 sp=0x00000062df6fd8e8 mode 0 +Event: 10.169 Thread 0x000001f958fcf110 DEOPT PACKING pc=0x000001f960c2c725 sp=0x00000062df6fe450 +Event: 10.169 Thread 0x000001f958fcf110 DEOPT UNPACKING pc=0x000001f967ce2b43 sp=0x00000062df6fd8e8 mode 0 +Event: 10.174 Thread 0x000001f958fcf110 DEOPT PACKING pc=0x000001f960c2c725 sp=0x00000062df6fe450 +Event: 10.174 Thread 0x000001f958fcf110 DEOPT UNPACKING pc=0x000001f967ce2b43 sp=0x00000062df6fd8e8 mode 0 +Event: 10.177 Thread 0x000001f958fcf110 DEOPT PACKING pc=0x000001f960c2c725 sp=0x00000062df6fe450 +Event: 10.177 Thread 0x000001f958fcf110 DEOPT UNPACKING pc=0x000001f967ce2b43 sp=0x00000062df6fd8e8 mode 0 +Event: 10.185 Thread 0x000001f90ec7c340 Uncommon trap: trap_request=0xffffff45 fr.pc=0x000001f96847ee4c relative=0x0000000000000eac +Event: 10.185 Thread 0x000001f90ec7c340 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000001f96847ee4c method=java.util.concurrent.ConcurrentHashMap.putVal(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/lang/Object; @ 97 c2 +Event: 10.185 Thread 0x000001f90ec7c340 DEOPT PACKING pc=0x000001f96847ee4c sp=0x00000062e36fe020 +Event: 10.185 Thread 0x000001f90ec7c340 DEOPT UNPACKING pc=0x000001f967ce23a3 sp=0x00000062e36fdfa8 mode 2 + +Classes unloaded (0 events): +No events + +Classes redefined (0 events): +No events + +Internal exceptions (20 events): +Event: 0.598 Thread 0x000001f958fcf110 Exception (0x0000000718497e88) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 0.598 Thread 0x000001f958fcf110 Exception (0x00000007184981e8) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 0.659 Thread 0x000001f958fcf110 Exception (0x00000007185340a0) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 0.660 Thread 0x000001f958fcf110 Exception (0x0000000718534420) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 1.812 Thread 0x000001f958fcf110 Exception (0x00000007185849c8) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 2.209 Thread 0x000001f958fcf110 Exception (0x00000007182c0b10) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 2.209 Thread 0x000001f958fcf110 Exception (0x00000007182c0eb8) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 2.213 Thread 0x000001f958fcf110 Exception (0x00000007182cc480) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 2.213 Thread 0x000001f958fcf110 Exception (0x00000007182cc760) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 2.482 Thread 0x000001f958fcf110 Exception (0x00000007181f7ae0) +thrown [s\open\src\hotspot\share\classfile\systemDictionary.cpp, line 256] +Event: 2.514 Thread 0x000001f958fcf110 Exception (0x0000000717e7ea38) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 2.550 Thread 0x000001f958fcf110 Exception (0x0000000717ecd588) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 2.553 Thread 0x000001f958fcf110 Exception (0x0000000717ed79a8) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 5.702 Thread 0x000001f958fcf110 Implicit null exception at 0x000001f968454d96 to 0x000001f968455020 +Event: 7.962 Thread 0x000001f958fcf110 Exception (0x00000007181333f0) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 8.099 Thread 0x000001f958fcf110 Exception (0x00000007181de8d8) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 10.113 Thread 0x000001f958fcf110 Exception (0x0000000716ecaaf0) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 10.116 Thread 0x000001f958fcf110 Exception (0x0000000716ed9100) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 10.117 Thread 0x000001f958fcf110 Exception (0x0000000716ee2878) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 10.273 Thread 0x000001f958fcf110 Exception (0x00000007168c2e40) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] + +VM Operations (20 events): +Event: 5.121 Executing VM operation: Cleanup +Event: 5.121 Executing VM operation: Cleanup done +Event: 6.122 Executing VM operation: Cleanup +Event: 6.122 Executing VM operation: Cleanup done +Event: 8.080 Executing VM operation: HandshakeAllThreads +Event: 8.080 Executing VM operation: HandshakeAllThreads done +Event: 8.080 Executing VM operation: Cleanup +Event: 8.080 Executing VM operation: Cleanup done +Event: 9.108 Executing VM operation: G1CollectForAllocation +Event: 9.113 Executing VM operation: G1CollectForAllocation done +Event: 9.911 Executing VM operation: HandshakeAllThreads +Event: 9.911 Executing VM operation: HandshakeAllThreads done +Event: 10.084 Executing VM operation: HandshakeAllThreads +Event: 10.084 Executing VM operation: HandshakeAllThreads done +Event: 10.182 Executing VM operation: HandshakeAllThreads +Event: 10.182 Executing VM operation: HandshakeAllThreads done +Event: 10.183 Executing VM operation: Cleanup +Event: 10.183 Executing VM operation: Cleanup done +Event: 10.216 Executing VM operation: HandshakeAllThreads +Event: 10.216 Executing VM operation: HandshakeAllThreads done + +Events (20 events): +Event: 10.207 loading class java/lang/constant/DynamicConstantDesc$AnonymousDynamicConstantDesc +Event: 10.207 loading class java/lang/constant/DynamicConstantDesc$AnonymousDynamicConstantDesc done +Event: 10.234 loading class java/net/NetworkInterface$1 +Event: 10.234 loading class java/net/NetworkInterface$1 done +Event: 10.256 loading class java/nio/file/Files$AcceptAllFilter +Event: 10.256 loading class java/nio/file/DirectoryStream$Filter +Event: 10.256 loading class java/nio/file/DirectoryStream$Filter done +Event: 10.256 loading class java/nio/file/Files$AcceptAllFilter done +Event: 10.256 loading class sun/nio/fs/WindowsDirectoryStream$WindowsDirectoryIterator +Event: 10.256 loading class sun/nio/fs/WindowsDirectoryStream$WindowsDirectoryIterator done +Event: 10.257 loading class sun/nio/fs/WindowsPath$WindowsPathWithAttributes +Event: 10.257 loading class sun/nio/fs/BasicFileAttributesHolder +Event: 10.257 loading class sun/nio/fs/BasicFileAttributesHolder done +Event: 10.257 loading class sun/nio/fs/WindowsPath$WindowsPathWithAttributes done +Event: 10.275 loading class sun/security/provider/AbstractDrbg$NonceProvider +Event: 10.275 loading class sun/security/provider/AbstractDrbg$NonceProvider done +Event: 10.275 loading class sun/security/provider/SHA2$SHA256 +Event: 10.275 loading class sun/security/provider/SHA2 +Event: 10.275 loading class sun/security/provider/SHA2 done +Event: 10.275 loading class sun/security/provider/SHA2$SHA256 done + + +Dynamic libraries: +0x00007ff6473f0000 - 0x00007ff647400000 C:\Program Files\Java\jdk-17\bin\java.exe +0x00007ffba77b0000 - 0x00007ffba79a8000 C:\Windows\SYSTEM32\ntdll.dll +0x00007ffba7300000 - 0x00007ffba73bd000 C:\Windows\System32\KERNEL32.DLL +0x00007ffba4f20000 - 0x00007ffba5216000 C:\Windows\System32\KERNELBASE.dll +0x00007ffba5220000 - 0x00007ffba5320000 C:\Windows\System32\ucrtbase.dll +0x00007ffb93320000 - 0x00007ffb93338000 C:\Program Files\Java\jdk-17\bin\jli.dll +0x00007ffb932e0000 - 0x00007ffb932fb000 C:\Program Files\Java\jdk-17\bin\VCRUNTIME140.dll +0x00007ffba7250000 - 0x00007ffba72fe000 C:\Windows\System32\ADVAPI32.dll +0x00007ffba5810000 - 0x00007ffba58ae000 C:\Windows\System32\msvcrt.dll +0x00007ffba58b0000 - 0x00007ffba594c000 C:\Windows\System32\sechost.dll +0x00007ffba60e0000 - 0x00007ffba6206000 C:\Windows\System32\RPCRT4.dll +0x00007ffba73c0000 - 0x00007ffba755e000 C:\Windows\System32\USER32.dll +0x00007ffb9a290000 - 0x00007ffb9a52a000 C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_60b5254171f9507e\COMCTL32.dll +0x00007ffba53f0000 - 0x00007ffba5412000 C:\Windows\System32\win32u.dll +0x00007ffba6210000 - 0x00007ffba623c000 C:\Windows\System32\GDI32.dll +0x00007ffba5640000 - 0x00007ffba575a000 C:\Windows\System32\gdi32full.dll +0x00007ffba5350000 - 0x00007ffba53ed000 C:\Windows\System32\msvcp_win.dll +0x00007ffb98ea0000 - 0x00007ffb98eaa000 C:\Windows\SYSTEM32\VERSION.dll +0x00007ffba6250000 - 0x00007ffba6280000 C:\Windows\System32\IMM32.DLL +0x00007ffb95130000 - 0x00007ffb9513c000 C:\Program Files\Java\jdk-17\bin\vcruntime140_1.dll +0x00007ffb74be0000 - 0x00007ffb74c6e000 C:\Program Files\Java\jdk-17\bin\msvcp140.dll +0x00007ffb5a8f0000 - 0x00007ffb5b4c7000 C:\Program Files\Java\jdk-17\bin\server\jvm.dll +0x00007ffba6240000 - 0x00007ffba6248000 C:\Windows\System32\PSAPI.DLL +0x00007ffb98e70000 - 0x00007ffb98e97000 C:\Windows\SYSTEM32\WINMM.dll +0x00007ffb84120000 - 0x00007ffb84129000 C:\Windows\SYSTEM32\WSOCK32.dll +0x00007ffba71e0000 - 0x00007ffba724b000 C:\Windows\System32\WS2_32.dll +0x00007ffba36e0000 - 0x00007ffba36f2000 C:\Windows\SYSTEM32\kernel.appcore.dll +0x00007ffb95040000 - 0x00007ffb9504a000 C:\Program Files\Java\jdk-17\bin\jimage.dll +0x00007ffba2bb0000 - 0x00007ffba2d94000 C:\Windows\SYSTEM32\DBGHELP.DLL +0x00007ffb96480000 - 0x00007ffb964b4000 C:\Windows\SYSTEM32\dbgcore.DLL +0x00007ffba4e90000 - 0x00007ffba4f12000 C:\Windows\System32\bcryptPrimitives.dll +0x00007ffb81d60000 - 0x00007ffb81d85000 C:\Program Files\Java\jdk-17\bin\java.dll +0x00007ffb6f9c0000 - 0x00007ffb6fa97000 C:\Program Files\Java\jdk-17\bin\jsvml.dll +0x00007ffba63f0000 - 0x00007ffba6b35000 C:\Windows\System32\SHELL32.dll +0x00007ffba2f00000 - 0x00007ffba369b000 C:\Windows\SYSTEM32\windows.storage.dll +0x00007ffba5c50000 - 0x00007ffba5fa4000 C:\Windows\System32\combase.dll +0x00007ffba4860000 - 0x00007ffba488e000 C:\Windows\SYSTEM32\Wldp.dll +0x00007ffba6b40000 - 0x00007ffba6bed000 C:\Windows\System32\SHCORE.dll +0x00007ffba5b20000 - 0x00007ffba5b75000 C:\Windows\System32\shlwapi.dll +0x00007ffba4dc0000 - 0x00007ffba4de5000 C:\Windows\SYSTEM32\profapi.dll +0x00007ffb84150000 - 0x00007ffb84169000 C:\Program Files\Java\jdk-17\bin\net.dll +0x00007ffb9f190000 - 0x00007ffb9f29a000 C:\Windows\SYSTEM32\WINHTTP.dll +0x0000000180000000 - 0x000000018008c000 C:\Windows\system32\ASProxy64.dll +0x00007ffba5fb0000 - 0x00007ffba60da000 C:\Windows\System32\ole32.dll +0x00007ffba5b80000 - 0x00007ffba5c4d000 C:\Windows\System32\OLEAUT32.dll +0x00007ffba42b0000 - 0x00007ffba42eb000 C:\Windows\SYSTEM32\IPHLPAPI.DLL +0x00007ffba45c0000 - 0x00007ffba462a000 C:\Windows\SYSTEM32\MSWSOCK.dll +0x00007ffba4d40000 - 0x00007ffba4d72000 C:\Windows\SYSTEM32\SspiCli.dll +0x00007ffb83d50000 - 0x00007ffb83d66000 C:\Program Files\Java\jdk-17\bin\nio.dll +0x00007ffb83bb0000 - 0x00007ffb83bc8000 C:\Program Files\Java\jdk-17\bin\zip.dll +0x00007ffba2120000 - 0x00007ffba21be000 C:\Windows\system32\uxtheme.dll +0x00007ffb94c00000 - 0x00007ffb94c10000 C:\Program Files\Java\jdk-17\bin\verify.dll +0x0000000050410000 - 0x0000000050439000 C:\Users\isaac\AppData\Local\Temp\libgdxisaac\e787ab0a\gdx64.dll +0x00007ffb83c80000 - 0x00007ffb83cf5000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\lwjgl.dll +0x00007ffb5f670000 - 0x00007ffb5f8c9000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\jemalloc.dll +0x00007ffb77370000 - 0x00007ffb773d1000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\glfw.dll +0x00007ffb7e950000 - 0x00007ffb7e995000 C:\Windows\SYSTEM32\dinput8.dll +0x00007ffb9d440000 - 0x00007ffb9d451000 C:\Windows\SYSTEM32\xinput1_4.dll +0x00007ffba5420000 - 0x00007ffba546e000 C:\Windows\System32\cfgmgr32.dll +0x00007ffba4c40000 - 0x00007ffba4c73000 C:\Windows\SYSTEM32\DEVOBJ.dll +0x00007ffba24b0000 - 0x00007ffba24df000 C:\Windows\SYSTEM32\dwmapi.dll +0x00007ffb7c850000 - 0x00007ffb7c9a2000 C:\Windows\SYSTEM32\inputhost.dll +0x00007ffba0590000 - 0x00007ffba06e5000 C:\Windows\SYSTEM32\wintypes.dll +0x00007ffba1d30000 - 0x00007ffba1e22000 C:\Windows\SYSTEM32\CoreMessaging.dll +0x00007ffba2da0000 - 0x00007ffba2e96000 C:\Windows\SYSTEM32\PROPSYS.dll +0x00007ffba1650000 - 0x00007ffba19ae000 C:\Windows\SYSTEM32\CoreUIComponents.dll +0x00007ffba3fe0000 - 0x00007ffba4013000 C:\Windows\SYSTEM32\ntmarta.dll +0x00007ffba7570000 - 0x00007ffba7684000 C:\Windows\System32\MSCTF.dll +0x00007ffb6c360000 - 0x00007ffb6c4f7000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\OpenAL.dll +0x00007ffba6bf0000 - 0x00007ffba6c99000 C:\Windows\System32\clbcatq.dll +0x00007ffb9d930000 - 0x00007ffb9d9b5000 C:\Windows\System32\MMDevApi.dll +0x00007ffb9d2a0000 - 0x00007ffb9d422000 C:\Windows\SYSTEM32\AUDIOSES.DLL +0x00007ffba4bd0000 - 0x00007ffba4c1b000 C:\Windows\SYSTEM32\powrprof.dll +0x00007ffba4bb0000 - 0x00007ffba4bc2000 C:\Windows\SYSTEM32\UMPDC.dll +0x00007ffba24e0000 - 0x00007ffba24f4000 C:\Windows\SYSTEM32\resourcepolicyclient.dll +0x00007ffb69540000 - 0x00007ffb69665000 C:\Windows\SYSTEM32\opengl32.dll +0x00007ffb94f50000 - 0x00007ffb94f7c000 C:\Windows\SYSTEM32\GLU32.dll +0x00007ffb9c490000 - 0x00007ffb9c592000 C:\Windows\System32\AppXDeploymentClient.dll +0x00007ffb93280000 - 0x00007ffb932aa000 C:\Windows\System32\DriverStore\FileRepository\u0363312.inf_amd64_08fc5018b1b99545\B363211\atig6pxx.dll +0x00007ffb55350000 - 0x00007ffb580f5000 C:\Windows\System32\DriverStore\FileRepository\u0363312.inf_amd64_08fc5018b1b99545\B363211\atio6axx.dll +0x00007ffba6d10000 - 0x00007ffba717e000 C:\Windows\System32\SETUPAPI.dll +0x00007ffba5320000 - 0x00007ffba5347000 C:\Windows\System32\bcrypt.dll +0x00007ffb94f20000 - 0x00007ffb94f44000 C:\Windows\SYSTEM32\dxva2.dll +0x00007ffb83e90000 - 0x00007ffb83ecc000 C:\Windows\System32\DriverStore\FileRepository\u0363312.inf_amd64_08fc5018b1b99545\B363211\atig6txx.dll +0x00007ffb5eab0000 - 0x00007ffb5ec6f000 C:\Windows\SYSTEM32\atiadlxx.dll +0x00007ffba55d0000 - 0x00007ffba5637000 C:\Windows\System32\WINTRUST.dll +0x00007ffba5470000 - 0x00007ffba55ce000 C:\Windows\System32\CRYPT32.dll +0x00007ffba49f0000 - 0x00007ffba4a02000 C:\Windows\SYSTEM32\MSASN1.dll +0x00007ffb9eba0000 - 0x00007ffb9ebdb000 C:\Windows\SYSTEM32\dxcore.dll +0x00007ffb752f0000 - 0x00007ffb7534d000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\lwjgl_opengl.dll +0x00007ffb7c9b0000 - 0x00007ffb7caaa000 C:\Windows\SYSTEM32\textinputframework.dll +0x00007ffb7f310000 - 0x00007ffb7f376000 C:\Windows\system32\Oleacc.dll +0x00007ffb72850000 - 0x00007ffb72b45000 C:\Windows\System32\uiautomationcore.dll +0x00007ffba47d0000 - 0x00007ffba47dc000 C:\Windows\SYSTEM32\CRYPTBASE.DLL +0x00000000503b0000 - 0x000000005040a000 C:\Users\isaac\AppData\Local\Temp\libgdxisaac\888fe1bc\gdx-box2d64.dll +0x00007ffba47b0000 - 0x00007ffba47c8000 C:\Windows\SYSTEM32\CRYPTSP.dll +0x00007ffba3ec0000 - 0x00007ffba3ef4000 C:\Windows\system32\rsaenh.dll +0x00007ffba4d80000 - 0x00007ffba4dae000 C:\Windows\SYSTEM32\USERENV.dll +0x00007ffba6d00000 - 0x00007ffba6d08000 C:\Windows\System32\NSI.dll +0x00007ffb9b8c0000 - 0x00007ffb9b8d7000 C:\Windows\SYSTEM32\dhcpcsvc6.DLL +0x00007ffb9ce90000 - 0x00007ffb9cead000 C:\Windows\SYSTEM32\dhcpcsvc.DLL +0x00007ffba42f0000 - 0x00007ffba43ba000 C:\Windows\SYSTEM32\DNSAPI.dll + +dbghelp: loaded successfully - version: 4.0.5 - missing functions: none +symbol engine: initialized successfully - sym options: 0x614 - pdb path: .;C:\Program Files\Java\jdk-17\bin;C:\Windows\SYSTEM32;C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_60b5254171f9507e;C:\Program Files\Java\jdk-17\bin\server;C:\Users\isaac\AppData\Local\Temp\libgdxisaac\e787ab0a;C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7;C:\Windows\System32\DriverStore\FileRepository\u0363312.inf_amd64_08fc5018b1b99545\B363211;C:\Users\isaac\AppData\Local\Temp\libgdxisaac\888fe1bc + +VM Arguments: +jvm_args: -XX:+ShowCodeDetailsInExceptionMessages +java_command: com.csse3200.game.desktop.DesktopLauncher +java_class_path (initial): C:\Users\isaac\OneDrive\Documents\School\University of Queensland\UQ 2023\UQ 2023 Semester 2\CSSE3200\2023-studio-3\source\desktop\bin\main;\csse3200-game-core\bin\default;C:\Users\isaac\OneDrive\Documents\School\University of Queensland\UQ 2023\UQ 2023 Semester 2\CSSE3200\2023-studio-3\source\core\bin\main;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-backend-lwjgl3\1.11.0\58a96db4cd349be4292d547856aa1e1c5f065f4e\gdx-backend-lwjgl3-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-platform\1.11.0\697fb13eada6d3c6ca648c9788692b0159add126\gdx-platform-1.11.0-natives-desktop.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-box2d-platform\1.11.0\62ff9baa1e57a11e0a4428a38c9660bf9f312fdc\gdx-box2d-platform-1.11.0-natives-desktop.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-tools\1.11.0\a5d30eafd0f2fbab314efdf6d98ebc27388b7c0a\gdx-tools-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx-controllers\gdx-controllers-desktop\2.2.2\625b3bdbe803e9c4af181b4791202cfcf776d805\gdx-controllers-desktop-2.2.2.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-backend-lwjgl\1.11.0\33555a2cf8b4d9db4122b2fe42e7674b343d8b4\gdx-backend-lwjgl-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-freetype\1.11.0\a3634ad2e6c56d251268d6ab5c0f66eee2841f2c\gdx-freetype-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-backend-headless\1.11.0\3c3d0c951db72891d894df1725d09179fd0bca00\gdx-backend-headless-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\net.dermetfan.libgdx-utils\libgdx-utils-box2d\0.13.4\918d79a20ea3c898cdb3611782c5b2bfa6ec575b\libgdx-utils-box2d-0.13.4.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-box2d\1.11.0\ad4facee800dd945d6d6e93dea2936bc135b +Launcher Type: SUN_STANDARD + +[Global flags] + intx CICompilerCount = 12 {product} {ergonomic} + uint ConcGCThreads = 3 {product} {ergonomic} + uint G1ConcRefinementThreads = 13 {product} {ergonomic} + size_t G1HeapRegionSize = 2097152 {product} {ergonomic} + uintx GCDrainStackTargetSize = 64 {product} {ergonomic} + size_t InitialHeapSize = 260046848 {product} {ergonomic} + size_t MarkStackSize = 4194304 {product} {ergonomic} + size_t MaxHeapSize = 4135583744 {product} {ergonomic} + size_t MaxNewSize = 2480930816 {product} {ergonomic} + size_t MinHeapDeltaBytes = 2097152 {product} {ergonomic} + size_t MinHeapSize = 8388608 {product} {ergonomic} + uintx NonNMethodCodeHeapSize = 7602480 {pd product} {ergonomic} + uintx NonProfiledCodeHeapSize = 122027880 {pd product} {ergonomic} + uintx ProfiledCodeHeapSize = 122027880 {pd product} {ergonomic} + uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} + bool SegmentedCodeCache = true {product} {ergonomic} + bool ShowCodeDetailsInExceptionMessages = true {manageable} {command line} + size_t SoftMaxHeapSize = 4135583744 {manageable} {ergonomic} + bool UseCompressedClassPointers = true {product lp64_product} {ergonomic} + bool UseCompressedOops = true {product lp64_product} {ergonomic} + bool UseG1GC = true {product} {ergonomic} + bool UseLargePagesIndividualAllocation = false {pd product} {ergonomic} + +Logging: +Log output configuration: + #0: stdout all=warning uptime,level,tags + #1: stderr all=off uptime,level,tags + +Environment Variables: +PATH=C:\Users\isaac\bin;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\local\bin;C:\Program Files\Git\usr\bin;C:\Program Files\Git\usr\bin;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Users\isaac\bin;C:\Program Files\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn;C:\Program Files (x86)\Microsoft SQL Server\150\Tools\Binn;C:\Program Files\Microsoft SQL Server\150\Tools\Binn;C:\Program Files\Microsoft SQL Server\150\DTS\Binn;C:\Program Files (x86)\Microsoft SQL Server\150\DTS\Binn;C:\Program Files\Azure Data Studio\bin;C:\Program Files\Git\cmd;C:\Program Files\PuTTY;C:\Program Files (x86)\Pololu\USB AVR Programmer v2\bin;C:\Program Files\nodejs;C:\Users\isaac\AppData\Local\Programs\Python\Python310\Scripts;C:\Users\isaac\AppData\Local\Programs\Python\Python310;C:\Users\isaac\AppData\Local\Microsoft\WindowsApps;C:\Users\isaac\AppData\Local\Programs\Microsoft VS Code\bin;C:\Program Files\Azure Data Studio\bin;C:\Users\isaac\AppData\Roaming\npm;C:\Program Files\Git\usr\bin\vendor_perl;C:\Program Files\Git\usr\bin\core_perl +USERNAME=isaac +SHELL=C:\Program Files\Git\usr\bin\bash.exe +DISPLAY=needs-to-be-defined +LANG=en_US.UTF-8 +OS=Windows_NT +PROCESSOR_IDENTIFIER=AMD64 Family 23 Model 104 Stepping 1, AuthenticAMD + + + +--------------- S Y S T E M --------------- + +OS: + Windows 10 , 64 bit Build 19041 (10.0.19041.3393) +OS uptime: 8 days 4:51 hours + +CPU: total 16 (initial active 16) (16 cores per cpu, 2 threads per core) family 23 model 104 stepping 1 microcode 0x0, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4a, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, clmul, bmi1, bmi2, adx, sha, fma, vzeroupper, clflush, clflushopt + +Memory: 4k page, system-wide physical 15769M (5041M free) +TotalPageFile size 19865M (AvailPageFile size 2918M) +current process WorkingSet (physical memory assigned to process): 462M, peak: 474M +current process commit charge ("private bytes"): 761M, peak: 775M + +vm_info: Java HotSpot(TM) 64-Bit Server VM (17.0.6+9-LTS-190) for windows-amd64 JRE (17.0.6+9-LTS-190), built on Dec 6 2022 15:53:54 by "mach5one" with MS VC++ 17.1 (VS2022) + +END. diff --git a/hs_err_pid26164.log b/hs_err_pid26164.log new file mode 100644 index 000000000..597e5479d --- /dev/null +++ b/hs_err_pid26164.log @@ -0,0 +1,860 @@ +# +# A fatal error has been detected by the Java Runtime Environment: +# +# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000000503eb9e2, pid=26164, tid=14356 +# +# JRE version: Java(TM) SE Runtime Environment (17.0.6+9) (build 17.0.6+9-LTS-190) +# Java VM: Java HotSpot(TM) 64-Bit Server VM (17.0.6+9-LTS-190, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64) +# Problematic frame: +# C [gdx-box2d64.dll+0x3b9e2] +# +# 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: +# https://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: -XX:+ShowCodeDetailsInExceptionMessages com.csse3200.game.desktop.DesktopLauncher + +Host: AMD Ryzen 7 5700U with Radeon Graphics , 16 cores, 15G, Windows 10 , 64 bit Build 19041 (10.0.19041.3393) +Time: Wed Sep 27 17:55:38 2023 E. Australia Standard Time elapsed time: 25.131595 seconds (0d 0h 0m 25s) + +--------------- T H R E A D --------------- + +Current thread (0x00000233200d0ae0): JavaThread "main" [_thread_in_native, id=14356, stack(0x000000be0c800000,0x000000be0c900000)] + +Stack: [0x000000be0c800000,0x000000be0c900000], sp=0x000000be0c8fe9e0, free space=1018k +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) +C [gdx-box2d64.dll+0x3b9e2] + +Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) +J 2417 com.badlogic.gdx.physics.box2d.World.jniRayCast(JFFFF)V (0 bytes) @ 0x000002332f6143f9 [0x000002332f6143a0+0x0000000000000059] +J 2799 c2 com.csse3200.game.components.tasks.StunTowerCombatTask.getPriority()I (16 bytes) @ 0x000002332f685dd4 [0x000002332f685ca0+0x0000000000000134] +J 2854 c2 com.csse3200.game.ai.tasks.AITaskComponent.update()V (42 bytes) @ 0x000002332f6a1fec [0x000002332f6a1e00+0x00000000000001ec] +J 2826 c2 com.csse3200.game.entities.EntityService.update()V (39 bytes) @ 0x000002332f69358c [0x000002332f6932c0+0x00000000000002cc] +J 2708 c1 com.csse3200.game.screens.MainGameScreen.render(F)V (122 bytes) @ 0x0000023327ea487c [0x0000023327ea4200+0x000000000000067c] +J 2554 c1 com.badlogic.gdx.backends.lwjgl3.Lwjgl3Window.update()Z (217 bytes) @ 0x0000023327e5f67c [0x0000023327e5e900+0x0000000000000d7c] +j com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.loop()V+111 +j com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.(Lcom/badlogic/gdx/ApplicationListener;Lcom/badlogic/gdx/backends/lwjgl3/Lwjgl3ApplicationConfiguration;)V+269 +j com.csse3200.game.desktop.DesktopLauncher.main([Ljava/lang/String;)V+19 +v ~StubRoutines::call_stub + +siginfo: EXCEPTION_ACCESS_VIOLATION (0xc0000005), reading address 0x0000000000000000 + + +Register to memory mapping: + +RIP=0x00000000503eb9e2 gdx-box2d64.dll +RAX=0x000002334ee33f80 points into unknown readable memory: 0x000002334ee34f00 | 00 4f e3 4e 33 02 00 00 +RBX=0x000002334ee2ca60 points into unknown readable memory: 0x000002334ee2f8e0 | e0 f8 e2 4e 33 02 00 00 +RCX=0x0 is NULL +RDX=0x000002334ee3caa0 points into unknown readable memory: 0x000002334ee3dee0 | e0 de e3 4e 33 02 00 00 +RSP=0x000000be0c8fe9e0 is pointing into the stack for thread: 0x00000233200d0ae0 +RBP=0x000002334374b740 points into unknown readable memory: 0x0000000000000132 | 32 01 00 00 00 00 00 00 +RSI=0x000000be0c8fea34 is pointing into the stack for thread: 0x00000233200d0ae0 +RDI=0x000000be0c8fea68 is pointing into the stack for thread: 0x00000233200d0ae0 +R8 =0x0 is NULL +R9 =0x000002334ee28c9c points into unknown readable memory: 4f 0f a9 40 +R10=0x00000233200c9570 points into unknown readable memory: 0x0000004000000001 | 01 00 00 00 40 00 00 00 +R11=0x000000be0c8fe920 is pointing into the stack for thread: 0x00000233200d0ae0 +R12=0x000000be0c8fef90 is pointing into the stack for thread: 0x00000233200d0ae0 +R13=0x000000be0c8fea60 is pointing into the stack for thread: 0x00000233200d0ae0 +R14=0x000000be0c8fef80 is pointing into the stack for thread: 0x00000233200d0ae0 +R15=0x000000be0c8fea40 is pointing into the stack for thread: 0x00000233200d0ae0 + + +Registers: +RAX=0x000002334ee33f80, RBX=0x000002334ee2ca60, RCX=0x0000000000000000, RDX=0x000002334ee3caa0 +RSP=0x000000be0c8fe9e0, RBP=0x000002334374b740, RSI=0x000000be0c8fea34, RDI=0x000000be0c8fea68 +R8 =0x0000000000000000, R9 =0x000002334ee28c9c, R10=0x00000233200c9570, R11=0x000000be0c8fe920 +R12=0x000000be0c8fef90, R13=0x000000be0c8fea60, R14=0x000000be0c8fef80, R15=0x000000be0c8fea40 +RIP=0x00000000503eb9e2, EFLAGS=0x0000000000010283 + +Top of Stack: (sp=0x000000be0c8fe9e0) +0x000000be0c8fe9e0: 0000000000000000 0000000000000000 +0x000000be0c8fe9f0: 0000000000000000 00000000503bc593 +0x000000be0c8fea00: 000000be00000000 00000000503e3ced +0x000000be0c8fea10: 800000003f800000 3f8000003f800000 +0x000000be0c8fea20: 000002334ee28150 40e68c92867c5fb9 +0x000000be0c8fea30: bf80000040200000 3e120a0f00000000 +0x000000be0c8fea40: 402000003fc00000 4020000042260000 +0x000000be0c8fea50: 000000003f800000 000000be0c8ff748 +0x000000be0c8fea60: 000000be0c8fea68 0000011a00000070 +0x000000be0c8fea70: 0000005700000230 0000001b00000094 +0x000000be0c8fea80: 00000143000001df 0000000040000000 +0x000000be0c8fea90: 00000000400c17e2 4105152c00000000 +0x000000be0c8feaa0: 0000000000000000 4105152c400c17e2 +0x000000be0c8feab0: 4000000000000000 800000003f800000 +0x000000be0c8feac0: 0000000080000000 0000000000000000 +0x000000be0c8fead0: 3dcccccd41200000 000000004f149810 + +Instructions: (pc=0x00000000503eb9e2) +0x00000000503eb8e2: 0f 28 bc 24 a0 04 00 00 44 0f 28 84 24 b0 04 00 +0x00000000503eb8f2: 00 44 0f 28 8c 24 c0 04 00 00 44 0f 28 94 24 d0 +0x00000000503eb902: 04 00 00 44 0f 28 9c 24 e0 04 00 00 44 0f 28 a4 +0x00000000503eb912: 24 f0 04 00 00 44 0f 28 ac 24 00 05 00 00 44 0f +0x00000000503eb922: 28 b4 24 10 05 00 00 44 0f 28 bc 24 20 05 00 00 +0x00000000503eb932: 48 81 c4 38 05 00 00 5b 5e 5f 5d 41 5c 41 5d 41 +0x00000000503eb942: 5e 41 5f c3 66 2e 0f 1f 84 00 00 00 00 00 45 0f +0x00000000503eb952: 28 d3 f3 44 0f 11 64 24 30 e9 3a fd ff ff 48 8d +0x00000000503eb962: 15 71 5f 00 00 48 8d 0d d9 60 00 00 41 b8 d1 00 +0x00000000503eb972: 00 00 e8 17 82 ff ff e9 da fc ff ff 66 90 49 8b +0x00000000503eb982: 04 24 f3 0f 10 5c 24 3c 85 d2 f3 0f 11 5c 24 70 +0x00000000503eb992: 49 8b 36 48 89 44 24 60 49 8b 44 24 08 48 89 44 +0x00000000503eb9a2: 24 68 78 05 3b 56 14 7c 19 48 8d 15 26 5f 00 00 +0x00000000503eb9b2: 48 8d 0d 47 5f 00 00 41 b8 9e 00 00 00 e8 cc 81 +0x00000000503eb9c2: ff ff 48 8b 46 08 48 8d 74 24 54 48 8b 44 18 10 +0x00000000503eb9d2: 48 8b 58 10 44 8b 40 18 48 8b 4b 18 48 8b 53 10 +0x00000000503eb9e2: 48 8b 01 4c 8d 4a 0c 44 89 44 24 20 48 89 f2 4d +0x00000000503eb9f2: 89 f8 ff 50 28 84 c0 f3 0f 10 44 24 70 0f 85 37 +0x00000000503eba02: 01 00 00 0f 2e c6 7a 06 0f 84 a1 01 00 00 0f 2e +0x00000000503eba12: c6 76 4f 45 0f 28 cb 45 0f 28 c4 41 0f 28 df f3 +0x00000000503eba22: 44 0f 59 c8 45 0f 28 ef f3 44 0f 59 c0 41 0f 28 +0x00000000503eba32: fe f3 45 0f 58 cf f3 45 0f 58 c6 f3 41 0f 5f d9 +0x00000000503eba42: 45 0f 2e f0 f3 45 0f 5d e9 f3 41 0f 5d f8 44 0f +0x00000000503eba52: 28 cb 0f 86 4c 01 00 00 45 0f 28 c6 f3 0f 11 44 +0x00000000503eba62: 24 3c 8b 84 24 88 04 00 00 48 8b bc 24 80 00 00 +0x00000000503eba72: 00 85 c0 0f 8f e6 fc ff ff e9 48 fe ff ff 8d 14 +0x00000000503eba82: 00 8d 0c c5 00 00 00 00 89 94 24 8c 04 00 00 e8 +0x00000000503eba92: da 07 fd ff 4c 63 84 24 88 04 00 00 48 89 fa 48 +0x00000000503ebaa2: 89 c1 48 89 84 24 80 00 00 00 49 c1 e0 02 e8 03 +0x00000000503ebab2: d4 ff ff 49 8d 45 08 48 39 c7 74 08 48 89 f9 e8 +0x00000000503ebac2: ba 07 fd ff 48 8b bc 24 80 00 00 00 8b 84 24 88 +0x00000000503ebad2: 04 00 00 e9 c8 fd ff ff 8d 14 00 8d 0c c5 00 00 + + +Stack slot to memory mapping: +stack at sp + 0 slots: 0x0 is NULL +stack at sp + 1 slots: 0x0 is NULL +stack at sp + 2 slots: 0x0 is NULL +stack at sp + 3 slots: 0x00000000503bc593 gdx-box2d64.dll +stack at sp + 4 slots: 0x000000be00000000 is an unknown value +stack at sp + 5 slots: 0x00000000503e3ced gdx-box2d64.dll +stack at sp + 6 slots: 0x800000003f800000 is an unknown value +stack at sp + 7 slots: 0x3f8000003f800000 is an unknown value + + +--------------- P R O C E S S --------------- + +Threads class SMR info: +_java_thread_list=0x0000023344b319c0, length=109, elements={ +0x00000233200d0ae0, 0x00000233433a1c00, 0x00000233433a2870, 0x00000233433be800, +0x0000023344000470, 0x0000023344000d30, 0x0000023344003600, 0x0000023344004390, +0x0000023344005650, 0x0000023344006f60, 0x000002334417e0c0, 0x0000023344192020, +0x000002334bd4a8e0, 0x000002334bc7c6f0, 0x000002334be9bd40, 0x00000233568b40e0, +0x0000023355d10700, 0x00000233200bf1d0, 0x00000233200bfb70, 0x00000233200c1380, +0x00000233200c0040, 0x00000233200c1850, 0x00000233200c0510, 0x00000233200c09e0, +0x00000233200c0eb0, 0x0000023355a42050, 0x0000023355a44200, 0x0000023355a45540, +0x0000023355a42520, 0x0000023355a429f0, 0x0000023355a42ec0, 0x0000023355a45070, +0x0000023355a45ee0, 0x0000023355a47bc0, 0x0000023355a43390, 0x0000023355a43d30, +0x0000023355a45a10, 0x0000023355a41b80, 0x0000023355a43860, 0x0000023355a40d10, +0x0000023355a446d0, 0x0000023355a44ba0, 0x0000023355a463b0, 0x0000023355a46d50, +0x0000023355a46880, 0x0000023355a416b0, 0x0000023355a47220, 0x0000023355a476f0, +0x0000023355a48560, 0x0000023355a411e0, 0x0000023346eb4970, 0x0000023346eb57e0, +0x0000023346eb0ae0, 0x0000023346eb6180, 0x0000023346eb5cb0, 0x0000023346eaf7a0, +0x0000023346eb0fb0, 0x0000023346eb2c90, 0x0000023346eb5310, 0x0000023346eafc70, +0x0000023346eb6650, 0x0000023346eb4e40, 0x0000023346eb22f0, 0x0000023346eaf2d0, +0x0000023346eb0140, 0x0000023346eb1480, 0x0000023346eb0610, 0x0000023346eb1e20, +0x0000023346eb6b20, 0x0000023346eb3b00, 0x0000023346eb27c0, 0x0000023346eb3160, +0x0000023346eb3630, 0x0000023346eb3fd0, 0x0000023346eb44a0, 0x0000023346939ee0, +0x000002334693d3d0, 0x000002334693a3b0, 0x000002334693c560, 0x0000023346939070, +0x0000023346935b80, 0x0000023346937d30, 0x0000023346939540, 0x000002334693ad50, +0x0000023346938200, 0x0000023346936520, 0x00000233469386d0, 0x0000023346936050, +0x00000233469369f0, 0x0000023346939a10, 0x0000023346936ec0, 0x0000023346938ba0, +0x000002334693a880, 0x000002334693b220, 0x000002334693b6f0, 0x000002334693bbc0, +0x0000023346937390, 0x000002334693ca30, 0x000002334693cf00, 0x000002334693c090, +0x0000023346937860, 0x0000023355a48090, 0x000002334704a0b0, 0x0000023347051430, +0x000002334704a580, 0x000002334704aa50, 0x000002334704af20, 0x000002334704da70, +0x000002334704e8e0 +} + +Java Threads: ( => current thread ) +=>0x00000233200d0ae0 JavaThread "main" [_thread_in_native, id=14356, stack(0x000000be0c800000,0x000000be0c900000)] + 0x00000233433a1c00 JavaThread "Reference Handler" daemon [_thread_blocked, id=25564, stack(0x000000be0cf00000,0x000000be0d000000)] + 0x00000233433a2870 JavaThread "Finalizer" daemon [_thread_blocked, id=23412, stack(0x000000be0d000000,0x000000be0d100000)] + 0x00000233433be800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=7912, stack(0x000000be0d100000,0x000000be0d200000)] + 0x0000023344000470 JavaThread "Attach Listener" daemon [_thread_blocked, id=15140, stack(0x000000be0d200000,0x000000be0d300000)] + 0x0000023344000d30 JavaThread "Service Thread" daemon [_thread_blocked, id=23764, stack(0x000000be0d300000,0x000000be0d400000)] + 0x0000023344003600 JavaThread "Monitor Deflation Thread" daemon [_thread_blocked, id=1852, stack(0x000000be0d400000,0x000000be0d500000)] + 0x0000023344004390 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=4976, stack(0x000000be0d500000,0x000000be0d600000)] + 0x0000023344005650 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=14976, stack(0x000000be0d600000,0x000000be0d700000)] + 0x0000023344006f60 JavaThread "Sweeper thread" daemon [_thread_blocked, id=26236, stack(0x000000be0d700000,0x000000be0d800000)] + 0x000002334417e0c0 JavaThread "Notification Thread" daemon [_thread_blocked, id=17720, stack(0x000000be0d900000,0x000000be0da00000)] + 0x0000023344192020 JavaThread "Common-Cleaner" daemon [_thread_blocked, id=8752, stack(0x000000be0db00000,0x000000be0dc00000)] + 0x000002334bd4a8e0 JavaThread "AssetManager" daemon [_thread_blocked, id=17820, stack(0x000000be0f400000,0x000000be0f500000)] + 0x000002334bc7c6f0 JavaThread "LWJGL3 Timer" daemon [_thread_blocked, id=15920, stack(0x000000be0f300000,0x000000be0f400000)] + 0x000002334be9bd40 JavaThread "AssetManager" daemon [_thread_blocked, id=9884, stack(0x000000be0d800000,0x000000be0d900000)] + 0x00000233568b40e0 JavaThread "Timer-0" [_thread_blocked, id=8360, stack(0x000000be10800000,0x000000be10900000)] + 0x0000023355d10700 JavaThread "Timer" daemon [_thread_blocked, id=12580, stack(0x000000be10000000,0x000000be10100000)] + 0x00000233200bf1d0 JavaThread "Timer-1" [_thread_blocked, id=5000, stack(0x000000be0fe00000,0x000000be0ff00000)] + 0x00000233200bfb70 JavaThread "Timer-2" [_thread_blocked, id=24904, stack(0x000000be0ff00000,0x000000be10000000)] + 0x00000233200c1380 JavaThread "Timer-3" [_thread_blocked, id=26652, stack(0x000000be10100000,0x000000be10200000)] + 0x00000233200c0040 JavaThread "Timer-4" [_thread_blocked, id=10768, stack(0x000000be10300000,0x000000be10400000)] + 0x00000233200c1850 JavaThread "Timer-5" [_thread_blocked, id=5568, stack(0x000000be10400000,0x000000be10500000)] + 0x00000233200c0510 JavaThread "Timer-6" [_thread_blocked, id=3820, stack(0x000000be10500000,0x000000be10600000)] + 0x00000233200c09e0 JavaThread "Timer-7" [_thread_blocked, id=1652, stack(0x000000be10600000,0x000000be10700000)] + 0x00000233200c0eb0 JavaThread "Timer-8" [_thread_blocked, id=9032, stack(0x000000be10700000,0x000000be10800000)] + 0x0000023355a42050 JavaThread "Timer-9" [_thread_blocked, id=10548, stack(0x000000be10900000,0x000000be10a00000)] + 0x0000023355a44200 JavaThread "Timer-10" [_thread_blocked, id=11088, stack(0x000000be10a00000,0x000000be10b00000)] + 0x0000023355a45540 JavaThread "Timer-11" [_thread_blocked, id=15100, stack(0x000000be10b00000,0x000000be10c00000)] + 0x0000023355a42520 JavaThread "Timer-12" [_thread_blocked, id=2420, stack(0x000000be10c00000,0x000000be10d00000)] + 0x0000023355a429f0 JavaThread "Timer-13" [_thread_blocked, id=3120, stack(0x000000be10d00000,0x000000be10e00000)] + 0x0000023355a42ec0 JavaThread "Timer-14" [_thread_blocked, id=3960, stack(0x000000be10e00000,0x000000be10f00000)] + 0x0000023355a45070 JavaThread "Timer-15" [_thread_blocked, id=22252, stack(0x000000be10f00000,0x000000be11000000)] + 0x0000023355a45ee0 JavaThread "Timer-17" [_thread_blocked, id=18192, stack(0x000000be11100000,0x000000be11200000)] + 0x0000023355a47bc0 JavaThread "Timer-18" [_thread_blocked, id=7552, stack(0x000000be11200000,0x000000be11300000)] + 0x0000023355a43390 JavaThread "Timer-19" [_thread_blocked, id=3116, stack(0x000000be11300000,0x000000be11400000)] + 0x0000023355a43d30 JavaThread "Timer-20" [_thread_blocked, id=9012, stack(0x000000be11400000,0x000000be11500000)] + 0x0000023355a45a10 JavaThread "Timer-21" [_thread_blocked, id=26328, stack(0x000000be11500000,0x000000be11600000)] + 0x0000023355a41b80 JavaThread "Timer-22" [_thread_blocked, id=20956, stack(0x000000be11600000,0x000000be11700000)] + 0x0000023355a43860 JavaThread "Timer-23" [_thread_blocked, id=26232, stack(0x000000be11700000,0x000000be11800000)] + 0x0000023355a40d10 JavaThread "Timer-24" [_thread_blocked, id=7440, stack(0x000000be11800000,0x000000be11900000)] + 0x0000023355a446d0 JavaThread "Timer-25" [_thread_blocked, id=13392, stack(0x000000be11900000,0x000000be11a00000)] + 0x0000023355a44ba0 JavaThread "Timer-26" [_thread_blocked, id=22200, stack(0x000000be11a00000,0x000000be11b00000)] + 0x0000023355a463b0 JavaThread "Timer-27" [_thread_blocked, id=14680, stack(0x000000be11b00000,0x000000be11c00000)] + 0x0000023355a46d50 JavaThread "Timer-28" [_thread_blocked, id=16676, stack(0x000000be11c00000,0x000000be11d00000)] + 0x0000023355a46880 JavaThread "Timer-29" [_thread_blocked, id=17260, stack(0x000000be11d00000,0x000000be11e00000)] + 0x0000023355a416b0 JavaThread "Timer-30" [_thread_blocked, id=17256, stack(0x000000be11e00000,0x000000be11f00000)] + 0x0000023355a47220 JavaThread "Timer-31" [_thread_blocked, id=12880, stack(0x000000be11f00000,0x000000be12000000)] + 0x0000023355a476f0 JavaThread "Timer-32" [_thread_blocked, id=20784, stack(0x000000be12000000,0x000000be12100000)] + 0x0000023355a48560 JavaThread "Timer-33" [_thread_blocked, id=25148, stack(0x000000be12100000,0x000000be12200000)] + 0x0000023355a411e0 JavaThread "Timer-34" [_thread_blocked, id=22280, stack(0x000000be12200000,0x000000be12300000)] + 0x0000023346eb4970 JavaThread "Timer-35" [_thread_blocked, id=22536, stack(0x000000be12300000,0x000000be12400000)] + 0x0000023346eb57e0 JavaThread "Timer-36" [_thread_blocked, id=4408, stack(0x000000be12400000,0x000000be12500000)] + 0x0000023346eb0ae0 JavaThread "Timer-37" [_thread_blocked, id=22372, stack(0x000000be12500000,0x000000be12600000)] + 0x0000023346eb6180 JavaThread "Timer-38" [_thread_blocked, id=22744, stack(0x000000be12600000,0x000000be12700000)] + 0x0000023346eb5cb0 JavaThread "Timer-39" [_thread_blocked, id=20872, stack(0x000000be12700000,0x000000be12800000)] + 0x0000023346eaf7a0 JavaThread "Timer-40" [_thread_blocked, id=10552, stack(0x000000be12800000,0x000000be12900000)] + 0x0000023346eb0fb0 JavaThread "Timer-41" [_thread_blocked, id=24796, stack(0x000000be12900000,0x000000be12a00000)] + 0x0000023346eb2c90 JavaThread "Timer-42" [_thread_blocked, id=7592, stack(0x000000be12a00000,0x000000be12b00000)] + 0x0000023346eb5310 JavaThread "Timer-43" [_thread_blocked, id=20476, stack(0x000000be12b00000,0x000000be12c00000)] + 0x0000023346eafc70 JavaThread "Timer-44" [_thread_blocked, id=14484, stack(0x000000be12c00000,0x000000be12d00000)] + 0x0000023346eb6650 JavaThread "Timer-45" [_thread_blocked, id=22728, stack(0x000000be12d00000,0x000000be12e00000)] + 0x0000023346eb4e40 JavaThread "Timer-46" [_thread_blocked, id=27048, stack(0x000000be12e00000,0x000000be12f00000)] + 0x0000023346eb22f0 JavaThread "Timer-47" [_thread_blocked, id=4468, stack(0x000000be12f00000,0x000000be13000000)] + 0x0000023346eaf2d0 JavaThread "Timer-48" [_thread_blocked, id=15076, stack(0x000000be13000000,0x000000be13100000)] + 0x0000023346eb0140 JavaThread "Timer-49" [_thread_blocked, id=17804, stack(0x000000be13100000,0x000000be13200000)] + 0x0000023346eb1480 JavaThread "Timer-50" [_thread_blocked, id=21560, stack(0x000000be13200000,0x000000be13300000)] + 0x0000023346eb0610 JavaThread "Timer-51" [_thread_blocked, id=12808, stack(0x000000be13300000,0x000000be13400000)] + 0x0000023346eb1e20 JavaThread "Timer-53" [_thread_blocked, id=15476, stack(0x000000be13500000,0x000000be13600000)] + 0x0000023346eb6b20 JavaThread "Timer-54" [_thread_blocked, id=2864, stack(0x000000be13600000,0x000000be13700000)] + 0x0000023346eb3b00 JavaThread "Timer-55" [_thread_blocked, id=18696, stack(0x000000be13700000,0x000000be13800000)] + 0x0000023346eb27c0 JavaThread "Timer-56" [_thread_blocked, id=5308, stack(0x000000be13800000,0x000000be13900000)] + 0x0000023346eb3160 JavaThread "Timer-57" [_thread_blocked, id=23260, stack(0x000000be13900000,0x000000be13a00000)] + 0x0000023346eb3630 JavaThread "Timer-58" [_thread_blocked, id=6376, stack(0x000000be13a00000,0x000000be13b00000)] + 0x0000023346eb3fd0 JavaThread "Timer-59" [_thread_blocked, id=25472, stack(0x000000be13b00000,0x000000be13c00000)] + 0x0000023346eb44a0 JavaThread "Timer-60" [_thread_blocked, id=27180, stack(0x000000be13c00000,0x000000be13d00000)] + 0x0000023346939ee0 JavaThread "Timer-61" [_thread_blocked, id=2792, stack(0x000000be13d00000,0x000000be13e00000)] + 0x000002334693d3d0 JavaThread "Timer-62" [_thread_blocked, id=24884, stack(0x000000be13e00000,0x000000be13f00000)] + 0x000002334693a3b0 JavaThread "Timer-63" [_thread_blocked, id=4772, stack(0x000000be13f00000,0x000000be14000000)] + 0x000002334693c560 JavaThread "Timer-64" [_thread_blocked, id=20800, stack(0x000000be14000000,0x000000be14100000)] + 0x0000023346939070 JavaThread "Timer-65" [_thread_blocked, id=23880, stack(0x000000be14100000,0x000000be14200000)] + 0x0000023346935b80 JavaThread "Timer-66" [_thread_blocked, id=10684, stack(0x000000be14200000,0x000000be14300000)] + 0x0000023346937d30 JavaThread "Timer-67" [_thread_blocked, id=20092, stack(0x000000be11000000,0x000000be11100000)] + 0x0000023346939540 JavaThread "Timer-68" [_thread_blocked, id=5540, stack(0x000000be14300000,0x000000be14400000)] + 0x000002334693ad50 JavaThread "Timer-69" [_thread_blocked, id=25024, stack(0x000000be14400000,0x000000be14500000)] + 0x0000023346938200 JavaThread "Timer-70" [_thread_blocked, id=27632, stack(0x000000be14500000,0x000000be14600000)] + 0x0000023346936520 JavaThread "Timer-71" [_thread_blocked, id=9324, stack(0x000000be14600000,0x000000be14700000)] + 0x00000233469386d0 JavaThread "Timer-72" [_thread_blocked, id=13752, stack(0x000000be14700000,0x000000be14800000)] + 0x0000023346936050 JavaThread "Timer-73" [_thread_blocked, id=18920, stack(0x000000be14800000,0x000000be14900000)] + 0x00000233469369f0 JavaThread "Timer-74" [_thread_blocked, id=21012, stack(0x000000be14900000,0x000000be14a00000)] + 0x0000023346939a10 JavaThread "Timer-75" [_thread_blocked, id=600, stack(0x000000be14a00000,0x000000be14b00000)] + 0x0000023346936ec0 JavaThread "Timer-76" [_thread_blocked, id=3716, stack(0x000000be14b00000,0x000000be14c00000)] + 0x0000023346938ba0 JavaThread "Timer-77" [_thread_blocked, id=25108, stack(0x000000be14c00000,0x000000be14d00000)] + 0x000002334693a880 JavaThread "Timer-78" [_thread_blocked, id=17172, stack(0x000000be14d00000,0x000000be14e00000)] + 0x000002334693b220 JavaThread "Timer-79" [_thread_blocked, id=13100, stack(0x000000be14e00000,0x000000be14f00000)] + 0x000002334693b6f0 JavaThread "Timer-80" [_thread_blocked, id=22948, stack(0x000000be14f00000,0x000000be15000000)] + 0x000002334693bbc0 JavaThread "Timer-81" [_thread_blocked, id=8352, stack(0x000000be15000000,0x000000be15100000)] + 0x0000023346937390 JavaThread "Timer-82" [_thread_blocked, id=16044, stack(0x000000be15100000,0x000000be15200000)] + 0x000002334693ca30 JavaThread "Timer-83" [_thread_blocked, id=22972, stack(0x000000be15200000,0x000000be15300000)] + 0x000002334693cf00 JavaThread "Timer-84" [_thread_blocked, id=13936, stack(0x000000be15300000,0x000000be15400000)] + 0x000002334693c090 JavaThread "Timer-85" [_thread_blocked, id=27344, stack(0x000000be15400000,0x000000be15500000)] + 0x0000023346937860 JavaThread "Timer-86" [_thread_blocked, id=19160, stack(0x000000be15500000,0x000000be15600000)] + 0x0000023355a48090 JavaThread "Timer-87" [_thread_blocked, id=13080, stack(0x000000be15600000,0x000000be15700000)] + 0x000002334704a0b0 JavaThread "Timer-88" [_thread_blocked, id=22312, stack(0x000000be15700000,0x000000be15800000)] + 0x0000023347051430 JavaThread "Timer-89" [_thread_blocked, id=16752, stack(0x000000be15800000,0x000000be15900000)] + 0x000002334704a580 JavaThread "Timer-90" [_thread_blocked, id=25632, stack(0x000000be15900000,0x000000be15a00000)] + 0x000002334704aa50 JavaThread "Timer-91" [_thread_blocked, id=4548, stack(0x000000be15a00000,0x000000be15b00000)] + 0x000002334704af20 JavaThread "Timer-92" [_thread_blocked, id=15880, stack(0x000000be15b00000,0x000000be15c00000)] + 0x000002334704da70 JavaThread "Timer-93" [_thread_blocked, id=316, stack(0x000000be13400000,0x000000be13500000)] + 0x000002334704e8e0 JavaThread "Timer-94" [_thread_blocked, id=20544, stack(0x000000be15c00000,0x000000be15d00000)] + +Other Threads: + 0x000002334339e100 VMThread "VM Thread" [stack: 0x000000be0ce00000,0x000000be0cf00000] [id=12512] + 0x00000233441879b0 WatcherThread [stack: 0x000000be0da00000,0x000000be0db00000] [id=17700] + 0x0000023320141020 GCTaskThread "GC Thread#0" [stack: 0x000000be0c900000,0x000000be0ca00000] [id=23224] + 0x000002334bb7d360 GCTaskThread "GC Thread#1" [stack: 0x000000be0f500000,0x000000be0f600000] [id=6088] + 0x000002334bb7e0d0 GCTaskThread "GC Thread#2" [stack: 0x000000be0f600000,0x000000be0f700000] [id=23532] + 0x000002334bb7bde0 GCTaskThread "GC Thread#3" [stack: 0x000000be0f700000,0x000000be0f800000] [id=17904] + 0x000002334bb7ee40 GCTaskThread "GC Thread#4" [stack: 0x000000be0f800000,0x000000be0f900000] [id=14196] + 0x000002334bb7c8a0 GCTaskThread "GC Thread#5" [stack: 0x000000be0f900000,0x000000be0fa00000] [id=15384] + 0x000002334bb7eb90 GCTaskThread "GC Thread#6" [stack: 0x000000be0fa00000,0x000000be0fb00000] [id=14064] + 0x000002334bb7e380 GCTaskThread "GC Thread#7" [stack: 0x000000be0fb00000,0x000000be0fc00000] [id=26772] + 0x000002334bb7c090 GCTaskThread "GC Thread#8" [stack: 0x000000be0fc00000,0x000000be0fd00000] [id=23944] + 0x000002334bf0b430 GCTaskThread "GC Thread#9" [stack: 0x000000be10200000,0x000000be10300000] [id=21924] + 0x0000023320155d20 ConcurrentGCThread "G1 Main Marker" [stack: 0x000000be0ca00000,0x000000be0cb00000] [id=296] + 0x0000023320156630 ConcurrentGCThread "G1 Conc#0" [stack: 0x000000be0cb00000,0x000000be0cc00000] [id=14820] + 0x00000233432586f0 ConcurrentGCThread "G1 Refine#0" [stack: 0x000000be0cc00000,0x000000be0cd00000] [id=16716] + 0x0000023343258f20 ConcurrentGCThread "G1 Service" [stack: 0x000000be0cd00000,0x000000be0ce00000] [id=24256] + +Threads with active compile tasks: + +VM state: not at safepoint (normal execution) + +VM Mutex/Monitor currently owned by a thread: None + +Heap address: 0x0000000709800000, size: 3944 MB, Compressed Oops mode: Zero based, Oop shift amount: 3 + +CDS archive(s) mapped at: [0x0000000800000000-0x0000000800bd0000-0x0000000800bd0000), size 12386304, SharedBaseAddress: 0x0000000800000000, ArchiveRelocationMode: 0. +Compressed class space mapped at: 0x0000000800c00000-0x0000000840c00000, reserved size: 1073741824 +Narrow klass base: 0x0000000800000000, Narrow klass shift: 0, Narrow klass range: 0x100000000 + +GC Precious Log: + CPUs: 16 total, 16 available + Memory: 15769M + Large Page Support: Disabled + NUMA Support: Disabled + Compressed Oops: Enabled (Zero based) + Heap Region Size: 2M + Heap Min Capacity: 8M + Heap Initial Capacity: 248M + Heap Max Capacity: 3944M + Pre-touch: Disabled + Parallel Workers: 13 + Concurrent Workers: 3 + Concurrent Refinement Workers: 13 + Periodic GC: Disabled + +Heap: + garbage-first heap total 253952K, used 64686K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 31 young (63488K), 2 survivors (4096K) + Metaspace used 10985K, committed 11136K, reserved 1064960K + class space used 972K, committed 1024K, reserved 1048576K + +Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, OA=open archive, CA=closed archive, TAMS=top-at-mark-start (previous, next) +| 0|0x0000000709800000, 0x0000000709a00000, 0x0000000709a00000|100%| O| |TAMS 0x0000000709800000, 0x0000000709800000| Untracked +| 1|0x0000000709a00000, 0x0000000709b0b800, 0x0000000709c00000| 52%| O| |TAMS 0x0000000709a00000, 0x0000000709a00000| Untracked +| 2|0x0000000709c00000, 0x0000000709e00000, 0x0000000709e00000|100%|HS| |TAMS 0x0000000709c00000, 0x0000000709c00000| Complete +| 3|0x0000000709e00000, 0x0000000709e00000, 0x000000070a000000| 0%| F| |TAMS 0x0000000709e00000, 0x0000000709e00000| Untracked +| 4|0x000000070a000000, 0x000000070a000000, 0x000000070a200000| 0%| F| |TAMS 0x000000070a000000, 0x000000070a000000| Untracked +| 5|0x000000070a200000, 0x000000070a200000, 0x000000070a400000| 0%| F| |TAMS 0x000000070a200000, 0x000000070a200000| Untracked +| 6|0x000000070a400000, 0x000000070a400000, 0x000000070a600000| 0%| F| |TAMS 0x000000070a400000, 0x000000070a400000| Untracked +| 7|0x000000070a600000, 0x000000070a600000, 0x000000070a800000| 0%| F| |TAMS 0x000000070a600000, 0x000000070a600000| Untracked +| 8|0x000000070a800000, 0x000000070a800000, 0x000000070aa00000| 0%| F| |TAMS 0x000000070a800000, 0x000000070a800000| Untracked +| 9|0x000000070aa00000, 0x000000070aa00000, 0x000000070ac00000| 0%| F| |TAMS 0x000000070aa00000, 0x000000070aa00000| Untracked +| 10|0x000000070ac00000, 0x000000070ac00000, 0x000000070ae00000| 0%| F| |TAMS 0x000000070ac00000, 0x000000070ac00000| Untracked +| 11|0x000000070ae00000, 0x000000070ae00000, 0x000000070b000000| 0%| F| |TAMS 0x000000070ae00000, 0x000000070ae00000| Untracked +| 12|0x000000070b000000, 0x000000070b000000, 0x000000070b200000| 0%| F| |TAMS 0x000000070b000000, 0x000000070b000000| Untracked +| 13|0x000000070b200000, 0x000000070b200000, 0x000000070b400000| 0%| F| |TAMS 0x000000070b200000, 0x000000070b200000| Untracked +| 14|0x000000070b400000, 0x000000070b400000, 0x000000070b600000| 0%| F| |TAMS 0x000000070b400000, 0x000000070b400000| Untracked +| 15|0x000000070b600000, 0x000000070b600000, 0x000000070b800000| 0%| F| |TAMS 0x000000070b600000, 0x000000070b600000| Untracked +| 16|0x000000070b800000, 0x000000070b800000, 0x000000070ba00000| 0%| F| |TAMS 0x000000070b800000, 0x000000070b800000| Untracked +| 17|0x000000070ba00000, 0x000000070ba00000, 0x000000070bc00000| 0%| F| |TAMS 0x000000070ba00000, 0x000000070ba00000| Untracked +| 18|0x000000070bc00000, 0x000000070bc00000, 0x000000070be00000| 0%| F| |TAMS 0x000000070bc00000, 0x000000070bc00000| Untracked +| 19|0x000000070be00000, 0x000000070be00000, 0x000000070c000000| 0%| F| |TAMS 0x000000070be00000, 0x000000070be00000| Untracked +| 20|0x000000070c000000, 0x000000070c000000, 0x000000070c200000| 0%| F| |TAMS 0x000000070c000000, 0x000000070c000000| Untracked +| 21|0x000000070c200000, 0x000000070c200000, 0x000000070c400000| 0%| F| |TAMS 0x000000070c200000, 0x000000070c200000| Untracked +| 22|0x000000070c400000, 0x000000070c400000, 0x000000070c600000| 0%| F| |TAMS 0x000000070c400000, 0x000000070c400000| Untracked +| 23|0x000000070c600000, 0x000000070c600000, 0x000000070c800000| 0%| F| |TAMS 0x000000070c600000, 0x000000070c600000| Untracked +| 24|0x000000070c800000, 0x000000070c800000, 0x000000070ca00000| 0%| F| |TAMS 0x000000070c800000, 0x000000070c800000| Untracked +| 25|0x000000070ca00000, 0x000000070ca00000, 0x000000070cc00000| 0%| F| |TAMS 0x000000070ca00000, 0x000000070ca00000| Untracked +| 26|0x000000070cc00000, 0x000000070cc00000, 0x000000070ce00000| 0%| F| |TAMS 0x000000070cc00000, 0x000000070cc00000| Untracked +| 27|0x000000070ce00000, 0x000000070ce00000, 0x000000070d000000| 0%| F| |TAMS 0x000000070ce00000, 0x000000070ce00000| Untracked +| 28|0x000000070d000000, 0x000000070d000000, 0x000000070d200000| 0%| F| |TAMS 0x000000070d000000, 0x000000070d000000| Untracked +| 29|0x000000070d200000, 0x000000070d200000, 0x000000070d400000| 0%| F| |TAMS 0x000000070d200000, 0x000000070d200000| Untracked +| 30|0x000000070d400000, 0x000000070d400000, 0x000000070d600000| 0%| F| |TAMS 0x000000070d400000, 0x000000070d400000| Untracked +| 31|0x000000070d600000, 0x000000070d600000, 0x000000070d800000| 0%| F| |TAMS 0x000000070d600000, 0x000000070d600000| Untracked +| 32|0x000000070d800000, 0x000000070d800000, 0x000000070da00000| 0%| F| |TAMS 0x000000070d800000, 0x000000070d800000| Untracked +| 33|0x000000070da00000, 0x000000070da00000, 0x000000070dc00000| 0%| F| |TAMS 0x000000070da00000, 0x000000070da00000| Untracked +| 34|0x000000070dc00000, 0x000000070dc00000, 0x000000070de00000| 0%| F| |TAMS 0x000000070dc00000, 0x000000070dc00000| Untracked +| 35|0x000000070de00000, 0x000000070de00000, 0x000000070e000000| 0%| F| |TAMS 0x000000070de00000, 0x000000070de00000| Untracked +| 36|0x000000070e000000, 0x000000070e000000, 0x000000070e200000| 0%| F| |TAMS 0x000000070e000000, 0x000000070e000000| Untracked +| 37|0x000000070e200000, 0x000000070e200000, 0x000000070e400000| 0%| F| |TAMS 0x000000070e200000, 0x000000070e200000| Untracked +| 38|0x000000070e400000, 0x000000070e400000, 0x000000070e600000| 0%| F| |TAMS 0x000000070e400000, 0x000000070e400000| Untracked +| 39|0x000000070e600000, 0x000000070e600000, 0x000000070e800000| 0%| F| |TAMS 0x000000070e600000, 0x000000070e600000| Untracked +| 40|0x000000070e800000, 0x000000070e800000, 0x000000070ea00000| 0%| F| |TAMS 0x000000070e800000, 0x000000070e800000| Untracked +| 41|0x000000070ea00000, 0x000000070ea00000, 0x000000070ec00000| 0%| F| |TAMS 0x000000070ea00000, 0x000000070ea00000| Untracked +| 42|0x000000070ec00000, 0x000000070ec00000, 0x000000070ee00000| 0%| F| |TAMS 0x000000070ec00000, 0x000000070ec00000| Untracked +| 43|0x000000070ee00000, 0x000000070ee00000, 0x000000070f000000| 0%| F| |TAMS 0x000000070ee00000, 0x000000070ee00000| Untracked +| 44|0x000000070f000000, 0x000000070f000000, 0x000000070f200000| 0%| F| |TAMS 0x000000070f000000, 0x000000070f000000| Untracked +| 45|0x000000070f200000, 0x000000070f200000, 0x000000070f400000| 0%| F| |TAMS 0x000000070f200000, 0x000000070f200000| Untracked +| 46|0x000000070f400000, 0x000000070f400000, 0x000000070f600000| 0%| F| |TAMS 0x000000070f400000, 0x000000070f400000| Untracked +| 47|0x000000070f600000, 0x000000070f600000, 0x000000070f800000| 0%| F| |TAMS 0x000000070f600000, 0x000000070f600000| Untracked +| 48|0x000000070f800000, 0x000000070f800000, 0x000000070fa00000| 0%| F| |TAMS 0x000000070f800000, 0x000000070f800000| Untracked +| 49|0x000000070fa00000, 0x000000070fa00000, 0x000000070fc00000| 0%| F| |TAMS 0x000000070fa00000, 0x000000070fa00000| Untracked +| 50|0x000000070fc00000, 0x000000070fc00000, 0x000000070fe00000| 0%| F| |TAMS 0x000000070fc00000, 0x000000070fc00000| Untracked +| 51|0x000000070fe00000, 0x000000070fe00000, 0x0000000710000000| 0%| F| |TAMS 0x000000070fe00000, 0x000000070fe00000| Untracked +| 52|0x0000000710000000, 0x0000000710000000, 0x0000000710200000| 0%| F| |TAMS 0x0000000710000000, 0x0000000710000000| Untracked +| 53|0x0000000710200000, 0x0000000710200000, 0x0000000710400000| 0%| F| |TAMS 0x0000000710200000, 0x0000000710200000| Untracked +| 54|0x0000000710400000, 0x0000000710400000, 0x0000000710600000| 0%| F| |TAMS 0x0000000710400000, 0x0000000710400000| Untracked +| 55|0x0000000710600000, 0x0000000710600000, 0x0000000710800000| 0%| F| |TAMS 0x0000000710600000, 0x0000000710600000| Untracked +| 56|0x0000000710800000, 0x0000000710800000, 0x0000000710a00000| 0%| F| |TAMS 0x0000000710800000, 0x0000000710800000| Untracked +| 57|0x0000000710a00000, 0x0000000710a00000, 0x0000000710c00000| 0%| F| |TAMS 0x0000000710a00000, 0x0000000710a00000| Untracked +| 58|0x0000000710c00000, 0x0000000710c00000, 0x0000000710e00000| 0%| F| |TAMS 0x0000000710c00000, 0x0000000710c00000| Untracked +| 59|0x0000000710e00000, 0x0000000710e00000, 0x0000000711000000| 0%| F| |TAMS 0x0000000710e00000, 0x0000000710e00000| Untracked +| 60|0x0000000711000000, 0x0000000711000000, 0x0000000711200000| 0%| F| |TAMS 0x0000000711000000, 0x0000000711000000| Untracked +| 61|0x0000000711200000, 0x0000000711200000, 0x0000000711400000| 0%| F| |TAMS 0x0000000711200000, 0x0000000711200000| Untracked +| 62|0x0000000711400000, 0x0000000711400000, 0x0000000711600000| 0%| F| |TAMS 0x0000000711400000, 0x0000000711400000| Untracked +| 63|0x0000000711600000, 0x0000000711600000, 0x0000000711800000| 0%| F| |TAMS 0x0000000711600000, 0x0000000711600000| Untracked +| 64|0x0000000711800000, 0x0000000711800000, 0x0000000711a00000| 0%| F| |TAMS 0x0000000711800000, 0x0000000711800000| Untracked +| 65|0x0000000711a00000, 0x0000000711a00000, 0x0000000711c00000| 0%| F| |TAMS 0x0000000711a00000, 0x0000000711a00000| Untracked +| 66|0x0000000711c00000, 0x0000000711c00000, 0x0000000711e00000| 0%| F| |TAMS 0x0000000711c00000, 0x0000000711c00000| Untracked +| 67|0x0000000711e00000, 0x0000000711e00000, 0x0000000712000000| 0%| F| |TAMS 0x0000000711e00000, 0x0000000711e00000| Untracked +| 68|0x0000000712000000, 0x0000000712000000, 0x0000000712200000| 0%| F| |TAMS 0x0000000712000000, 0x0000000712000000| Untracked +| 69|0x0000000712200000, 0x0000000712200000, 0x0000000712400000| 0%| F| |TAMS 0x0000000712200000, 0x0000000712200000| Untracked +| 70|0x0000000712400000, 0x0000000712400000, 0x0000000712600000| 0%| F| |TAMS 0x0000000712400000, 0x0000000712400000| Untracked +| 71|0x0000000712600000, 0x0000000712600000, 0x0000000712800000| 0%| F| |TAMS 0x0000000712600000, 0x0000000712600000| Untracked +| 72|0x0000000712800000, 0x0000000712800000, 0x0000000712a00000| 0%| F| |TAMS 0x0000000712800000, 0x0000000712800000| Untracked +| 73|0x0000000712a00000, 0x0000000712a00000, 0x0000000712c00000| 0%| F| |TAMS 0x0000000712a00000, 0x0000000712a00000| Untracked +| 74|0x0000000712c00000, 0x0000000712c00000, 0x0000000712e00000| 0%| F| |TAMS 0x0000000712c00000, 0x0000000712c00000| Untracked +| 75|0x0000000712e00000, 0x0000000712e00000, 0x0000000713000000| 0%| F| |TAMS 0x0000000712e00000, 0x0000000712e00000| Untracked +| 76|0x0000000713000000, 0x0000000713000000, 0x0000000713200000| 0%| F| |TAMS 0x0000000713000000, 0x0000000713000000| Untracked +| 77|0x0000000713200000, 0x0000000713200000, 0x0000000713400000| 0%| F| |TAMS 0x0000000713200000, 0x0000000713200000| Untracked +| 78|0x0000000713400000, 0x0000000713400000, 0x0000000713600000| 0%| F| |TAMS 0x0000000713400000, 0x0000000713400000| Untracked +| 79|0x0000000713600000, 0x0000000713600000, 0x0000000713800000| 0%| F| |TAMS 0x0000000713600000, 0x0000000713600000| Untracked +| 80|0x0000000713800000, 0x0000000713800000, 0x0000000713a00000| 0%| F| |TAMS 0x0000000713800000, 0x0000000713800000| Untracked +| 81|0x0000000713a00000, 0x0000000713a00000, 0x0000000713c00000| 0%| F| |TAMS 0x0000000713a00000, 0x0000000713a00000| Untracked +| 82|0x0000000713c00000, 0x0000000713c00000, 0x0000000713e00000| 0%| F| |TAMS 0x0000000713c00000, 0x0000000713c00000| Untracked +| 83|0x0000000713e00000, 0x0000000713e00000, 0x0000000714000000| 0%| F| |TAMS 0x0000000713e00000, 0x0000000713e00000| Untracked +| 84|0x0000000714000000, 0x0000000714000000, 0x0000000714200000| 0%| F| |TAMS 0x0000000714000000, 0x0000000714000000| Untracked +| 85|0x0000000714200000, 0x0000000714200000, 0x0000000714400000| 0%| F| |TAMS 0x0000000714200000, 0x0000000714200000| Untracked +| 86|0x0000000714400000, 0x0000000714400000, 0x0000000714600000| 0%| F| |TAMS 0x0000000714400000, 0x0000000714400000| Untracked +| 87|0x0000000714600000, 0x0000000714600000, 0x0000000714800000| 0%| F| |TAMS 0x0000000714600000, 0x0000000714600000| Untracked +| 88|0x0000000714800000, 0x0000000714800000, 0x0000000714a00000| 0%| F| |TAMS 0x0000000714800000, 0x0000000714800000| Untracked +| 89|0x0000000714a00000, 0x0000000714a00000, 0x0000000714c00000| 0%| F| |TAMS 0x0000000714a00000, 0x0000000714a00000| Untracked +| 90|0x0000000714c00000, 0x0000000714c00000, 0x0000000714e00000| 0%| F| |TAMS 0x0000000714c00000, 0x0000000714c00000| Untracked +| 91|0x0000000714e00000, 0x0000000714e00000, 0x0000000715000000| 0%| F| |TAMS 0x0000000714e00000, 0x0000000714e00000| Untracked +| 92|0x0000000715000000, 0x0000000715000000, 0x0000000715200000| 0%| F| |TAMS 0x0000000715000000, 0x0000000715000000| Untracked +| 93|0x0000000715200000, 0x00000007153ec080, 0x0000000715400000| 96%| E| |TAMS 0x0000000715200000, 0x0000000715200000| Complete +| 94|0x0000000715400000, 0x0000000715600000, 0x0000000715600000|100%| E|CS|TAMS 0x0000000715400000, 0x0000000715400000| Complete +| 95|0x0000000715600000, 0x0000000715800000, 0x0000000715800000|100%| E|CS|TAMS 0x0000000715600000, 0x0000000715600000| Complete +| 96|0x0000000715800000, 0x0000000715a00000, 0x0000000715a00000|100%| E|CS|TAMS 0x0000000715800000, 0x0000000715800000| Complete +| 97|0x0000000715a00000, 0x0000000715c00000, 0x0000000715c00000|100%| E|CS|TAMS 0x0000000715a00000, 0x0000000715a00000| Complete +| 98|0x0000000715c00000, 0x0000000715e00000, 0x0000000715e00000|100%| E|CS|TAMS 0x0000000715c00000, 0x0000000715c00000| Complete +| 99|0x0000000715e00000, 0x0000000716000000, 0x0000000716000000|100%| E|CS|TAMS 0x0000000715e00000, 0x0000000715e00000| Complete +| 100|0x0000000716000000, 0x0000000716200000, 0x0000000716200000|100%| E|CS|TAMS 0x0000000716000000, 0x0000000716000000| Complete +| 101|0x0000000716200000, 0x0000000716400000, 0x0000000716400000|100%| E|CS|TAMS 0x0000000716200000, 0x0000000716200000| Complete +| 102|0x0000000716400000, 0x0000000716600000, 0x0000000716600000|100%| E|CS|TAMS 0x0000000716400000, 0x0000000716400000| Complete +| 103|0x0000000716600000, 0x0000000716800000, 0x0000000716800000|100%| E|CS|TAMS 0x0000000716600000, 0x0000000716600000| Complete +| 104|0x0000000716800000, 0x0000000716820010, 0x0000000716a00000| 6%| S|CS|TAMS 0x0000000716800000, 0x0000000716800000| Complete +| 105|0x0000000716a00000, 0x0000000716c00000, 0x0000000716c00000|100%| S|CS|TAMS 0x0000000716a00000, 0x0000000716a00000| Complete +| 106|0x0000000716c00000, 0x0000000716e00000, 0x0000000716e00000|100%| E|CS|TAMS 0x0000000716c00000, 0x0000000716c00000| Complete +| 107|0x0000000716e00000, 0x0000000717000000, 0x0000000717000000|100%| E|CS|TAMS 0x0000000716e00000, 0x0000000716e00000| Complete +| 108|0x0000000717000000, 0x0000000717200000, 0x0000000717200000|100%| E|CS|TAMS 0x0000000717000000, 0x0000000717000000| Complete +| 109|0x0000000717200000, 0x0000000717400000, 0x0000000717400000|100%| E|CS|TAMS 0x0000000717200000, 0x0000000717200000| Complete +| 110|0x0000000717400000, 0x0000000717600000, 0x0000000717600000|100%| E|CS|TAMS 0x0000000717400000, 0x0000000717400000| Complete +| 111|0x0000000717600000, 0x0000000717800000, 0x0000000717800000|100%| E|CS|TAMS 0x0000000717600000, 0x0000000717600000| Complete +| 112|0x0000000717800000, 0x0000000717a00000, 0x0000000717a00000|100%| E|CS|TAMS 0x0000000717800000, 0x0000000717800000| Complete +| 113|0x0000000717a00000, 0x0000000717c00000, 0x0000000717c00000|100%| E|CS|TAMS 0x0000000717a00000, 0x0000000717a00000| Complete +| 114|0x0000000717c00000, 0x0000000717e00000, 0x0000000717e00000|100%| E|CS|TAMS 0x0000000717c00000, 0x0000000717c00000| Complete +| 115|0x0000000717e00000, 0x0000000718000000, 0x0000000718000000|100%| E|CS|TAMS 0x0000000717e00000, 0x0000000717e00000| Complete +| 116|0x0000000718000000, 0x0000000718200000, 0x0000000718200000|100%| E|CS|TAMS 0x0000000718000000, 0x0000000718000000| Complete +| 117|0x0000000718200000, 0x0000000718400000, 0x0000000718400000|100%| E|CS|TAMS 0x0000000718200000, 0x0000000718200000| Complete +| 118|0x0000000718400000, 0x0000000718600000, 0x0000000718600000|100%| E|CS|TAMS 0x0000000718400000, 0x0000000718400000| Complete +| 119|0x0000000718600000, 0x0000000718800000, 0x0000000718800000|100%| E|CS|TAMS 0x0000000718600000, 0x0000000718600000| Complete +| 120|0x0000000718800000, 0x0000000718a00000, 0x0000000718a00000|100%| E|CS|TAMS 0x0000000718800000, 0x0000000718800000| Complete +| 121|0x0000000718a00000, 0x0000000718c00000, 0x0000000718c00000|100%| E|CS|TAMS 0x0000000718a00000, 0x0000000718a00000| Complete +| 122|0x0000000718c00000, 0x0000000718e00000, 0x0000000718e00000|100%| E|CS|TAMS 0x0000000718c00000, 0x0000000718c00000| Complete +| 123|0x0000000718e00000, 0x0000000719000000, 0x0000000719000000|100%| E|CS|TAMS 0x0000000718e00000, 0x0000000718e00000| Complete + +Card table byte_map: [0x0000023337980000,0x0000023338140000] _byte_map_base: 0x0000023334134000 + +Marking Bits (Prev, Next): (CMBitMap*) 0x0000023320144550, (CMBitMap*) 0x0000023320144590 + Prev Bits: [0x0000023338900000, 0x000002333c6a0000) + Next Bits: [0x000002333c6a0000, 0x0000023340440000) + +Polling page: 0x000002331f890000 + +Metaspace: + +Usage: + Non-class: 9.78 MB used. + Class: 972.82 KB used. + Both: 10.73 MB used. + +Virtual space: + Non-class space: 16.00 MB reserved, 9.88 MB ( 62%) committed, 2 nodes. + Class space: 1.00 GB reserved, 1.00 MB ( <1%) committed, 1 nodes. + Both: 1.02 GB reserved, 10.88 MB ( 1%) committed. + +Chunk freelists: + Non-Class: 1.02 MB + Class: 3.00 MB + Both: 4.02 MB + +MaxMetaspaceSize: unlimited +CompressedClassSpaceSize: 1.00 GB +Initial GC threshold: 21.00 MB +Current GC threshold: 21.00 MB +CDS: on +MetaspaceReclaimPolicy: balanced + - commit_granule_bytes: 65536. + - commit_granule_words: 8192. + - virtual_space_node_default_size: 1048576. + - enlarge_chunks_in_place: 1. + - new_chunks_are_fully_committed: 0. + - uncommit_free_chunks: 1. + - use_allocation_guard: 0. + - handle_deallocations: 1. + + +Internal statistics: + +num_allocs_failed_limit: 0. +num_arena_births: 144. +num_arena_deaths: 0. +num_vsnodes_births: 3. +num_vsnodes_deaths: 0. +num_space_committed: 172. +num_space_uncommitted: 0. +num_chunks_returned_to_freelist: 0. +num_chunks_taken_from_freelist: 486. +num_chunk_merges: 0. +num_chunk_splits: 336. +num_chunks_enlarged: 254. +num_purges: 0. +num_inconsistent_stats: 0. + +CodeHeap 'non-profiled nmethods': size=119168Kb used=1937Kb max_used=1937Kb free=117230Kb + bounds [0x000002332f4e0000, 0x000002332f750000, 0x0000023336940000] +CodeHeap 'profiled nmethods': size=119104Kb used=6079Kb max_used=6079Kb free=113024Kb + bounds [0x0000023327940000, 0x0000023327f30000, 0x000002332ed90000] +CodeHeap 'non-nmethods': size=7488Kb used=1648Kb max_used=3333Kb free=5839Kb + bounds [0x000002332ed90000, 0x000002332f0e0000, 0x000002332f4e0000] + total_blobs=4132 nmethods=3036 adapters=1009 + compilation: enabled + stopped_count=0, restarted_count=0 + full_count=0 + +Compilation events (20 events): +Event: 24.720 Thread 0x0000023344005650 3027 3 com.csse3200.game.components.tasks.TrajectTask::stop (29 bytes) +Event: 24.721 Thread 0x0000023344005650 nmethod 3027 0x0000023327f22f10 code [0x0000023327f23180, 0x0000023327f23ce8] +Event: 24.754 Thread 0x0000023344005650 3028 3 com.csse3200.game.entities.Entity::setScale (18 bytes) +Event: 24.755 Thread 0x0000023344005650 nmethod 3028 0x0000023327f24110 code [0x0000023327f242a0, 0x0000023327f243d8] +Event: 24.771 Thread 0x0000023344005650 3029 3 com.csse3200.game.entities.factories.ProjectileFactory::createEffectProjectile (395 bytes) +Event: 24.771 Thread 0x0000023344004390 3035 4 com.csse3200.game.components.Component::create (1 bytes) +Event: 24.771 Thread 0x0000023344004390 nmethod 3035 0x000002332f6c4310 code [0x000002332f6c4480, 0x000002332f6c44f8] +Event: 24.773 Thread 0x0000023344005650 nmethod 3029 0x0000023327f24490 code [0x0000023327f24b60, 0x0000023327f27e78] +Event: 24.773 Thread 0x0000023344005650 3030 ! 3 com.csse3200.game.entities.factories.ProjectileFactory::$SWITCH_TABLE$com$csse3200$game$components$ProjectileEffects (74 bytes) +Event: 24.773 Thread 0x0000023344005650 nmethod 3030 0x0000023327f28f90 code [0x0000023327f29160, 0x0000023327f295e8] +Event: 24.773 Thread 0x0000023344005650 3031 3 com.csse3200.game.components.EffectsComponent:: (48 bytes) +Event: 24.773 Thread 0x0000023344005650 nmethod 3031 0x0000023327f29790 code [0x0000023327f29980, 0x0000023327f2a178] +Event: 24.773 Thread 0x0000023344005650 3032 3 com.csse3200.game.components.EffectsComponent::create (53 bytes) +Event: 24.774 Thread 0x0000023344005650 nmethod 3032 0x0000023327f2a390 code [0x0000023327f2a660, 0x0000023327f2b618] +Event: 24.774 Thread 0x0000023344005650 3033 3 com.csse3200.game.components.EffectsComponent$$Lambda$123/0x0000000800cf9c80:: (10 bytes) +Event: 24.774 Thread 0x0000023344005650 nmethod 3033 0x0000023327f2bc10 code [0x0000023327f2bda0, 0x0000023327f2bf58] +Event: 24.774 Thread 0x0000023344005650 3034 3 com.csse3200.game.components.EffectsComponent$$Lambda$124/0x0000000800cf9ea0:: (10 bytes) +Event: 24.774 Thread 0x0000023344005650 nmethod 3034 0x0000023327f2c010 code [0x0000023327f2c1a0, 0x0000023327f2c358] +Event: 25.107 Thread 0x0000023344005650 3036 3 sun.nio.cs.SingleByte$Encoder::encodeArrayLoop (280 bytes) +Event: 25.109 Thread 0x0000023344005650 nmethod 3036 0x0000023327f2c410 code [0x0000023327f2c920, 0x0000023327f2f188] + +GC Heap History (4 events): +Event: 1.419 GC heap before +{Heap before GC invocations=0 (full 0): + garbage-first heap total 253952K, used 26624K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 11 young (22528K), 0 survivors (0K) + Metaspace used 6598K, committed 6720K, reserved 1064960K + class space used 507K, committed 576K, reserved 1048576K +} +Event: 1.422 GC heap after +{Heap after GC invocations=1 (full 0): + garbage-first heap total 253952K, used 3683K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 2 young (4096K), 2 survivors (4096K) + Metaspace used 6598K, committed 6720K, reserved 1064960K + class space used 507K, committed 576K, reserved 1048576K +} +Event: 5.307 GC heap before +{Heap before GC invocations=1 (full 0): + garbage-first heap total 253952K, used 34403K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 18 young (36864K), 2 survivors (4096K) + Metaspace used 9420K, committed 9600K, reserved 1064960K + class space used 777K, committed 896K, reserved 1048576K +} +Event: 5.311 GC heap after +{Heap after GC invocations=2 (full 0): + garbage-first heap total 253952K, used 5294K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 2 young (4096K), 2 survivors (4096K) + Metaspace used 9420K, committed 9600K, reserved 1064960K + class space used 777K, committed 896K, reserved 1048576K +} + +Deoptimization events (20 events): +Event: 14.454 Thread 0x00000233200d0ae0 Uncommon trap: trap_request=0xffffff45 fr.pc=0x000002332f646070 relative=0x00000000000000d0 +Event: 14.454 Thread 0x00000233200d0ae0 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000002332f646070 method=java.util.ArrayList$Itr.next()Ljava/lang/Object; @ 17 c2 +Event: 14.454 Thread 0x00000233200d0ae0 DEOPT PACKING pc=0x000002332f646070 sp=0x000000be0c8fef90 +Event: 14.454 Thread 0x00000233200d0ae0 DEOPT UNPACKING pc=0x000002332ede23a3 sp=0x000000be0c8fef28 mode 2 +Event: 15.104 Thread 0x00000233200d0ae0 DEOPT PACKING pc=0x0000023327e73c22 sp=0x000000be0c8ff050 +Event: 15.104 Thread 0x00000233200d0ae0 DEOPT UNPACKING pc=0x000002332ede2b43 sp=0x000000be0c8fe510 mode 0 +Event: 16.038 Thread 0x00000233200d0ae0 DEOPT PACKING pc=0x0000023327e74fe6 sp=0x000000be0c8ff0c0 +Event: 16.038 Thread 0x00000233200d0ae0 DEOPT UNPACKING pc=0x000002332ede2b43 sp=0x000000be0c8fe578 mode 0 +Event: 17.705 Thread 0x00000233200d0ae0 Uncommon trap: trap_request=0xffffffde fr.pc=0x000002332f69adf4 relative=0x00000000000029b4 +Event: 17.705 Thread 0x00000233200d0ae0 Uncommon trap: reason=class_check action=maybe_recompile pc=0x000002332f69adf4 method=com.badlogic.gdx.utils.ComparableTimSort.countRunAndMakeAscending([Ljava/lang/Object;II)I @ 39 c2 +Event: 17.705 Thread 0x00000233200d0ae0 DEOPT PACKING pc=0x000002332f69adf4 sp=0x000000be0c8ff080 +Event: 17.705 Thread 0x00000233200d0ae0 DEOPT UNPACKING pc=0x000002332ede23a3 sp=0x000000be0c8fee80 mode 2 +Event: 22.756 Thread 0x00000233200d0ae0 Uncommon trap: trap_request=0xffffffde fr.pc=0x000002332f69adf4 relative=0x00000000000029b4 +Event: 22.756 Thread 0x00000233200d0ae0 Uncommon trap: reason=class_check action=maybe_recompile pc=0x000002332f69adf4 method=com.badlogic.gdx.utils.ComparableTimSort.countRunAndMakeAscending([Ljava/lang/Object;II)I @ 39 c2 +Event: 22.756 Thread 0x00000233200d0ae0 DEOPT PACKING pc=0x000002332f69adf4 sp=0x000000be0c8ff080 +Event: 22.756 Thread 0x00000233200d0ae0 DEOPT UNPACKING pc=0x000002332ede23a3 sp=0x000000be0c8fee80 mode 2 +Event: 25.105 Thread 0x0000023346eb1950 Uncommon trap: trap_request=0xffffff45 fr.pc=0x000002332f6135f8 relative=0x0000000000000078 +Event: 25.105 Thread 0x0000023346eb1950 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000002332f6135f8 method=com.badlogic.gdx.utils.Array$ArrayIterator.hasNext()Z @ 4 c2 +Event: 25.105 Thread 0x0000023346eb1950 DEOPT PACKING pc=0x000002332f6135f8 sp=0x000000be134ff2e0 +Event: 25.105 Thread 0x0000023346eb1950 DEOPT UNPACKING pc=0x000002332ede23a3 sp=0x000000be134ff278 mode 2 + +Classes unloaded (0 events): +No events + +Classes redefined (0 events): +No events + +Internal exceptions (20 events): +Event: 0.302 Thread 0x00000233200d0ae0 Exception (0x0000000718532580) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 0.302 Thread 0x00000233200d0ae0 Exception (0x0000000718532900) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 0.823 Thread 0x00000233200d0ae0 Exception (0x0000000718582200) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 1.030 Thread 0x00000233200d0ae0 Exception (0x00000007182bd530) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 1.030 Thread 0x00000233200d0ae0 Exception (0x00000007182bd8d8) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 1.032 Thread 0x00000233200d0ae0 Exception (0x00000007182c8ea0) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 1.032 Thread 0x00000233200d0ae0 Exception (0x00000007182c9180) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 1.185 Thread 0x00000233200d0ae0 Exception (0x00000007181f6410) +thrown [s\open\src\hotspot\share\classfile\systemDictionary.cpp, line 256] +Event: 1.201 Thread 0x00000233200d0ae0 Exception (0x0000000717e7ce18) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 1.220 Thread 0x00000233200d0ae0 Exception (0x0000000717ecb968) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 1.221 Thread 0x00000233200d0ae0 Exception (0x0000000717ed5d88) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 4.678 Thread 0x00000233200d0ae0 Exception (0x00000007180b8f48) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 5.558 Thread 0x00000233200d0ae0 Exception (0x0000000717f6d418) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 5.559 Thread 0x00000233200d0ae0 Exception (0x0000000717f7ba08) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 5.560 Thread 0x00000233200d0ae0 Exception (0x0000000717f85180) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 5.634 Thread 0x00000233200d0ae0 Exception (0x0000000717ca2a60) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 5.650 Thread 0x00000233200d0ae0 Exception (0x0000000717a29c90) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 5.654 Thread 0x00000233200d0ae0 Exception (0x0000000717a33e60) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 21.904 Thread 0x0000023355a48090 Implicit null exception at 0x0000023327eb683f to 0x0000023327eb752d +Event: 21.904 Thread 0x0000023355a48090 Exception (0x00000007166f72f8) +thrown [s\open\src\hotspot\share\runtime\sharedRuntime.cpp, line 628] + +VM Operations (20 events): +Event: 13.808 Executing VM operation: Cleanup +Event: 13.808 Executing VM operation: Cleanup done +Event: 14.809 Executing VM operation: Cleanup +Event: 14.809 Executing VM operation: Cleanup done +Event: 15.810 Executing VM operation: Cleanup +Event: 15.810 Executing VM operation: Cleanup done +Event: 17.811 Executing VM operation: Cleanup +Event: 17.811 Executing VM operation: Cleanup done +Event: 19.811 Executing VM operation: Cleanup +Event: 19.811 Executing VM operation: Cleanup done +Event: 20.811 Executing VM operation: Cleanup +Event: 20.811 Executing VM operation: Cleanup done +Event: 21.812 Executing VM operation: Cleanup +Event: 21.812 Executing VM operation: Cleanup done +Event: 22.812 Executing VM operation: Cleanup +Event: 22.812 Executing VM operation: Cleanup done +Event: 23.813 Executing VM operation: Cleanup +Event: 23.813 Executing VM operation: Cleanup done +Event: 24.813 Executing VM operation: Cleanup +Event: 24.814 Executing VM operation: Cleanup done + +Events (20 events): +Event: 22.987 Thread 0x0000023346936ec0 Thread added: 0x0000023346936ec0 +Event: 22.987 Thread 0x0000023346938ba0 Thread added: 0x0000023346938ba0 +Event: 23.054 Thread 0x000002334693a880 Thread added: 0x000002334693a880 +Event: 23.270 Thread 0x000002334693b220 Thread added: 0x000002334693b220 +Event: 23.470 Thread 0x000002334693b6f0 Thread added: 0x000002334693b6f0 +Event: 23.570 Thread 0x000002334693bbc0 Thread added: 0x000002334693bbc0 +Event: 23.637 Thread 0x0000023346937390 Thread added: 0x0000023346937390 +Event: 23.704 Thread 0x000002334693ca30 Thread added: 0x000002334693ca30 +Event: 23.737 Thread 0x000002334693cf00 Thread added: 0x000002334693cf00 +Event: 23.787 Thread 0x000002334693c090 Thread added: 0x000002334693c090 +Event: 24.337 Thread 0x0000023346937860 Thread added: 0x0000023346937860 +Event: 24.354 Thread 0x0000023355a48090 Thread added: 0x0000023355a48090 +Event: 24.387 Thread 0x000002334704a0b0 Thread added: 0x000002334704a0b0 +Event: 24.454 Thread 0x0000023347051430 Thread added: 0x0000023347051430 +Event: 24.554 Thread 0x000002334704a580 Thread added: 0x000002334704a580 +Event: 24.620 Thread 0x000002334704aa50 Thread added: 0x000002334704aa50 +Event: 24.854 Thread 0x000002334704af20 Thread added: 0x000002334704af20 +Event: 25.108 Thread 0x0000023346eb1950 Thread exited: 0x0000023346eb1950 +Event: 25.120 Thread 0x000002334704da70 Thread added: 0x000002334704da70 +Event: 25.121 Thread 0x000002334704e8e0 Thread added: 0x000002334704e8e0 + + +Dynamic libraries: +0x00007ff726ee0000 - 0x00007ff726ef0000 C:\Program Files\Java\jdk-17\bin\java.exe +0x00007ffba77b0000 - 0x00007ffba79a8000 C:\Windows\SYSTEM32\ntdll.dll +0x00007ffba7300000 - 0x00007ffba73bd000 C:\Windows\System32\KERNEL32.DLL +0x00007ffba4f20000 - 0x00007ffba5216000 C:\Windows\System32\KERNELBASE.dll +0x00007ffba5220000 - 0x00007ffba5320000 C:\Windows\System32\ucrtbase.dll +0x00007ffb7e7c0000 - 0x00007ffb7e7d8000 C:\Program Files\Java\jdk-17\bin\jli.dll +0x00007ffb95200000 - 0x00007ffb9521b000 C:\Program Files\Java\jdk-17\bin\VCRUNTIME140.dll +0x00007ffba7250000 - 0x00007ffba72fe000 C:\Windows\System32\ADVAPI32.dll +0x00007ffba5810000 - 0x00007ffba58ae000 C:\Windows\System32\msvcrt.dll +0x00007ffba58b0000 - 0x00007ffba594c000 C:\Windows\System32\sechost.dll +0x00007ffba60e0000 - 0x00007ffba6206000 C:\Windows\System32\RPCRT4.dll +0x00007ffba73c0000 - 0x00007ffba755e000 C:\Windows\System32\USER32.dll +0x00007ffba53f0000 - 0x00007ffba5412000 C:\Windows\System32\win32u.dll +0x00007ffb9a290000 - 0x00007ffb9a52a000 C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_60b5254171f9507e\COMCTL32.dll +0x00007ffba6210000 - 0x00007ffba623c000 C:\Windows\System32\GDI32.dll +0x00007ffba5640000 - 0x00007ffba575a000 C:\Windows\System32\gdi32full.dll +0x00007ffba5350000 - 0x00007ffba53ed000 C:\Windows\System32\msvcp_win.dll +0x00007ffb98ea0000 - 0x00007ffb98eaa000 C:\Windows\SYSTEM32\VERSION.dll +0x00007ffba6250000 - 0x00007ffba6280000 C:\Windows\System32\IMM32.DLL +0x00007ffb94620000 - 0x00007ffb9462c000 C:\Program Files\Java\jdk-17\bin\vcruntime140_1.dll +0x00007ffb4cb50000 - 0x00007ffb4cbde000 C:\Program Files\Java\jdk-17\bin\msvcp140.dll +0x00007ffb07fb0000 - 0x00007ffb08b87000 C:\Program Files\Java\jdk-17\bin\server\jvm.dll +0x00007ffba6240000 - 0x00007ffba6248000 C:\Windows\System32\PSAPI.DLL +0x00007ffb98e70000 - 0x00007ffb98e97000 C:\Windows\SYSTEM32\WINMM.dll +0x00007ffb84120000 - 0x00007ffb84129000 C:\Windows\SYSTEM32\WSOCK32.dll +0x00007ffba71e0000 - 0x00007ffba724b000 C:\Windows\System32\WS2_32.dll +0x00007ffba36e0000 - 0x00007ffba36f2000 C:\Windows\SYSTEM32\kernel.appcore.dll +0x00007ffb94420000 - 0x00007ffb9442a000 C:\Program Files\Java\jdk-17\bin\jimage.dll +0x00007ffba2bb0000 - 0x00007ffba2d94000 C:\Windows\SYSTEM32\DBGHELP.DLL +0x00007ffb96480000 - 0x00007ffb964b4000 C:\Windows\SYSTEM32\dbgcore.DLL +0x00007ffba4e90000 - 0x00007ffba4f12000 C:\Windows\System32\bcryptPrimitives.dll +0x00007ffb7e790000 - 0x00007ffb7e7b5000 C:\Program Files\Java\jdk-17\bin\java.dll +0x00007ffb3a6a0000 - 0x00007ffb3a777000 C:\Program Files\Java\jdk-17\bin\jsvml.dll +0x00007ffba63f0000 - 0x00007ffba6b35000 C:\Windows\System32\SHELL32.dll +0x00007ffba2f00000 - 0x00007ffba369b000 C:\Windows\SYSTEM32\windows.storage.dll +0x00007ffba5c50000 - 0x00007ffba5fa4000 C:\Windows\System32\combase.dll +0x00007ffba4860000 - 0x00007ffba488e000 C:\Windows\SYSTEM32\Wldp.dll +0x00007ffba6b40000 - 0x00007ffba6bed000 C:\Windows\System32\SHCORE.dll +0x00007ffba5b20000 - 0x00007ffba5b75000 C:\Windows\System32\shlwapi.dll +0x00007ffba4dc0000 - 0x00007ffba4de5000 C:\Windows\SYSTEM32\profapi.dll +0x00007ffb7bf70000 - 0x00007ffb7bf89000 C:\Program Files\Java\jdk-17\bin\net.dll +0x00007ffb9f190000 - 0x00007ffb9f29a000 C:\Windows\SYSTEM32\WINHTTP.dll +0x0000000180000000 - 0x000000018008c000 C:\Windows\system32\ASProxy64.dll +0x00007ffba5fb0000 - 0x00007ffba60da000 C:\Windows\System32\ole32.dll +0x00007ffba5b80000 - 0x00007ffba5c4d000 C:\Windows\System32\OLEAUT32.dll +0x00007ffba45c0000 - 0x00007ffba462a000 C:\Windows\SYSTEM32\MSWSOCK.dll +0x00007ffba42b0000 - 0x00007ffba42eb000 C:\Windows\SYSTEM32\IPHLPAPI.DLL +0x00007ffba4d40000 - 0x00007ffba4d72000 C:\Windows\SYSTEM32\SspiCli.dll +0x00007ffb765b0000 - 0x00007ffb765c6000 C:\Program Files\Java\jdk-17\bin\nio.dll +0x00007ffb74f20000 - 0x00007ffb74f38000 C:\Program Files\Java\jdk-17\bin\zip.dll +0x00007ffb93330000 - 0x00007ffb93340000 C:\Program Files\Java\jdk-17\bin\verify.dll +0x0000000050410000 - 0x0000000050439000 C:\Users\isaac\AppData\Local\Temp\libgdxisaac\e787ab0a\gdx64.dll +0x00007ffba2120000 - 0x00007ffba21be000 C:\Windows\system32\uxtheme.dll +0x00007ffb6c5b0000 - 0x00007ffb6c625000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\lwjgl.dll +0x00007ffb2acc0000 - 0x00007ffb2af19000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\jemalloc.dll +0x00007ffb6cf20000 - 0x00007ffb6cf81000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\glfw.dll +0x00007ffb6d270000 - 0x00007ffb6d2b5000 C:\Windows\SYSTEM32\dinput8.dll +0x00007ffb95db0000 - 0x00007ffb95dc1000 C:\Windows\SYSTEM32\xinput1_4.dll +0x00007ffba5420000 - 0x00007ffba546e000 C:\Windows\System32\cfgmgr32.dll +0x00007ffba4c40000 - 0x00007ffba4c73000 C:\Windows\SYSTEM32\DEVOBJ.dll +0x00007ffba24b0000 - 0x00007ffba24df000 C:\Windows\SYSTEM32\dwmapi.dll +0x00007ffb7c850000 - 0x00007ffb7c9a2000 C:\Windows\SYSTEM32\inputhost.dll +0x00007ffba0590000 - 0x00007ffba06e5000 C:\Windows\SYSTEM32\wintypes.dll +0x00007ffba1650000 - 0x00007ffba19ae000 C:\Windows\SYSTEM32\CoreUIComponents.dll +0x00007ffba1d30000 - 0x00007ffba1e22000 C:\Windows\SYSTEM32\CoreMessaging.dll +0x00007ffba2da0000 - 0x00007ffba2e96000 C:\Windows\SYSTEM32\PROPSYS.dll +0x00007ffba3fe0000 - 0x00007ffba4013000 C:\Windows\SYSTEM32\ntmarta.dll +0x00007ffba7570000 - 0x00007ffba7684000 C:\Windows\System32\MSCTF.dll +0x00007ffb27c20000 - 0x00007ffb27db7000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\OpenAL.dll +0x00007ffba6bf0000 - 0x00007ffba6c99000 C:\Windows\System32\clbcatq.dll +0x00007ffb9d930000 - 0x00007ffb9d9b5000 C:\Windows\System32\MMDevApi.dll +0x00007ffb9d2a0000 - 0x00007ffb9d422000 C:\Windows\SYSTEM32\AUDIOSES.DLL +0x00007ffba4bd0000 - 0x00007ffba4c1b000 C:\Windows\SYSTEM32\powrprof.dll +0x00007ffba4bb0000 - 0x00007ffba4bc2000 C:\Windows\SYSTEM32\UMPDC.dll +0x00007ffba24e0000 - 0x00007ffba24f4000 C:\Windows\SYSTEM32\resourcepolicyclient.dll +0x00007ffb34dd0000 - 0x00007ffb34ef5000 C:\Windows\SYSTEM32\opengl32.dll +0x00007ffb793b0000 - 0x00007ffb793dc000 C:\Windows\SYSTEM32\GLU32.dll +0x00007ffb9c490000 - 0x00007ffb9c592000 C:\Windows\System32\AppXDeploymentClient.dll +0x00007ffb71a20000 - 0x00007ffb71a4a000 C:\Windows\System32\DriverStore\FileRepository\u0363312.inf_amd64_08fc5018b1b99545\B363211\atig6pxx.dll +0x00007ffb05200000 - 0x00007ffb07fa5000 C:\Windows\System32\DriverStore\FileRepository\u0363312.inf_amd64_08fc5018b1b99545\B363211\atio6axx.dll +0x00007ffba6d10000 - 0x00007ffba717e000 C:\Windows\System32\SETUPAPI.dll +0x00007ffba5320000 - 0x00007ffba5347000 C:\Windows\System32\bcrypt.dll +0x00007ffb94f20000 - 0x00007ffb94f44000 C:\Windows\SYSTEM32\dxva2.dll +0x00007ffb6d8c0000 - 0x00007ffb6d8fc000 C:\Windows\System32\DriverStore\FileRepository\u0363312.inf_amd64_08fc5018b1b99545\B363211\atig6txx.dll +0x00007ffb1fb10000 - 0x00007ffb1fccf000 C:\Windows\SYSTEM32\atiadlxx.dll +0x00007ffba55d0000 - 0x00007ffba5637000 C:\Windows\System32\WINTRUST.dll +0x00007ffba5470000 - 0x00007ffba55ce000 C:\Windows\System32\CRYPT32.dll +0x00007ffba49f0000 - 0x00007ffba4a02000 C:\Windows\SYSTEM32\MSASN1.dll +0x00007ffb9eba0000 - 0x00007ffb9ebdb000 C:\Windows\SYSTEM32\dxcore.dll +0x00007ffb6c2e0000 - 0x00007ffb6c33d000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\lwjgl_opengl.dll +0x00007ffb7c9b0000 - 0x00007ffb7caaa000 C:\Windows\SYSTEM32\textinputframework.dll +0x00007ffb7f310000 - 0x00007ffb7f376000 C:\Windows\system32\Oleacc.dll +0x00007ffb72850000 - 0x00007ffb72b45000 C:\Windows\System32\uiautomationcore.dll +0x00007ffba47d0000 - 0x00007ffba47dc000 C:\Windows\SYSTEM32\CRYPTBASE.DLL +0x00000000503b0000 - 0x000000005040a000 C:\Users\isaac\AppData\Local\Temp\libgdxisaac\888fe1bc\gdx-box2d64.dll + +dbghelp: loaded successfully - version: 4.0.5 - missing functions: none +symbol engine: initialized successfully - sym options: 0x614 - pdb path: .;C:\Program Files\Java\jdk-17\bin;C:\Windows\SYSTEM32;C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_60b5254171f9507e;C:\Program Files\Java\jdk-17\bin\server;C:\Users\isaac\AppData\Local\Temp\libgdxisaac\e787ab0a;C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7;C:\Windows\System32\DriverStore\FileRepository\u0363312.inf_amd64_08fc5018b1b99545\B363211;C:\Users\isaac\AppData\Local\Temp\libgdxisaac\888fe1bc + +VM Arguments: +jvm_args: -XX:+ShowCodeDetailsInExceptionMessages +java_command: com.csse3200.game.desktop.DesktopLauncher +java_class_path (initial): C:\Users\isaac\OneDrive\Documents\School\University of Queensland\UQ 2023\UQ 2023 Semester 2\CSSE3200\2023-studio-3\source\desktop\bin\main;\csse3200-game-core\bin\default;C:\Users\isaac\OneDrive\Documents\School\University of Queensland\UQ 2023\UQ 2023 Semester 2\CSSE3200\2023-studio-3\source\core\bin\main;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-backend-lwjgl3\1.11.0\58a96db4cd349be4292d547856aa1e1c5f065f4e\gdx-backend-lwjgl3-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-platform\1.11.0\697fb13eada6d3c6ca648c9788692b0159add126\gdx-platform-1.11.0-natives-desktop.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-box2d-platform\1.11.0\62ff9baa1e57a11e0a4428a38c9660bf9f312fdc\gdx-box2d-platform-1.11.0-natives-desktop.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-tools\1.11.0\a5d30eafd0f2fbab314efdf6d98ebc27388b7c0a\gdx-tools-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx-controllers\gdx-controllers-desktop\2.2.2\625b3bdbe803e9c4af181b4791202cfcf776d805\gdx-controllers-desktop-2.2.2.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-backend-lwjgl\1.11.0\33555a2cf8b4d9db4122b2fe42e7674b343d8b4\gdx-backend-lwjgl-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-freetype\1.11.0\a3634ad2e6c56d251268d6ab5c0f66eee2841f2c\gdx-freetype-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-backend-headless\1.11.0\3c3d0c951db72891d894df1725d09179fd0bca00\gdx-backend-headless-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\net.dermetfan.libgdx-utils\libgdx-utils-box2d\0.13.4\918d79a20ea3c898cdb3611782c5b2bfa6ec575b\libgdx-utils-box2d-0.13.4.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-box2d\1.11.0\ad4facee800dd945d6d6e93dea2936bc135b +Launcher Type: SUN_STANDARD + +[Global flags] + intx CICompilerCount = 12 {product} {ergonomic} + uint ConcGCThreads = 3 {product} {ergonomic} + uint G1ConcRefinementThreads = 13 {product} {ergonomic} + size_t G1HeapRegionSize = 2097152 {product} {ergonomic} + uintx GCDrainStackTargetSize = 64 {product} {ergonomic} + size_t InitialHeapSize = 260046848 {product} {ergonomic} + size_t MarkStackSize = 4194304 {product} {ergonomic} + size_t MaxHeapSize = 4135583744 {product} {ergonomic} + size_t MaxNewSize = 2480930816 {product} {ergonomic} + size_t MinHeapDeltaBytes = 2097152 {product} {ergonomic} + size_t MinHeapSize = 8388608 {product} {ergonomic} + uintx NonNMethodCodeHeapSize = 7602480 {pd product} {ergonomic} + uintx NonProfiledCodeHeapSize = 122027880 {pd product} {ergonomic} + uintx ProfiledCodeHeapSize = 122027880 {pd product} {ergonomic} + uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} + bool SegmentedCodeCache = true {product} {ergonomic} + bool ShowCodeDetailsInExceptionMessages = true {manageable} {command line} + size_t SoftMaxHeapSize = 4135583744 {manageable} {ergonomic} + bool UseCompressedClassPointers = true {product lp64_product} {ergonomic} + bool UseCompressedOops = true {product lp64_product} {ergonomic} + bool UseG1GC = true {product} {ergonomic} + bool UseLargePagesIndividualAllocation = false {pd product} {ergonomic} + +Logging: +Log output configuration: + #0: stdout all=warning uptime,level,tags + #1: stderr all=off uptime,level,tags + +Environment Variables: +PATH=C:\Users\isaac\bin;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\local\bin;C:\Program Files\Git\usr\bin;C:\Program Files\Git\usr\bin;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Users\isaac\bin;C:\Program Files\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn;C:\Program Files (x86)\Microsoft SQL Server\150\Tools\Binn;C:\Program Files\Microsoft SQL Server\150\Tools\Binn;C:\Program Files\Microsoft SQL Server\150\DTS\Binn;C:\Program Files (x86)\Microsoft SQL Server\150\DTS\Binn;C:\Program Files\Azure Data Studio\bin;C:\Program Files\Git\cmd;C:\Program Files\PuTTY;C:\Program Files (x86)\Pololu\USB AVR Programmer v2\bin;C:\Program Files\nodejs;C:\Users\isaac\AppData\Local\Programs\Python\Python310\Scripts;C:\Users\isaac\AppData\Local\Programs\Python\Python310;C:\Users\isaac\AppData\Local\Microsoft\WindowsApps;C:\Users\isaac\AppData\Local\Programs\Microsoft VS Code\bin;C:\Program Files\Azure Data Studio\bin;C:\Users\isaac\AppData\Roaming\npm;C:\Program Files\Git\usr\bin\vendor_perl;C:\Program Files\Git\usr\bin\core_perl +USERNAME=isaac +SHELL=C:\Program Files\Git\usr\bin\bash.exe +DISPLAY=needs-to-be-defined +LANG=en_US.UTF-8 +OS=Windows_NT +PROCESSOR_IDENTIFIER=AMD64 Family 23 Model 104 Stepping 1, AuthenticAMD + + + +--------------- S Y S T E M --------------- + +OS: + Windows 10 , 64 bit Build 19041 (10.0.19041.3393) +OS uptime: 5 days 7:56 hours + +CPU: total 16 (initial active 16) (16 cores per cpu, 2 threads per core) family 23 model 104 stepping 1 microcode 0x0, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4a, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, clmul, bmi1, bmi2, adx, sha, fma, vzeroupper, clflush, clflushopt + +Memory: 4k page, system-wide physical 15769M (6305M free) +TotalPageFile size 19865M (AvailPageFile size 4031M) +current process WorkingSet (physical memory assigned to process): 401M, peak: 420M +current process commit charge ("private bytes"): 714M, peak: 726M + +vm_info: Java HotSpot(TM) 64-Bit Server VM (17.0.6+9-LTS-190) for windows-amd64 JRE (17.0.6+9-LTS-190), built on Dec 6 2022 15:53:54 by "mach5one" with MS VC++ 17.1 (VS2022) + +END. diff --git a/hs_err_pid28328.log b/hs_err_pid28328.log new file mode 100644 index 000000000..9a15f3d80 --- /dev/null +++ b/hs_err_pid28328.log @@ -0,0 +1,840 @@ +# +# A fatal error has been detected by the Java Runtime Environment: +# +# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000000503bba43, pid=28328, tid=16616 +# +# JRE version: Java(TM) SE Runtime Environment (17.0.6+9) (build 17.0.6+9-LTS-190) +# Java VM: Java HotSpot(TM) 64-Bit Server VM (17.0.6+9-LTS-190, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64) +# Problematic frame: +# C [gdx-box2d64.dll+0xba43] +# +# 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: +# https://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: -XX:+ShowCodeDetailsInExceptionMessages com.csse3200.game.desktop.DesktopLauncher + +Host: AMD Ryzen 7 5700U with Radeon Graphics , 16 cores, 15G, Windows 10 , 64 bit Build 19041 (10.0.19041.3393) +Time: Sat Sep 30 17:24:38 2023 E. Australia Standard Time elapsed time: 28.851041 seconds (0d 0h 0m 28s) + +--------------- T H R E A D --------------- + +Current thread (0x000001bb11a80260): JavaThread "main" [_thread_in_native, id=16616, stack(0x0000005c3ac00000,0x0000005c3ad00000)] + +Stack: [0x0000005c3ac00000,0x0000005c3ad00000], sp=0x0000005c3acfe7b0, free space=1017k +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) +C [gdx-box2d64.dll+0xba43] + +Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) +J 3222 com.badlogic.gdx.physics.box2d.World.jniCreateBody(JIFFFFFFFFZZZZZF)J (0 bytes) @ 0x000001bb228318ce [0x000001bb22831820+0x00000000000000ae] +J 3221 c1 com.badlogic.gdx.physics.box2d.World.createBody(Lcom/badlogic/gdx/physics/box2d/BodyDef;)Lcom/badlogic/gdx/physics/box2d/Body; (120 bytes) @ 0x000001bb1b14a8c4 [0x000001bb1b14a7a0+0x0000000000000124] +J 3218 c1 com.csse3200.game.physics.components.PhysicsComponent.(Lcom/csse3200/game/physics/PhysicsEngine;)V (58 bytes) @ 0x000001bb1b148fc4 [0x000001bb1b148d00+0x00000000000002c4] +J 3356 c1 com.csse3200.game.entities.factories.ProjectileFactory.createBaseProjectile(SLcom/badlogic/gdx/math/Vector2;Lcom/badlogic/gdx/math/Vector2;)Lcom/csse3200/game/entities/Entity; (151 bytes) @ 0x000001bb1b18cb34 [0x000001bb1b18c280+0x00000000000008b4] +j com.csse3200.game.entities.factories.ProjectileFactory.createMobBall(SLcom/badlogic/gdx/math/Vector2;Lcom/badlogic/gdx/math/Vector2;)Lcom/csse3200/game/entities/Entity;+3 +J 3420 c1 com.csse3200.game.components.tasks.MobRangedAttackTask.updateMobState()V (563 bytes) @ 0x000001bb1b1b0234 [0x000001bb1b1ac4e0+0x0000000000003d54] +j com.csse3200.game.components.tasks.MobRangedAttackTask.update()V+1 +J 3467 c2 com.csse3200.game.ai.tasks.AITaskComponent.update()V (42 bytes) @ 0x000001bb228e513c [0x000001bb228e4f00+0x000000000000023c] +J 3301 c2 com.csse3200.game.entities.EntityService.update()V (39 bytes) @ 0x000001bb22882a8c [0x000001bb228827c0+0x00000000000002cc] +J 3125 c1 com.csse3200.game.screens.MainGameScreen.render(F)V (122 bytes) @ 0x000001bb1b10a6fc [0x000001bb1b10a080+0x000000000000067c] +J 3004 c1 com.badlogic.gdx.backends.lwjgl3.Lwjgl3Window.update()Z (217 bytes) @ 0x000001bb1b0dd37c [0x000001bb1b0dc600+0x0000000000000d7c] +j com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.loop()V+111 +j com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.(Lcom/badlogic/gdx/ApplicationListener;Lcom/badlogic/gdx/backends/lwjgl3/Lwjgl3ApplicationConfiguration;)V+269 +j com.csse3200.game.desktop.DesktopLauncher.main([Ljava/lang/String;)V+19 +v ~StubRoutines::call_stub + +siginfo: EXCEPTION_ACCESS_VIOLATION (0xc0000005), reading address 0x000001ba42160090 + + +Register to memory mapping: + +RIP=0x00000000503bba43 gdx-box2d64.dll +RAX=0x00000000503ff060 gdx-box2d64.dll +RBX=0x000001ba42160090 is an unknown value +RCX=0x000001bb37c924d0 points into unknown readable memory: 0x000001bb37cab860 | 60 b8 ca 37 bb 01 00 00 +RDX=0x00000000000000b8 is an unknown value +RSP=0x0000005c3acfe7b0 is pointing into the stack for thread: 0x000001bb11a80260 +RBP=0x000001bb37c92500 points into unknown readable memory: 0x0000000000000000 | 00 00 00 00 00 00 00 00 +RSI=0x000001bb37c924d0 points into unknown readable memory: 0x000001bb37cab860 | 60 b8 ca 37 bb 01 00 00 +RDI=0x0000000000000001 is an unknown value +R8 =0x000001bb37c924d0 points into unknown readable memory: 0x000001bb37cab860 | 60 b8 ca 37 bb 01 00 00 +R9 =0x0000000000000002 is an unknown value +R10=0x0000000000000001 is an unknown value +R11=0x0000000000000001 is an unknown value +R12=0x0000000000000006 is an unknown value +R13=0x000001bb427060f0 is pointing into metadata +R14=0x0000000000000001 is an unknown value +R15=0x000001bb11a80260 is a thread + + +Registers: +RAX=0x00000000503ff060, RBX=0x000001ba42160090, RCX=0x000001bb37c924d0, RDX=0x00000000000000b8 +RSP=0x0000005c3acfe7b0, RBP=0x000001bb37c92500, RSI=0x000001bb37c924d0, RDI=0x0000000000000001 +R8 =0x000001bb37c924d0, R9 =0x0000000000000002, R10=0x0000000000000001, R11=0x0000000000000001 +R12=0x0000000000000006, R13=0x000001bb427060f0, R14=0x0000000000000001, R15=0x000001bb11a80260 +RIP=0x00000000503bba43, EFLAGS=0x0000000000010206 + +Top of Stack: (sp=0x0000005c3acfe7b0) +0x0000005c3acfe7b0: abdcd8add301f07b b2a38653d6a71a70 +0x0000005c3acfe7c0: c47301f8ec6b8116 c130a85ba7f5055b +0x0000005c3acfe7d0: 0000000000000040 000001bb2280da29 +0x0000005c3acfe7e0: 0000000000000008 000001bb37c924d0 +0x0000005c3acfe7f0: 0000005c3acfe890 0000000000000001 +0x0000005c3acfe800: 0000005c3acfe9b0 0000000000000000 +0x0000005c3acfe810: 000001bb427060f0 00000000503d0e22 +0x0000005c3acfe820: 000001bb21f43ce0 000001bb11a80260 +0x0000005c3acfe830: 0000000000000008 0000000000000008 +0x0000005c3acfe840: 0000000000000000 0000000716c52bc8 +0x0000005c3acfe850: 00000007171b2fd0 0000000000000001 +0x0000005c3acfe860: 0000000000000001 00000000503d66e6 +0x0000005c3acfe870: 4014000000000000 4014000000000000 +0x0000005c3acfe880: 0000000042000000 0000000000000000 +0x0000005c3acfe890: 0000000000000002 0000000000000000 +0x0000005c3acfe8a0: 0000000000000000 40a0000000000000 + +Instructions: (pc=0x00000000503bba43) +0x00000000503bb943: f6 48 8d 2d b5 16 03 00 48 8d 3d 0e 37 04 00 4c +0x00000000503bb953: 8d 2d f7 31 03 00 4c 8d 25 55 32 03 00 eb 1a 83 +0x00000000503bb963: fe 0d 7e 11 41 b8 49 00 00 00 4c 89 ea 4c 89 e1 +0x00000000503bb973: e8 18 82 02 00 48 83 c3 01 48 63 c6 39 5c 85 00 +0x00000000503bb983: 7d 03 83 c6 01 48 81 fb 80 02 00 00 40 88 34 1f +0x00000000503bb993: 75 cd c6 05 a4 36 04 00 01 48 83 c4 28 5b 5e 5f +0x00000000503bb9a3: 5d 41 5c 41 5d c3 90 66 0f 1f 44 00 00 57 56 53 +0x00000000503bb9b3: 48 83 ec 20 8b 41 08 48 89 cf 85 c0 7e 1d 31 f6 +0x00000000503bb9c3: 31 db 48 8b 07 83 c3 01 48 8b 4c 30 08 48 83 c6 +0x00000000503bb9d3: 10 e8 a7 08 00 00 39 5f 08 7f e7 48 8b 0f 48 83 +0x00000000503bb9e3: c4 20 5b 5e 5f e9 93 08 00 00 90 66 90 41 55 41 +0x00000000503bb9f3: 54 55 57 56 53 48 83 ec 38 48 63 da 48 89 ce 83 +0x00000000503bba03: fb 00 0f 84 95 01 00 00 0f 8e 6f 01 00 00 81 fb +0x00000000503bba13: 80 02 00 00 0f 8f 23 01 00 00 48 8d 05 3c 36 04 +0x00000000503bba23: 00 44 0f b6 24 18 41 80 fc 0d 4c 89 e3 0f 87 da +0x00000000503bba33: 00 00 00 48 8d 2c de 48 8b 5d 10 48 85 db 74 1d +0x00000000503bba43: 48 8b 03 48 89 45 10 48 89 d8 48 83 c4 38 5b 5e +0x00000000503bba53: 5f 5d 41 5c 41 5d c3 66 0f 1f 44 00 00 48 63 46 +0x00000000503bba63: 08 4c 8b 2e 3b 46 0c 0f 84 40 01 00 00 48 c1 e0 +0x00000000503bba73: 04 b9 00 40 00 00 4d 63 e4 49 8d 7c 05 00 e8 ea +0x00000000503bba83: 07 00 00 48 89 c3 48 89 47 08 48 8d 05 6c 15 03 +0x00000000503bba93: 00 46 8b 24 a0 b8 00 40 00 00 99 41 f7 fc 45 89 +0x00000000503bbaa3: e5 44 89 27 44 0f af e8 41 81 fd 00 40 00 00 0f +0x00000000503bbab3: 8f 9b 00 00 00 83 f8 01 7e 23 49 63 d4 83 e8 01 +0x00000000503bbac3: 45 31 c0 49 89 d1 48 8d 0c 13 49 f7 d9 41 83 c0 +0x00000000503bbad3: 01 4a 89 0c 09 48 01 d1 41 39 c0 75 f0 45 29 e5 +0x00000000503bbae3: 4d 63 ed 4a c7 04 2b 00 00 00 00 48 8b 03 48 89 +0x00000000503bbaf3: 45 10 83 46 08 01 48 89 d8 48 83 c4 38 5b 5e 5f +0x00000000503bbb03: 5d 41 5c 41 5d c3 0f 1f 80 00 00 00 00 48 8d 15 +0x00000000503bbb13: 39 30 03 00 48 8d 0d b2 30 03 00 48 8d 2c de 41 +0x00000000503bbb23: b8 70 00 00 00 e8 63 80 02 00 48 8b 5d 10 48 85 +0x00000000503bbb33: db 0f 85 09 ff ff ff e9 21 ff ff ff 90 89 d9 48 + + +Stack slot to memory mapping: +stack at sp + 0 slots: 0xabdcd8add301f07b is an unknown value +stack at sp + 1 slots: 0xb2a38653d6a71a70 is an unknown value +stack at sp + 2 slots: 0xc47301f8ec6b8116 is an unknown value +stack at sp + 3 slots: 0xc130a85ba7f5055b is an unknown value +stack at sp + 4 slots: 0x0000000000000040 is an unknown value +stack at sp + 5 slots: 0x000001bb2280da29 is at entry_point+1225 in (nmethod*)0x000001bb2280d390 +stack at sp + 6 slots: 0x0000000000000008 is an unknown value +stack at sp + 7 slots: 0x000001bb37c924d0 points into unknown readable memory: 0x000001bb37cab860 | 60 b8 ca 37 bb 01 00 00 + + +--------------- P R O C E S S --------------- + +Threads class SMR info: +_java_thread_list=0x000001bb4fcb8c30, length=84, elements={ +0x000001bb11a80260, 0x000001bb36d6b600, 0x000001bb36d6bfb0, 0x000001bb36d87c20, +0x000001bb36d885d0, 0x000001bb36d8af90, 0x000001bb36d8d0f0, 0x000001bb37800080, +0x000001bb37804620, 0x000001bb378106d0, 0x000001bb3795ac70, 0x000001bb37965950, +0x000001bb3ee8b3c0, 0x000001bb3ef54030, 0x000001bb3f2f96a0, 0x000001bb4f37f130, +0x000001bb11a69ce0, 0x000001bb11a69810, 0x000001bb11a69340, 0x000001bb11a6c360, +0x000001bb11a6a1b0, 0x000001bb11a6c830, 0x000001bb5329fd50, 0x000001bb5329f880, +0x000001bb532a0220, 0x000001bb532a2d70, 0x000001bb532a3240, 0x000001bb5329e070, +0x000001bb532a06f0, 0x000001bb532a23d0, 0x000001bb532a0bc0, 0x000001bb532a1560, +0x000001bb532a4f20, 0x000001bb532a3710, 0x000001bb532a4a50, 0x000001bb532a40b0, +0x000001bb532a1a30, 0x000001bb5329eee0, 0x000001bb532a3be0, 0x000001bb532a1090, +0x000001bb532a4580, 0x000001bb532a1f00, 0x000001bb532a28a0, 0x000001bb5329d6d0, +0x000001bb5329e540, 0x000001bb5329f3b0, 0x000001bb5329ea10, 0x000001bb3f1a0cd0, +0x000001bb3f1a0330, 0x000001bb3f19eb20, 0x000001bb3f1a11a0, 0x000001bb3f19f990, +0x000001bb3f19fe60, 0x000001bb3f19d310, 0x000001bb3f19c4a0, 0x000001bb3f19c970, +0x000001bb3f19ce40, 0x000001bb3f19ac90, 0x000001bb3f1a1670, 0x000001bb3f19e180, +0x000001bb3f19d7e0, 0x000001bb3f1a1b40, 0x000001bb3f19b160, 0x000001bb3f19bb00, +0x000001bb3f19eff0, 0x000001bb3f19e650, 0x000001bb3f1a2010, 0x000001bb3f1a0800, +0x000001bb3f19a7c0, 0x000001bb3f19b630, 0x000001bb3f19bfd0, 0x000001bb3f19dcb0, +0x000001bb379d5a30, 0x000001bb379d5090, 0x000001bb379d7be0, 0x000001bb379d7240, +0x000001bb379d8580, 0x000001bb379d93f0, 0x000001bb379d2a10, 0x000001bb379d5f00, +0x000001bb379d2540, 0x000001bb379d80b0, 0x000001bb379d4bc0, 0x000001bb379d8f20 +} + +Java Threads: ( => current thread ) +=>0x000001bb11a80260 JavaThread "main" [_thread_in_native, id=16616, stack(0x0000005c3ac00000,0x0000005c3ad00000)] + 0x000001bb36d6b600 JavaThread "Reference Handler" daemon [_thread_blocked, id=8912, stack(0x0000005c3b300000,0x0000005c3b400000)] + 0x000001bb36d6bfb0 JavaThread "Finalizer" daemon [_thread_blocked, id=15264, stack(0x0000005c3b400000,0x0000005c3b500000)] + 0x000001bb36d87c20 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=8136, stack(0x0000005c3b500000,0x0000005c3b600000)] + 0x000001bb36d885d0 JavaThread "Attach Listener" daemon [_thread_blocked, id=10300, stack(0x0000005c3b600000,0x0000005c3b700000)] + 0x000001bb36d8af90 JavaThread "Service Thread" daemon [_thread_blocked, id=21784, stack(0x0000005c3b700000,0x0000005c3b800000)] + 0x000001bb36d8d0f0 JavaThread "Monitor Deflation Thread" daemon [_thread_blocked, id=30332, stack(0x0000005c3b800000,0x0000005c3b900000)] + 0x000001bb37800080 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=3424, stack(0x0000005c3b900000,0x0000005c3ba00000)] + 0x000001bb37804620 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=16424, stack(0x0000005c3ba00000,0x0000005c3bb00000)] + 0x000001bb378106d0 JavaThread "Sweeper thread" daemon [_thread_blocked, id=20532, stack(0x0000005c3bb00000,0x0000005c3bc00000)] + 0x000001bb3795ac70 JavaThread "Notification Thread" daemon [_thread_blocked, id=25836, stack(0x0000005c3be00000,0x0000005c3bf00000)] + 0x000001bb37965950 JavaThread "Common-Cleaner" daemon [_thread_blocked, id=26996, stack(0x0000005c3c000000,0x0000005c3c100000)] + 0x000001bb3ee8b3c0 JavaThread "AssetManager" daemon [_thread_blocked, id=14844, stack(0x0000005c3df80000,0x0000005c3e080000)] + 0x000001bb3ef54030 JavaThread "LWJGL3 Timer" daemon [_thread_blocked, id=14080, stack(0x0000005c3e080000,0x0000005c3e180000)] + 0x000001bb3f2f96a0 JavaThread "AssetManager" daemon [_thread_blocked, id=13980, stack(0x0000005c3e480000,0x0000005c3e580000)] + 0x000001bb4f37f130 JavaThread "Timer" daemon [_thread_blocked, id=28940, stack(0x0000005c3ec80000,0x0000005c3ed80000)] + 0x000001bb11a69ce0 JavaThread "Timer-0" [_thread_blocked, id=12412, stack(0x0000005c3e580000,0x0000005c3e680000)] + 0x000001bb11a69810 JavaThread "Timer-1" [_thread_blocked, id=30380, stack(0x0000005c3e680000,0x0000005c3e780000)] + 0x000001bb11a69340 JavaThread "Timer-2" [_thread_blocked, id=9852, stack(0x0000005c3e280000,0x0000005c3e380000)] + 0x000001bb11a6c360 JavaThread "Timer-3" [_thread_blocked, id=27852, stack(0x0000005c3e380000,0x0000005c3e480000)] + 0x000001bb11a6a1b0 JavaThread "Timer-4" [_thread_blocked, id=10584, stack(0x0000005c3e980000,0x0000005c3ea80000)] + 0x000001bb11a6c830 JavaThread "Timer-5" [_thread_blocked, id=13516, stack(0x0000005c3ed80000,0x0000005c3ee80000)] + 0x000001bb5329fd50 JavaThread "Timer-6" [_thread_blocked, id=27028, stack(0x0000005c3ee80000,0x0000005c3ef80000)] + 0x000001bb5329f880 JavaThread "Timer-7" [_thread_blocked, id=17140, stack(0x0000005c3eb80000,0x0000005c3ec80000)] + 0x000001bb532a0220 JavaThread "Timer-8" [_thread_blocked, id=19540, stack(0x0000005c3ea80000,0x0000005c3eb80000)] + 0x000001bb532a2d70 JavaThread "Timer-9" [_thread_blocked, id=18592, stack(0x0000005c3ef80000,0x0000005c3f080000)] + 0x000001bb532a3240 JavaThread "Timer-10" [_thread_blocked, id=3288, stack(0x0000005c3f080000,0x0000005c3f180000)] + 0x000001bb5329e070 JavaThread "Timer-11" [_thread_blocked, id=1688, stack(0x0000005c3f280000,0x0000005c3f380000)] + 0x000001bb532a06f0 JavaThread "Timer-12" [_thread_blocked, id=18872, stack(0x0000005c3f380000,0x0000005c3f480000)] + 0x000001bb532a23d0 JavaThread "Timer-13" [_thread_blocked, id=2268, stack(0x0000005c3f480000,0x0000005c3f580000)] + 0x000001bb532a0bc0 JavaThread "Timer-14" [_thread_blocked, id=13040, stack(0x0000005c3f580000,0x0000005c3f680000)] + 0x000001bb532a1560 JavaThread "Timer-15" [_thread_blocked, id=25028, stack(0x0000005c3f680000,0x0000005c3f780000)] + 0x000001bb532a4f20 JavaThread "Timer-16" [_thread_blocked, id=29596, stack(0x0000005c3f780000,0x0000005c3f880000)] + 0x000001bb532a3710 JavaThread "Timer-17" [_thread_blocked, id=5176, stack(0x0000005c3f880000,0x0000005c3f980000)] + 0x000001bb532a4a50 JavaThread "Timer-18" [_thread_blocked, id=17456, stack(0x0000005c3f180000,0x0000005c3f280000)] + 0x000001bb532a40b0 JavaThread "Timer-19" [_thread_blocked, id=25692, stack(0x0000005c3f980000,0x0000005c3fa80000)] + 0x000001bb532a1a30 JavaThread "Timer-20" [_thread_blocked, id=27516, stack(0x0000005c3fa80000,0x0000005c3fb80000)] + 0x000001bb5329eee0 JavaThread "Timer-21" [_thread_blocked, id=23720, stack(0x0000005c3fb80000,0x0000005c3fc80000)] + 0x000001bb532a3be0 JavaThread "Timer-22" [_thread_blocked, id=15080, stack(0x0000005c3fc80000,0x0000005c3fd80000)] + 0x000001bb532a1090 JavaThread "Timer-23" [_thread_blocked, id=17396, stack(0x0000005c3fd80000,0x0000005c3fe80000)] + 0x000001bb532a4580 JavaThread "Timer-24" [_thread_blocked, id=3696, stack(0x0000005c3fe80000,0x0000005c3ff80000)] + 0x000001bb532a1f00 JavaThread "Timer-25" [_thread_blocked, id=7844, stack(0x0000005c3ff80000,0x0000005c40080000)] + 0x000001bb532a28a0 JavaThread "Timer-26" [_thread_blocked, id=17848, stack(0x0000005c40080000,0x0000005c40180000)] + 0x000001bb5329d6d0 JavaThread "Timer-27" [_thread_blocked, id=23792, stack(0x0000005c40180000,0x0000005c40280000)] + 0x000001bb5329e540 JavaThread "Timer-28" [_thread_blocked, id=29396, stack(0x0000005c40280000,0x0000005c40380000)] + 0x000001bb5329f3b0 JavaThread "Timer-30" [_thread_blocked, id=3960, stack(0x0000005c3bc00000,0x0000005c3bd00000)] + 0x000001bb5329ea10 JavaThread "Timer-31" [_thread_blocked, id=17948, stack(0x0000005c40480000,0x0000005c40580000)] + 0x000001bb3f1a0cd0 JavaThread "Timer-32" [_thread_blocked, id=24512, stack(0x0000005c40580000,0x0000005c40680000)] + 0x000001bb3f1a0330 JavaThread "Timer-33" [_thread_blocked, id=2604, stack(0x0000005c40680000,0x0000005c40780000)] + 0x000001bb3f19eb20 JavaThread "Timer-34" [_thread_blocked, id=14836, stack(0x0000005c40780000,0x0000005c40880000)] + 0x000001bb3f1a11a0 JavaThread "Timer-35" [_thread_blocked, id=592, stack(0x0000005c40880000,0x0000005c40980000)] + 0x000001bb3f19f990 JavaThread "Timer-36" [_thread_blocked, id=25112, stack(0x0000005c40980000,0x0000005c40a80000)] + 0x000001bb3f19fe60 JavaThread "Timer-37" [_thread_blocked, id=28784, stack(0x0000005c40a80000,0x0000005c40b80000)] + 0x000001bb3f19d310 JavaThread "Timer-38" [_thread_blocked, id=26700, stack(0x0000005c40b80000,0x0000005c40c80000)] + 0x000001bb3f19c4a0 JavaThread "Timer-39" [_thread_blocked, id=24252, stack(0x0000005c40c80000,0x0000005c40d80000)] + 0x000001bb3f19c970 JavaThread "Timer-40" [_thread_blocked, id=28624, stack(0x0000005c40d80000,0x0000005c40e80000)] + 0x000001bb3f19ce40 JavaThread "Timer-41" [_thread_blocked, id=8392, stack(0x0000005c40e80000,0x0000005c40f80000)] + 0x000001bb3f19ac90 JavaThread "Timer-42" [_thread_blocked, id=16052, stack(0x0000005c40f80000,0x0000005c41080000)] + 0x000001bb3f1a1670 JavaThread "Timer-43" [_thread_blocked, id=17524, stack(0x0000005c41080000,0x0000005c41180000)] + 0x000001bb3f19e180 JavaThread "Timer-44" [_thread_blocked, id=17880, stack(0x0000005c41180000,0x0000005c41280000)] + 0x000001bb3f19d7e0 JavaThread "Timer-45" [_thread_blocked, id=28584, stack(0x0000005c41280000,0x0000005c41380000)] + 0x000001bb3f1a1b40 JavaThread "Timer-46" [_thread_blocked, id=8768, stack(0x0000005c41380000,0x0000005c41480000)] + 0x000001bb3f19b160 JavaThread "Timer-47" [_thread_blocked, id=2508, stack(0x0000005c41480000,0x0000005c41580000)] + 0x000001bb3f19bb00 JavaThread "Timer-48" [_thread_blocked, id=28144, stack(0x0000005c41580000,0x0000005c41680000)] + 0x000001bb3f19eff0 JavaThread "Timer-49" [_thread_blocked, id=29872, stack(0x0000005c41680000,0x0000005c41780000)] + 0x000001bb3f19e650 JavaThread "Timer-50" [_thread_blocked, id=29456, stack(0x0000005c41780000,0x0000005c41880000)] + 0x000001bb3f1a2010 JavaThread "Timer-51" [_thread_blocked, id=18212, stack(0x0000005c41880000,0x0000005c41980000)] + 0x000001bb3f1a0800 JavaThread "Timer-52" [_thread_blocked, id=28712, stack(0x0000005c41980000,0x0000005c41a80000)] + 0x000001bb3f19a7c0 JavaThread "Timer-53" [_thread_blocked, id=4488, stack(0x0000005c41a80000,0x0000005c41b80000)] + 0x000001bb3f19b630 JavaThread "Timer-54" [_thread_blocked, id=8144, stack(0x0000005c41b80000,0x0000005c41c80000)] + 0x000001bb3f19bfd0 JavaThread "Timer-55" [_thread_blocked, id=22696, stack(0x0000005c41c80000,0x0000005c41d80000)] + 0x000001bb3f19dcb0 JavaThread "Timer-56" [_thread_blocked, id=14880, stack(0x0000005c41d80000,0x0000005c41e80000)] + 0x000001bb379d5a30 JavaThread "Timer-57" [_thread_blocked, id=18004, stack(0x0000005c41e80000,0x0000005c41f80000)] + 0x000001bb379d5090 JavaThread "Timer-58" [_thread_blocked, id=19156, stack(0x0000005c41f80000,0x0000005c42080000)] + 0x000001bb379d7be0 JavaThread "Timer-59" [_thread_blocked, id=13284, stack(0x0000005c40380000,0x0000005c40480000)] + 0x000001bb379d7240 JavaThread "Timer-60" [_thread_blocked, id=4820, stack(0x0000005c42080000,0x0000005c42180000)] + 0x000001bb379d8580 JavaThread "Timer-61" [_thread_blocked, id=14192, stack(0x0000005c42180000,0x0000005c42280000)] + 0x000001bb379d93f0 JavaThread "Timer-62" [_thread_blocked, id=29644, stack(0x0000005c42280000,0x0000005c42380000)] + 0x000001bb379d2a10 JavaThread "Timer-63" [_thread_blocked, id=22432, stack(0x0000005c42380000,0x0000005c42480000)] + 0x000001bb379d5f00 JavaThread "Timer-64" [_thread_blocked, id=29432, stack(0x0000005c42480000,0x0000005c42580000)] + 0x000001bb379d2540 JavaThread "Timer-65" [_thread_blocked, id=27248, stack(0x0000005c42580000,0x0000005c42680000)] + 0x000001bb379d80b0 JavaThread "Timer-66" [_thread_blocked, id=30360, stack(0x0000005c42680000,0x0000005c42780000)] + 0x000001bb379d4bc0 JavaThread "Timer-67" [_thread_blocked, id=22172, stack(0x0000005c42780000,0x0000005c42880000)] + 0x000001bb379d8f20 JavaThread "Timer-68" [_thread_blocked, id=3980, stack(0x0000005c42880000,0x0000005c42980000)] + +Other Threads: + 0x000001bb36d67090 VMThread "VM Thread" [stack: 0x0000005c3b200000,0x0000005c3b300000] [id=11652] + 0x000001bb3795d370 WatcherThread [stack: 0x0000005c3bf00000,0x0000005c3c000000] [id=26524] + 0x000001bb11af25b0 GCTaskThread "GC Thread#0" [stack: 0x0000005c3ad00000,0x0000005c3ae00000] [id=11000] + 0x000001bb3ed58da0 GCTaskThread "GC Thread#1" [stack: 0x0000005c3bd00000,0x0000005c3be00000] [id=30400] + 0x000001bb3ed59050 GCTaskThread "GC Thread#2" [stack: 0x0000005c3d880000,0x0000005c3d980000] [id=23984] + 0x000001bb3ed595b0 GCTaskThread "GC Thread#3" [stack: 0x0000005c3d980000,0x0000005c3da80000] [id=7316] + 0x000001bb3ed5ade0 GCTaskThread "GC Thread#4" [stack: 0x0000005c3da80000,0x0000005c3db80000] [id=26368] + 0x000001bb3ed59300 GCTaskThread "GC Thread#5" [stack: 0x0000005c3db80000,0x0000005c3dc80000] [id=30216] + 0x000001bb3ed59860 GCTaskThread "GC Thread#6" [stack: 0x0000005c3dc80000,0x0000005c3dd80000] [id=17484] + 0x000001bb3ed59dc0 GCTaskThread "GC Thread#7" [stack: 0x0000005c3dd80000,0x0000005c3de80000] [id=2060] + 0x000001bb3ed5a070 GCTaskThread "GC Thread#8" [stack: 0x0000005c3de80000,0x0000005c3df80000] [id=23968] + 0x000001bb3a67e500 GCTaskThread "GC Thread#9" [stack: 0x0000005c3e780000,0x0000005c3e880000] [id=27328] + 0x000001bb3a67d790 GCTaskThread "GC Thread#10" [stack: 0x0000005c3e880000,0x0000005c3e980000] [id=16340] + 0x000001bb11b02a70 ConcurrentGCThread "G1 Main Marker" [stack: 0x0000005c3ae00000,0x0000005c3af00000] [id=23168] + 0x000001bb11b03b20 ConcurrentGCThread "G1 Conc#0" [stack: 0x0000005c3af00000,0x0000005c3b000000] [id=23500] + 0x000001bb36c23160 ConcurrentGCThread "G1 Refine#0" [stack: 0x0000005c3b000000,0x0000005c3b100000] [id=3468] + 0x000001bb36c23920 ConcurrentGCThread "G1 Service" [stack: 0x0000005c3b100000,0x0000005c3b200000] [id=13212] + +Threads with active compile tasks: + +VM state: not at safepoint (normal execution) + +VM Mutex/Monitor currently owned by a thread: None + +Heap address: 0x0000000709800000, size: 3944 MB, Compressed Oops mode: Zero based, Oop shift amount: 3 + +CDS archive(s) mapped at: [0x0000000800000000-0x0000000800bd0000-0x0000000800bd0000), size 12386304, SharedBaseAddress: 0x0000000800000000, ArchiveRelocationMode: 0. +Compressed class space mapped at: 0x0000000800c00000-0x0000000840c00000, reserved size: 1073741824 +Narrow klass base: 0x0000000800000000, Narrow klass shift: 0, Narrow klass range: 0x100000000 + +GC Precious Log: + CPUs: 16 total, 16 available + Memory: 15769M + Large Page Support: Disabled + NUMA Support: Disabled + Compressed Oops: Enabled (Zero based) + Heap Region Size: 2M + Heap Min Capacity: 8M + Heap Initial Capacity: 248M + Heap Max Capacity: 3944M + Pre-touch: Disabled + Parallel Workers: 13 + Concurrent Workers: 3 + Concurrent Refinement Workers: 13 + Periodic GC: Disabled + +Heap: + garbage-first heap total 253952K, used 87250K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 35 young (71680K), 2 survivors (4096K) + Metaspace used 11943K, committed 12160K, reserved 1064960K + class space used 1068K, committed 1152K, reserved 1048576K + +Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, OA=open archive, CA=closed archive, TAMS=top-at-mark-start (previous, next) +| 0|0x0000000709800000, 0x0000000709a00000, 0x0000000709a00000|100%|HS| |TAMS 0x0000000709800000, 0x0000000709800000| Complete +| 1|0x0000000709a00000, 0x0000000709c00000, 0x0000000709c00000|100%|HS| |TAMS 0x0000000709a00000, 0x0000000709a00000| Complete +| 2|0x0000000709c00000, 0x0000000709e00000, 0x0000000709e00000|100%| O| |TAMS 0x0000000709c00000, 0x0000000709c00000| Untracked +| 3|0x0000000709e00000, 0x0000000709efb600, 0x000000070a000000| 49%| O| |TAMS 0x0000000709e00000, 0x0000000709e00000| Untracked +| 4|0x000000070a000000, 0x000000070a200000, 0x000000070a200000|100%|HS| |TAMS 0x000000070a000000, 0x000000070a000000| Complete +| 5|0x000000070a200000, 0x000000070a400000, 0x000000070a400000|100%|HS| |TAMS 0x000000070a200000, 0x000000070a200000| Complete +| 6|0x000000070a400000, 0x000000070a600000, 0x000000070a600000|100%|HS| |TAMS 0x000000070a400000, 0x000000070a400000| Complete +| 7|0x000000070a600000, 0x000000070a800000, 0x000000070a800000|100%|HC| |TAMS 0x000000070a600000, 0x000000070a600000| Complete +| 8|0x000000070a800000, 0x000000070aa00000, 0x000000070aa00000|100%|HS| |TAMS 0x000000070a800000, 0x000000070a800000| Complete +| 9|0x000000070aa00000, 0x000000070ac00000, 0x000000070ac00000|100%|HS| |TAMS 0x000000070aa00000, 0x000000070aa00000| Complete +| 10|0x000000070ac00000, 0x000000070ae00000, 0x000000070ae00000|100%|HS| |TAMS 0x000000070ac00000, 0x000000070ac00000| Complete +| 11|0x000000070ae00000, 0x000000070ae00000, 0x000000070b000000| 0%| F| |TAMS 0x000000070ae00000, 0x000000070ae00000| Untracked +| 12|0x000000070b000000, 0x000000070b000000, 0x000000070b200000| 0%| F| |TAMS 0x000000070b000000, 0x000000070b000000| Untracked +| 13|0x000000070b200000, 0x000000070b200000, 0x000000070b400000| 0%| F| |TAMS 0x000000070b200000, 0x000000070b200000| Untracked +| 14|0x000000070b400000, 0x000000070b400000, 0x000000070b600000| 0%| F| |TAMS 0x000000070b400000, 0x000000070b400000| Untracked +| 15|0x000000070b600000, 0x000000070b600000, 0x000000070b800000| 0%| F| |TAMS 0x000000070b600000, 0x000000070b600000| Untracked +| 16|0x000000070b800000, 0x000000070b800000, 0x000000070ba00000| 0%| F| |TAMS 0x000000070b800000, 0x000000070b800000| Untracked +| 17|0x000000070ba00000, 0x000000070ba00000, 0x000000070bc00000| 0%| F| |TAMS 0x000000070ba00000, 0x000000070ba00000| Untracked +| 18|0x000000070bc00000, 0x000000070bc00000, 0x000000070be00000| 0%| F| |TAMS 0x000000070bc00000, 0x000000070bc00000| Untracked +| 19|0x000000070be00000, 0x000000070be00000, 0x000000070c000000| 0%| F| |TAMS 0x000000070be00000, 0x000000070be00000| Untracked +| 20|0x000000070c000000, 0x000000070c000000, 0x000000070c200000| 0%| F| |TAMS 0x000000070c000000, 0x000000070c000000| Untracked +| 21|0x000000070c200000, 0x000000070c200000, 0x000000070c400000| 0%| F| |TAMS 0x000000070c200000, 0x000000070c200000| Untracked +| 22|0x000000070c400000, 0x000000070c400000, 0x000000070c600000| 0%| F| |TAMS 0x000000070c400000, 0x000000070c400000| Untracked +| 23|0x000000070c600000, 0x000000070c600000, 0x000000070c800000| 0%| F| |TAMS 0x000000070c600000, 0x000000070c600000| Untracked +| 24|0x000000070c800000, 0x000000070c800000, 0x000000070ca00000| 0%| F| |TAMS 0x000000070c800000, 0x000000070c800000| Untracked +| 25|0x000000070ca00000, 0x000000070ca00000, 0x000000070cc00000| 0%| F| |TAMS 0x000000070ca00000, 0x000000070ca00000| Untracked +| 26|0x000000070cc00000, 0x000000070cc00000, 0x000000070ce00000| 0%| F| |TAMS 0x000000070cc00000, 0x000000070cc00000| Untracked +| 27|0x000000070ce00000, 0x000000070ce00000, 0x000000070d000000| 0%| F| |TAMS 0x000000070ce00000, 0x000000070ce00000| Untracked +| 28|0x000000070d000000, 0x000000070d000000, 0x000000070d200000| 0%| F| |TAMS 0x000000070d000000, 0x000000070d000000| Untracked +| 29|0x000000070d200000, 0x000000070d200000, 0x000000070d400000| 0%| F| |TAMS 0x000000070d200000, 0x000000070d200000| Untracked +| 30|0x000000070d400000, 0x000000070d400000, 0x000000070d600000| 0%| F| |TAMS 0x000000070d400000, 0x000000070d400000| Untracked +| 31|0x000000070d600000, 0x000000070d600000, 0x000000070d800000| 0%| F| |TAMS 0x000000070d600000, 0x000000070d600000| Untracked +| 32|0x000000070d800000, 0x000000070d800000, 0x000000070da00000| 0%| F| |TAMS 0x000000070d800000, 0x000000070d800000| Untracked +| 33|0x000000070da00000, 0x000000070da00000, 0x000000070dc00000| 0%| F| |TAMS 0x000000070da00000, 0x000000070da00000| Untracked +| 34|0x000000070dc00000, 0x000000070dc00000, 0x000000070de00000| 0%| F| |TAMS 0x000000070dc00000, 0x000000070dc00000| Untracked +| 35|0x000000070de00000, 0x000000070de00000, 0x000000070e000000| 0%| F| |TAMS 0x000000070de00000, 0x000000070de00000| Untracked +| 36|0x000000070e000000, 0x000000070e000000, 0x000000070e200000| 0%| F| |TAMS 0x000000070e000000, 0x000000070e000000| Untracked +| 37|0x000000070e200000, 0x000000070e200000, 0x000000070e400000| 0%| F| |TAMS 0x000000070e200000, 0x000000070e200000| Untracked +| 38|0x000000070e400000, 0x000000070e400000, 0x000000070e600000| 0%| F| |TAMS 0x000000070e400000, 0x000000070e400000| Untracked +| 39|0x000000070e600000, 0x000000070e600000, 0x000000070e800000| 0%| F| |TAMS 0x000000070e600000, 0x000000070e600000| Untracked +| 40|0x000000070e800000, 0x000000070e800000, 0x000000070ea00000| 0%| F| |TAMS 0x000000070e800000, 0x000000070e800000| Untracked +| 41|0x000000070ea00000, 0x000000070ea00000, 0x000000070ec00000| 0%| F| |TAMS 0x000000070ea00000, 0x000000070ea00000| Untracked +| 42|0x000000070ec00000, 0x000000070ec00000, 0x000000070ee00000| 0%| F| |TAMS 0x000000070ec00000, 0x000000070ec00000| Untracked +| 43|0x000000070ee00000, 0x000000070ee00000, 0x000000070f000000| 0%| F| |TAMS 0x000000070ee00000, 0x000000070ee00000| Untracked +| 44|0x000000070f000000, 0x000000070f000000, 0x000000070f200000| 0%| F| |TAMS 0x000000070f000000, 0x000000070f000000| Untracked +| 45|0x000000070f200000, 0x000000070f200000, 0x000000070f400000| 0%| F| |TAMS 0x000000070f200000, 0x000000070f200000| Untracked +| 46|0x000000070f400000, 0x000000070f400000, 0x000000070f600000| 0%| F| |TAMS 0x000000070f400000, 0x000000070f400000| Untracked +| 47|0x000000070f600000, 0x000000070f600000, 0x000000070f800000| 0%| F| |TAMS 0x000000070f600000, 0x000000070f600000| Untracked +| 48|0x000000070f800000, 0x000000070f800000, 0x000000070fa00000| 0%| F| |TAMS 0x000000070f800000, 0x000000070f800000| Untracked +| 49|0x000000070fa00000, 0x000000070fa00000, 0x000000070fc00000| 0%| F| |TAMS 0x000000070fa00000, 0x000000070fa00000| Untracked +| 50|0x000000070fc00000, 0x000000070fc00000, 0x000000070fe00000| 0%| F| |TAMS 0x000000070fc00000, 0x000000070fc00000| Untracked +| 51|0x000000070fe00000, 0x000000070fe00000, 0x0000000710000000| 0%| F| |TAMS 0x000000070fe00000, 0x000000070fe00000| Untracked +| 52|0x0000000710000000, 0x0000000710000000, 0x0000000710200000| 0%| F| |TAMS 0x0000000710000000, 0x0000000710000000| Untracked +| 53|0x0000000710200000, 0x0000000710200000, 0x0000000710400000| 0%| F| |TAMS 0x0000000710200000, 0x0000000710200000| Untracked +| 54|0x0000000710400000, 0x0000000710400000, 0x0000000710600000| 0%| F| |TAMS 0x0000000710400000, 0x0000000710400000| Untracked +| 55|0x0000000710600000, 0x0000000710600000, 0x0000000710800000| 0%| F| |TAMS 0x0000000710600000, 0x0000000710600000| Untracked +| 56|0x0000000710800000, 0x0000000710800000, 0x0000000710a00000| 0%| F| |TAMS 0x0000000710800000, 0x0000000710800000| Untracked +| 57|0x0000000710a00000, 0x0000000710a00000, 0x0000000710c00000| 0%| F| |TAMS 0x0000000710a00000, 0x0000000710a00000| Untracked +| 58|0x0000000710c00000, 0x0000000710c00000, 0x0000000710e00000| 0%| F| |TAMS 0x0000000710c00000, 0x0000000710c00000| Untracked +| 59|0x0000000710e00000, 0x0000000710e00000, 0x0000000711000000| 0%| F| |TAMS 0x0000000710e00000, 0x0000000710e00000| Untracked +| 60|0x0000000711000000, 0x0000000711000000, 0x0000000711200000| 0%| F| |TAMS 0x0000000711000000, 0x0000000711000000| Untracked +| 61|0x0000000711200000, 0x0000000711200000, 0x0000000711400000| 0%| F| |TAMS 0x0000000711200000, 0x0000000711200000| Untracked +| 62|0x0000000711400000, 0x0000000711400000, 0x0000000711600000| 0%| F| |TAMS 0x0000000711400000, 0x0000000711400000| Untracked +| 63|0x0000000711600000, 0x0000000711600000, 0x0000000711800000| 0%| F| |TAMS 0x0000000711600000, 0x0000000711600000| Untracked +| 64|0x0000000711800000, 0x0000000711800000, 0x0000000711a00000| 0%| F| |TAMS 0x0000000711800000, 0x0000000711800000| Untracked +| 65|0x0000000711a00000, 0x0000000711a00000, 0x0000000711c00000| 0%| F| |TAMS 0x0000000711a00000, 0x0000000711a00000| Untracked +| 66|0x0000000711c00000, 0x0000000711c00000, 0x0000000711e00000| 0%| F| |TAMS 0x0000000711c00000, 0x0000000711c00000| Untracked +| 67|0x0000000711e00000, 0x0000000711e00000, 0x0000000712000000| 0%| F| |TAMS 0x0000000711e00000, 0x0000000711e00000| Untracked +| 68|0x0000000712000000, 0x0000000712000000, 0x0000000712200000| 0%| F| |TAMS 0x0000000712000000, 0x0000000712000000| Untracked +| 69|0x0000000712200000, 0x0000000712200000, 0x0000000712400000| 0%| F| |TAMS 0x0000000712200000, 0x0000000712200000| Untracked +| 70|0x0000000712400000, 0x0000000712400000, 0x0000000712600000| 0%| F| |TAMS 0x0000000712400000, 0x0000000712400000| Untracked +| 71|0x0000000712600000, 0x0000000712600000, 0x0000000712800000| 0%| F| |TAMS 0x0000000712600000, 0x0000000712600000| Untracked +| 72|0x0000000712800000, 0x0000000712800000, 0x0000000712a00000| 0%| F| |TAMS 0x0000000712800000, 0x0000000712800000| Untracked +| 73|0x0000000712a00000, 0x0000000712a00000, 0x0000000712c00000| 0%| F| |TAMS 0x0000000712a00000, 0x0000000712a00000| Untracked +| 74|0x0000000712c00000, 0x0000000712c00000, 0x0000000712e00000| 0%| F| |TAMS 0x0000000712c00000, 0x0000000712c00000| Untracked +| 75|0x0000000712e00000, 0x0000000712e00000, 0x0000000713000000| 0%| F| |TAMS 0x0000000712e00000, 0x0000000712e00000| Untracked +| 76|0x0000000713000000, 0x0000000713000000, 0x0000000713200000| 0%| F| |TAMS 0x0000000713000000, 0x0000000713000000| Untracked +| 77|0x0000000713200000, 0x0000000713200000, 0x0000000713400000| 0%| F| |TAMS 0x0000000713200000, 0x0000000713200000| Untracked +| 78|0x0000000713400000, 0x0000000713400000, 0x0000000713600000| 0%| F| |TAMS 0x0000000713400000, 0x0000000713400000| Untracked +| 79|0x0000000713600000, 0x0000000713600000, 0x0000000713800000| 0%| F| |TAMS 0x0000000713600000, 0x0000000713600000| Untracked +| 80|0x0000000713800000, 0x0000000713800000, 0x0000000713a00000| 0%| F| |TAMS 0x0000000713800000, 0x0000000713800000| Untracked +| 81|0x0000000713a00000, 0x0000000713a00000, 0x0000000713c00000| 0%| F| |TAMS 0x0000000713a00000, 0x0000000713a00000| Untracked +| 82|0x0000000713c00000, 0x0000000713c00000, 0x0000000713e00000| 0%| F| |TAMS 0x0000000713c00000, 0x0000000713c00000| Untracked +| 83|0x0000000713e00000, 0x0000000713e00000, 0x0000000714000000| 0%| F| |TAMS 0x0000000713e00000, 0x0000000713e00000| Untracked +| 84|0x0000000714000000, 0x0000000714000000, 0x0000000714200000| 0%| F| |TAMS 0x0000000714000000, 0x0000000714000000| Untracked +| 85|0x0000000714200000, 0x0000000714200000, 0x0000000714400000| 0%| F| |TAMS 0x0000000714200000, 0x0000000714200000| Untracked +| 86|0x0000000714400000, 0x0000000714400000, 0x0000000714600000| 0%| F| |TAMS 0x0000000714400000, 0x0000000714400000| Untracked +| 87|0x0000000714600000, 0x0000000714600000, 0x0000000714800000| 0%| F| |TAMS 0x0000000714600000, 0x0000000714600000| Untracked +| 88|0x0000000714800000, 0x0000000714800000, 0x0000000714a00000| 0%| F| |TAMS 0x0000000714800000, 0x0000000714800000| Untracked +| 89|0x0000000714a00000, 0x0000000714b71270, 0x0000000714c00000| 72%| E| |TAMS 0x0000000714a00000, 0x0000000714a00000| Complete +| 90|0x0000000714c00000, 0x0000000714e00000, 0x0000000714e00000|100%| E|CS|TAMS 0x0000000714c00000, 0x0000000714c00000| Complete +| 91|0x0000000714e00000, 0x0000000715000000, 0x0000000715000000|100%| E|CS|TAMS 0x0000000714e00000, 0x0000000714e00000| Complete +| 92|0x0000000715000000, 0x0000000715200000, 0x0000000715200000|100%| E|CS|TAMS 0x0000000715000000, 0x0000000715000000| Complete +| 93|0x0000000715200000, 0x0000000715400000, 0x0000000715400000|100%| E|CS|TAMS 0x0000000715200000, 0x0000000715200000| Complete +| 94|0x0000000715400000, 0x0000000715600000, 0x0000000715600000|100%| E|CS|TAMS 0x0000000715400000, 0x0000000715400000| Complete +| 95|0x0000000715600000, 0x0000000715800000, 0x0000000715800000|100%| E|CS|TAMS 0x0000000715600000, 0x0000000715600000| Complete +| 96|0x0000000715800000, 0x0000000715a00000, 0x0000000715a00000|100%| E|CS|TAMS 0x0000000715800000, 0x0000000715800000| Complete +| 97|0x0000000715a00000, 0x0000000715c00000, 0x0000000715c00000|100%| E|CS|TAMS 0x0000000715a00000, 0x0000000715a00000| Complete +| 98|0x0000000715c00000, 0x0000000715e00000, 0x0000000715e00000|100%| E|CS|TAMS 0x0000000715c00000, 0x0000000715c00000| Complete +| 99|0x0000000715e00000, 0x0000000716000000, 0x0000000716000000|100%| E|CS|TAMS 0x0000000715e00000, 0x0000000715e00000| Complete +| 100|0x0000000716000000, 0x0000000716200000, 0x0000000716200000|100%| E|CS|TAMS 0x0000000716000000, 0x0000000716000000| Complete +| 101|0x0000000716200000, 0x0000000716400000, 0x0000000716400000|100%| E|CS|TAMS 0x0000000716200000, 0x0000000716200000| Complete +| 102|0x0000000716400000, 0x0000000716600000, 0x0000000716600000|100%| E|CS|TAMS 0x0000000716400000, 0x0000000716400000| Complete +| 103|0x0000000716600000, 0x0000000716800000, 0x0000000716800000|100%| E|CS|TAMS 0x0000000716600000, 0x0000000716600000| Complete +| 104|0x0000000716800000, 0x0000000716839450, 0x0000000716a00000| 11%| S|CS|TAMS 0x0000000716800000, 0x0000000716800000| Complete +| 105|0x0000000716a00000, 0x0000000716c00000, 0x0000000716c00000|100%| S|CS|TAMS 0x0000000716a00000, 0x0000000716a00000| Complete +| 106|0x0000000716c00000, 0x0000000716e00000, 0x0000000716e00000|100%| E|CS|TAMS 0x0000000716c00000, 0x0000000716c00000| Complete +| 107|0x0000000716e00000, 0x0000000717000000, 0x0000000717000000|100%| E|CS|TAMS 0x0000000716e00000, 0x0000000716e00000| Complete +| 108|0x0000000717000000, 0x0000000717200000, 0x0000000717200000|100%| E|CS|TAMS 0x0000000717000000, 0x0000000717000000| Complete +| 109|0x0000000717200000, 0x0000000717400000, 0x0000000717400000|100%| E|CS|TAMS 0x0000000717200000, 0x0000000717200000| Complete +| 110|0x0000000717400000, 0x0000000717600000, 0x0000000717600000|100%| E|CS|TAMS 0x0000000717400000, 0x0000000717400000| Complete +| 111|0x0000000717600000, 0x0000000717800000, 0x0000000717800000|100%| E|CS|TAMS 0x0000000717600000, 0x0000000717600000| Complete +| 112|0x0000000717800000, 0x0000000717a00000, 0x0000000717a00000|100%| E|CS|TAMS 0x0000000717800000, 0x0000000717800000| Complete +| 113|0x0000000717a00000, 0x0000000717c00000, 0x0000000717c00000|100%| E|CS|TAMS 0x0000000717a00000, 0x0000000717a00000| Complete +| 114|0x0000000717c00000, 0x0000000717e00000, 0x0000000717e00000|100%| E|CS|TAMS 0x0000000717c00000, 0x0000000717c00000| Complete +| 115|0x0000000717e00000, 0x0000000718000000, 0x0000000718000000|100%| E|CS|TAMS 0x0000000717e00000, 0x0000000717e00000| Complete +| 116|0x0000000718000000, 0x0000000718200000, 0x0000000718200000|100%| E| |TAMS 0x0000000718000000, 0x0000000718000000| Complete +| 117|0x0000000718200000, 0x0000000718400000, 0x0000000718400000|100%| E|CS|TAMS 0x0000000718200000, 0x0000000718200000| Complete +| 118|0x0000000718400000, 0x0000000718600000, 0x0000000718600000|100%| E|CS|TAMS 0x0000000718400000, 0x0000000718400000| Complete +| 119|0x0000000718600000, 0x0000000718800000, 0x0000000718800000|100%| E|CS|TAMS 0x0000000718600000, 0x0000000718600000| Complete +| 120|0x0000000718800000, 0x0000000718a00000, 0x0000000718a00000|100%| E|CS|TAMS 0x0000000718800000, 0x0000000718800000| Complete +| 121|0x0000000718a00000, 0x0000000718c00000, 0x0000000718c00000|100%| E|CS|TAMS 0x0000000718a00000, 0x0000000718a00000| Complete +| 122|0x0000000718c00000, 0x0000000718e00000, 0x0000000718e00000|100%| E|CS|TAMS 0x0000000718c00000, 0x0000000718c00000| Complete +| 123|0x0000000718e00000, 0x0000000719000000, 0x0000000719000000|100%| E|CS|TAMS 0x0000000718e00000, 0x0000000718e00000| Complete + +Card table byte_map: [0x000001bb2b240000,0x000001bb2ba00000] _byte_map_base: 0x000001bb279f4000 + +Marking Bits (Prev, Next): (CMBitMap*) 0x000001bb11af2ac0, (CMBitMap*) 0x000001bb11af2b00 + Prev Bits: [0x000001bb2c1c0000, 0x000001bb2ff60000) + Next Bits: [0x000001bb2ff60000, 0x000001bb33d00000) + +Polling page: 0x000001bb11770000 + +Metaspace: + +Usage: + Non-class: 10.62 MB used. + Class: 1.04 MB used. + Both: 11.66 MB used. + +Virtual space: + Non-class space: 16.00 MB reserved, 10.75 MB ( 67%) committed, 2 nodes. + Class space: 1.00 GB reserved, 1.12 MB ( <1%) committed, 1 nodes. + Both: 1.02 GB reserved, 11.88 MB ( 1%) committed. + +Chunk freelists: + Non-Class: 864.00 KB + Class: 2.91 MB + Both: 3.75 MB + +MaxMetaspaceSize: unlimited +CompressedClassSpaceSize: 1.00 GB +Initial GC threshold: 21.00 MB +Current GC threshold: 21.00 MB +CDS: on +MetaspaceReclaimPolicy: balanced + - commit_granule_bytes: 65536. + - commit_granule_words: 8192. + - virtual_space_node_default_size: 1048576. + - enlarge_chunks_in_place: 1. + - new_chunks_are_fully_committed: 0. + - uncommit_free_chunks: 1. + - use_allocation_guard: 0. + - handle_deallocations: 1. + + +Internal statistics: + +num_allocs_failed_limit: 0. +num_arena_births: 156. +num_arena_deaths: 0. +num_vsnodes_births: 3. +num_vsnodes_deaths: 0. +num_space_committed: 188. +num_space_uncommitted: 0. +num_chunks_returned_to_freelist: 0. +num_chunks_taken_from_freelist: 514. +num_chunk_merges: 0. +num_chunk_splits: 350. +num_chunks_enlarged: 268. +num_purges: 0. +num_inconsistent_stats: 0. + +CodeHeap 'non-profiled nmethods': size=119168Kb used=2604Kb max_used=2604Kb free=116563Kb + bounds [0x000001bb22660000, 0x000001bb228f0000, 0x000001bb29ac0000] +CodeHeap 'profiled nmethods': size=119104Kb used=7341Kb max_used=7341Kb free=111763Kb + bounds [0x000001bb1aac0000, 0x000001bb1b1f0000, 0x000001bb21f10000] +CodeHeap 'non-nmethods': size=7488Kb used=1659Kb max_used=3395Kb free=5828Kb + bounds [0x000001bb21f10000, 0x000001bb222d0000, 0x000001bb22660000] + total_blobs=4594 nmethods=3493 adapters=1013 + compilation: enabled + stopped_count=0, restarted_count=0 + full_count=0 + +Compilation events (20 events): +Event: 27.275 Thread 0x000001bb37804620 3484 3 com.csse3200.game.components.TouchAttackComponent::onCollisionEnd (83 bytes) +Event: 27.276 Thread 0x000001bb37804620 nmethod 3484 0x000001bb1b1df010 code [0x000001bb1b1df240, 0x000001bb1b1dfb28] +Event: 27.276 Thread 0x000001bb37804620 3485 3 com.csse3200.game.components.TouchAttackComponent::onCollisionStart (233 bytes) +Event: 27.280 Thread 0x000001bb37804620 nmethod 3485 0x000001bb1b1dfe90 code [0x000001bb1b1e0520, 0x000001bb1b1e3f68] +Event: 27.626 Thread 0x000001bb37800080 3486 4 com.csse3200.game.physics.PhysicsLayer::contains (10 bytes) +Event: 27.626 Thread 0x000001bb37800080 nmethod 3486 0x000001bb228ea390 code [0x000001bb228ea500, 0x000001bb228ea558] +Event: 27.803 Thread 0x000001bb37800080 3487 s 4 java.io.ByteArrayOutputStream::write (43 bytes) +Event: 27.810 Thread 0x000001bb37800080 nmethod 3487 0x000001bb228ea690 code [0x000001bb228ea820, 0x000001bb228eb028] +Event: 27.892 Thread 0x000001bb37804620 3488 3 com.csse3200.game.services.GameTime::getTimeSince (7 bytes) +Event: 27.893 Thread 0x000001bb37804620 nmethod 3488 0x000001bb1b1e5610 code [0x000001bb1b1e57c0, 0x000001bb1b1e5a38] +Event: 28.076 Thread 0x000001bb37804620 3489 ! 3 jdk.internal.misc.ScopedMemoryAccess::putInt (25 bytes) +Event: 28.076 Thread 0x000001bb37804620 nmethod 3489 0x000001bb1b1e5b90 code [0x000001bb1b1e5d80, 0x000001bb1b1e62f8] +Event: 28.076 Thread 0x000001bb37804620 3490 ! 3 jdk.internal.misc.ScopedMemoryAccess::putIntInternal (37 bytes) +Event: 28.077 Thread 0x000001bb37804620 nmethod 3490 0x000001bb1b1e6590 code [0x000001bb1b1e6740, 0x000001bb1b1e6a68] +Event: 28.125 Thread 0x000001bb37804620 3491 3 com.csse3200.game.components.tasks.MobWanderTask::update (212 bytes) +Event: 28.129 Thread 0x000001bb37804620 nmethod 3491 0x000001bb1b1e6c10 code [0x000001bb1b1e7100, 0x000001bb1b1e9c18] +Event: 28.226 Thread 0x000001bb37804620 3492 3 com.csse3200.game.components.tasks.human.HumanWaitTask::update (23 bytes) +Event: 28.226 Thread 0x000001bb37804620 nmethod 3492 0x000001bb1b1eaa90 code [0x000001bb1b1eac40, 0x000001bb1b1eaf78] +Event: 28.242 Thread 0x000001bb37804620 3493 3 java.util.TaskQueue::isEmpty (13 bytes) +Event: 28.242 Thread 0x000001bb37804620 nmethod 3493 0x000001bb1b1eb090 code [0x000001bb1b1eb220, 0x000001bb1b1eb398] + +GC Heap History (4 events): +Event: 2.801 GC heap before +{Heap before GC invocations=0 (full 0): + garbage-first heap total 253952K, used 20480K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 11 young (22528K), 0 survivors (0K) + Metaspace used 6453K, committed 6656K, reserved 1064960K + class space used 485K, committed 576K, reserved 1048576K +} +Event: 2.806 GC heap after +{Heap after GC invocations=1 (full 0): + garbage-first heap total 253952K, used 3628K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 2 young (4096K), 2 survivors (4096K) + Metaspace used 6453K, committed 6656K, reserved 1064960K + class space used 485K, committed 576K, reserved 1048576K +} +Event: 7.077 GC heap before +{Heap before GC invocations=1 (full 0): + garbage-first heap total 253952K, used 38444K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 18 young (36864K), 2 survivors (4096K) + Metaspace used 9685K, committed 9920K, reserved 1064960K + class space used 809K, committed 896K, reserved 1048576K +} +Event: 7.086 GC heap after +{Heap after GC invocations=2 (full 0): + garbage-first heap total 253952K, used 5330K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 2 young (4096K), 2 survivors (4096K) + Metaspace used 9685K, committed 9920K, reserved 1064960K + class space used 809K, committed 896K, reserved 1048576K +} + +Deoptimization events (20 events): +Event: 27.258 Thread 0x000001bb11a80260 Uncommon trap: trap_request=0xffffff45 fr.pc=0x000001bb22835c10 relative=0x0000000000000330 +Event: 27.258 Thread 0x000001bb11a80260 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000001bb22835c10 method=com.csse3200.game.components.TouchAttackComponent.onCollisionStart(Lcom/badlogic/gdx/physics/box2d/Fixture;Lcom/badlogic/gdx/physics/box2d/Fixture;)V @ 54 c2 +Event: 27.258 Thread 0x000001bb11a80260 DEOPT PACKING pc=0x000001bb22835c10 sp=0x0000005c3acfe4e0 +Event: 27.258 Thread 0x000001bb11a80260 DEOPT UNPACKING pc=0x000001bb21f623a3 sp=0x0000005c3acfe520 mode 2 +Event: 27.275 Thread 0x000001bb11a80260 Uncommon trap: trap_request=0xffffff45 fr.pc=0x000001bb22856084 relative=0x00000000000005e4 +Event: 27.275 Thread 0x000001bb11a80260 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000001bb22856084 method=com.csse3200.game.components.TouchAttackComponent.onCollisionEnd(Lcom/badlogic/gdx/physics/box2d/Fixture;Lcom/badlogic/gdx/physics/box2d/Fixture;)V @ 50 c2 +Event: 27.275 Thread 0x000001bb11a80260 DEOPT PACKING pc=0x000001bb22856084 sp=0x0000005c3acfe590 +Event: 27.275 Thread 0x000001bb11a80260 DEOPT UNPACKING pc=0x000001bb21f623a3 sp=0x0000005c3acfe538 mode 2 +Event: 27.811 Thread 0x000001bb11a80260 Uncommon trap: trap_request=0xffffffde fr.pc=0x000001bb22898fe4 relative=0x0000000000003b44 +Event: 27.811 Thread 0x000001bb11a80260 Uncommon trap: reason=class_check action=maybe_recompile pc=0x000001bb22898fe4 method=com.badlogic.gdx.utils.ComparableTimSort.countRunAndMakeAscending([Ljava/lang/Object;II)I @ 39 c2 +Event: 27.811 Thread 0x000001bb11a80260 DEOPT PACKING pc=0x000001bb22898fe4 sp=0x0000005c3acfef00 +Event: 27.811 Thread 0x000001bb11a80260 DEOPT UNPACKING pc=0x000001bb21f623a3 sp=0x0000005c3acfed30 mode 2 +Event: 28.092 Thread 0x000001bb11a80260 Uncommon trap: trap_request=0xffffff45 fr.pc=0x000001bb228ab14c relative=0x00000000000020ac +Event: 28.092 Thread 0x000001bb11a80260 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000001bb228ab14c method=com.csse3200.game.components.tasks.MovementTask.isAtTarget()Z @ 24 c2 +Event: 28.092 Thread 0x000001bb11a80260 DEOPT PACKING pc=0x000001bb228ab14c sp=0x0000005c3acfeef0 +Event: 28.092 Thread 0x000001bb11a80260 DEOPT UNPACKING pc=0x000001bb21f623a3 sp=0x0000005c3acfee20 mode 2 +Event: 28.826 Thread 0x000001bb11a80260 Uncommon trap: trap_request=0xffffff45 fr.pc=0x000001bb22809fbc relative=0x000000000000057c +Event: 28.826 Thread 0x000001bb11a80260 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000001bb22809fbc method=com.csse3200.game.components.tasks.MovementTask.isAtTarget()Z @ 24 c2 +Event: 28.826 Thread 0x000001bb11a80260 DEOPT PACKING pc=0x000001bb22809fbc sp=0x0000005c3acfede0 +Event: 28.826 Thread 0x000001bb11a80260 DEOPT UNPACKING pc=0x000001bb21f623a3 sp=0x0000005c3acfed58 mode 2 + +Classes unloaded (0 events): +No events + +Classes redefined (0 events): +No events + +Internal exceptions (20 events): +Event: 2.318 Thread 0x000001bb11a80260 Exception (0x00000007183314e8) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 2.318 Thread 0x000001bb11a80260 Exception (0x0000000718331890) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 2.323 Thread 0x000001bb11a80260 Exception (0x000000071833ce58) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 2.323 Thread 0x000001bb11a80260 Exception (0x000000071833d138) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 2.594 Thread 0x000001bb11a80260 Exception (0x0000000717e68ff0) +thrown [s\open\src\hotspot\share\classfile\systemDictionary.cpp, line 256] +Event: 2.622 Thread 0x000001bb11a80260 Exception (0x0000000717eef690) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 2.657 Thread 0x000001bb11a80260 Exception (0x0000000717f3e1e0) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 2.661 Thread 0x000001bb11a80260 Exception (0x0000000717f48600) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 5.758 Thread 0x000001bb11a80260 Exception (0x0000000718185290) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 5.882 Thread 0x000001bb11a80260 Exception (0x0000000717fa7e60) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 8.255 Thread 0x000001bb11a80260 Exception (0x00000007170696c8) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 8.257 Thread 0x000001bb11a80260 Exception (0x0000000717077cd8) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 8.259 Thread 0x000001bb11a80260 Exception (0x0000000717081450) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 8.407 Thread 0x000001bb11a80260 Exception (0x00000007171acf80) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 8.508 Thread 0x000001bb11a80260 Exception (0x0000000716f8a4f8) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 8.534 Thread 0x000001bb11a80260 Exception (0x0000000716c2c010) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 8.552 Thread 0x000001bb11a80260 Exception (0x0000000716c418c0) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 12.710 Thread 0x000001bb11a80260 Implicit null exception at 0x000001bb227ed990 to 0x000001bb227edf70 +Event: 26.076 Thread 0x000001bb5329dba0 Implicit null exception at 0x000001bb1b14ac55 to 0x000001bb1b14ad63 +Event: 26.076 Thread 0x000001bb5329dba0 Exception (0x00000007153b9550) +thrown [s\open\src\hotspot\share\runtime\sharedRuntime.cpp, line 628] + +VM Operations (20 events): +Event: 15.907 Executing VM operation: Cleanup +Event: 15.907 Executing VM operation: Cleanup done +Event: 16.908 Executing VM operation: Cleanup +Event: 16.908 Executing VM operation: Cleanup done +Event: 17.909 Executing VM operation: Cleanup +Event: 17.909 Executing VM operation: Cleanup done +Event: 19.909 Executing VM operation: Cleanup +Event: 19.909 Executing VM operation: Cleanup done +Event: 20.909 Executing VM operation: Cleanup +Event: 20.909 Executing VM operation: Cleanup done +Event: 22.910 Executing VM operation: Cleanup +Event: 22.910 Executing VM operation: Cleanup done +Event: 23.911 Executing VM operation: Cleanup +Event: 23.911 Executing VM operation: Cleanup done +Event: 24.912 Executing VM operation: Cleanup +Event: 24.912 Executing VM operation: Cleanup done +Event: 25.913 Executing VM operation: Cleanup +Event: 25.913 Executing VM operation: Cleanup done +Event: 26.913 Executing VM operation: Cleanup +Event: 26.913 Executing VM operation: Cleanup done + +Events (20 events): +Event: 25.175 Thread 0x000001bb3f19b630 Thread added: 0x000001bb3f19b630 +Event: 25.374 Thread 0x000001bb3f19bfd0 Thread added: 0x000001bb3f19bfd0 +Event: 25.442 Thread 0x000001bb3f19dcb0 Thread added: 0x000001bb3f19dcb0 +Event: 25.708 Thread 0x000001bb379d5a30 Thread added: 0x000001bb379d5a30 +Event: 26.058 Thread 0x000001bb379d5090 Thread added: 0x000001bb379d5090 +Event: 26.076 loading class java/lang/Throwable$WrappedPrintStream +Event: 26.076 loading class java/lang/Throwable$PrintStreamOrWriter +Event: 26.076 loading class java/lang/Throwable$PrintStreamOrWriter done +Event: 26.076 loading class java/lang/Throwable$WrappedPrintStream done +Event: 26.081 Thread 0x000001bb5329dba0 Thread exited: 0x000001bb5329dba0 +Event: 26.125 Thread 0x000001bb379d7be0 Thread added: 0x000001bb379d7be0 +Event: 26.226 Thread 0x000001bb379d7240 Thread added: 0x000001bb379d7240 +Event: 26.910 Thread 0x000001bb379d8580 Thread added: 0x000001bb379d8580 +Event: 26.958 Thread 0x000001bb379d93f0 Thread added: 0x000001bb379d93f0 +Event: 27.275 Thread 0x000001bb379d2a10 Thread added: 0x000001bb379d2a10 +Event: 27.725 Thread 0x000001bb379d5f00 Thread added: 0x000001bb379d5f00 +Event: 27.774 Thread 0x000001bb379d2540 Thread added: 0x000001bb379d2540 +Event: 28.491 Thread 0x000001bb379d80b0 Thread added: 0x000001bb379d80b0 +Event: 28.541 Thread 0x000001bb379d4bc0 Thread added: 0x000001bb379d4bc0 +Event: 28.575 Thread 0x000001bb379d8f20 Thread added: 0x000001bb379d8f20 + + +Dynamic libraries: +0x00007ff6473f0000 - 0x00007ff647400000 C:\Program Files\Java\jdk-17\bin\java.exe +0x00007ffba77b0000 - 0x00007ffba79a8000 C:\Windows\SYSTEM32\ntdll.dll +0x00007ffba7300000 - 0x00007ffba73bd000 C:\Windows\System32\KERNEL32.DLL +0x00007ffba4f20000 - 0x00007ffba5216000 C:\Windows\System32\KERNELBASE.dll +0x00007ffba5220000 - 0x00007ffba5320000 C:\Windows\System32\ucrtbase.dll +0x00007ffb93320000 - 0x00007ffb93338000 C:\Program Files\Java\jdk-17\bin\jli.dll +0x00007ffb932e0000 - 0x00007ffb932fb000 C:\Program Files\Java\jdk-17\bin\VCRUNTIME140.dll +0x00007ffba7250000 - 0x00007ffba72fe000 C:\Windows\System32\ADVAPI32.dll +0x00007ffba5810000 - 0x00007ffba58ae000 C:\Windows\System32\msvcrt.dll +0x00007ffba58b0000 - 0x00007ffba594c000 C:\Windows\System32\sechost.dll +0x00007ffba60e0000 - 0x00007ffba6206000 C:\Windows\System32\RPCRT4.dll +0x00007ffba73c0000 - 0x00007ffba755e000 C:\Windows\System32\USER32.dll +0x00007ffb9a290000 - 0x00007ffb9a52a000 C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_60b5254171f9507e\COMCTL32.dll +0x00007ffba53f0000 - 0x00007ffba5412000 C:\Windows\System32\win32u.dll +0x00007ffba6210000 - 0x00007ffba623c000 C:\Windows\System32\GDI32.dll +0x00007ffba5640000 - 0x00007ffba575a000 C:\Windows\System32\gdi32full.dll +0x00007ffba5350000 - 0x00007ffba53ed000 C:\Windows\System32\msvcp_win.dll +0x00007ffb98ea0000 - 0x00007ffb98eaa000 C:\Windows\SYSTEM32\VERSION.dll +0x00007ffba6250000 - 0x00007ffba6280000 C:\Windows\System32\IMM32.DLL +0x00007ffb95130000 - 0x00007ffb9513c000 C:\Program Files\Java\jdk-17\bin\vcruntime140_1.dll +0x00007ffb74be0000 - 0x00007ffb74c6e000 C:\Program Files\Java\jdk-17\bin\msvcp140.dll +0x00007ffb5a8f0000 - 0x00007ffb5b4c7000 C:\Program Files\Java\jdk-17\bin\server\jvm.dll +0x00007ffba6240000 - 0x00007ffba6248000 C:\Windows\System32\PSAPI.DLL +0x00007ffb98e70000 - 0x00007ffb98e97000 C:\Windows\SYSTEM32\WINMM.dll +0x00007ffb84120000 - 0x00007ffb84129000 C:\Windows\SYSTEM32\WSOCK32.dll +0x00007ffba71e0000 - 0x00007ffba724b000 C:\Windows\System32\WS2_32.dll +0x00007ffba36e0000 - 0x00007ffba36f2000 C:\Windows\SYSTEM32\kernel.appcore.dll +0x00007ffb95040000 - 0x00007ffb9504a000 C:\Program Files\Java\jdk-17\bin\jimage.dll +0x00007ffba2bb0000 - 0x00007ffba2d94000 C:\Windows\SYSTEM32\DBGHELP.DLL +0x00007ffb96480000 - 0x00007ffb964b4000 C:\Windows\SYSTEM32\dbgcore.DLL +0x00007ffba4e90000 - 0x00007ffba4f12000 C:\Windows\System32\bcryptPrimitives.dll +0x00007ffb81d60000 - 0x00007ffb81d85000 C:\Program Files\Java\jdk-17\bin\java.dll +0x00007ffb6f9c0000 - 0x00007ffb6fa97000 C:\Program Files\Java\jdk-17\bin\jsvml.dll +0x00007ffba63f0000 - 0x00007ffba6b35000 C:\Windows\System32\SHELL32.dll +0x00007ffba2f00000 - 0x00007ffba369b000 C:\Windows\SYSTEM32\windows.storage.dll +0x00007ffba5c50000 - 0x00007ffba5fa4000 C:\Windows\System32\combase.dll +0x00007ffba4860000 - 0x00007ffba488e000 C:\Windows\SYSTEM32\Wldp.dll +0x00007ffba6b40000 - 0x00007ffba6bed000 C:\Windows\System32\SHCORE.dll +0x00007ffba5b20000 - 0x00007ffba5b75000 C:\Windows\System32\shlwapi.dll +0x00007ffba4dc0000 - 0x00007ffba4de5000 C:\Windows\SYSTEM32\profapi.dll +0x00007ffb84150000 - 0x00007ffb84169000 C:\Program Files\Java\jdk-17\bin\net.dll +0x00007ffb9f190000 - 0x00007ffb9f29a000 C:\Windows\SYSTEM32\WINHTTP.dll +0x0000000180000000 - 0x000000018008c000 C:\Windows\system32\ASProxy64.dll +0x00007ffba5fb0000 - 0x00007ffba60da000 C:\Windows\System32\ole32.dll +0x00007ffba5b80000 - 0x00007ffba5c4d000 C:\Windows\System32\OLEAUT32.dll +0x00007ffba42b0000 - 0x00007ffba42eb000 C:\Windows\SYSTEM32\IPHLPAPI.DLL +0x00007ffba45c0000 - 0x00007ffba462a000 C:\Windows\SYSTEM32\MSWSOCK.dll +0x00007ffba4d40000 - 0x00007ffba4d72000 C:\Windows\SYSTEM32\SspiCli.dll +0x00007ffb83d50000 - 0x00007ffb83d66000 C:\Program Files\Java\jdk-17\bin\nio.dll +0x00007ffb83bb0000 - 0x00007ffb83bc8000 C:\Program Files\Java\jdk-17\bin\zip.dll +0x00007ffba2120000 - 0x00007ffba21be000 C:\Windows\system32\uxtheme.dll +0x00007ffb94c00000 - 0x00007ffb94c10000 C:\Program Files\Java\jdk-17\bin\verify.dll +0x0000000050410000 - 0x0000000050439000 C:\Users\isaac\AppData\Local\Temp\libgdxisaac\e787ab0a\gdx64.dll +0x00007ffb772a0000 - 0x00007ffb77315000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\lwjgl.dll +0x00007ffb5f3f0000 - 0x00007ffb5f649000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\jemalloc.dll +0x00007ffb75340000 - 0x00007ffb753a1000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\glfw.dll +0x00007ffb7e740000 - 0x00007ffb7e785000 C:\Windows\SYSTEM32\dinput8.dll +0x00007ffb951f0000 - 0x00007ffb95201000 C:\Windows\SYSTEM32\xinput1_4.dll +0x00007ffba5420000 - 0x00007ffba546e000 C:\Windows\System32\cfgmgr32.dll +0x00007ffba4c40000 - 0x00007ffba4c73000 C:\Windows\SYSTEM32\DEVOBJ.dll +0x00007ffba24b0000 - 0x00007ffba24df000 C:\Windows\SYSTEM32\dwmapi.dll +0x00007ffb7c850000 - 0x00007ffb7c9a2000 C:\Windows\SYSTEM32\inputhost.dll +0x00007ffba0590000 - 0x00007ffba06e5000 C:\Windows\SYSTEM32\wintypes.dll +0x00007ffba1d30000 - 0x00007ffba1e22000 C:\Windows\SYSTEM32\CoreMessaging.dll +0x00007ffba2da0000 - 0x00007ffba2e96000 C:\Windows\SYSTEM32\PROPSYS.dll +0x00007ffba1650000 - 0x00007ffba19ae000 C:\Windows\SYSTEM32\CoreUIComponents.dll +0x00007ffba3fe0000 - 0x00007ffba4013000 C:\Windows\SYSTEM32\ntmarta.dll +0x00007ffba7570000 - 0x00007ffba7684000 C:\Windows\System32\MSCTF.dll +0x00007ffb6b210000 - 0x00007ffb6b3a7000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\OpenAL.dll +0x00007ffba6bf0000 - 0x00007ffba6c99000 C:\Windows\System32\clbcatq.dll +0x00007ffb9d930000 - 0x00007ffb9d9b5000 C:\Windows\System32\MMDevApi.dll +0x00007ffb9d2a0000 - 0x00007ffb9d422000 C:\Windows\SYSTEM32\AUDIOSES.DLL +0x00007ffba4bd0000 - 0x00007ffba4c1b000 C:\Windows\SYSTEM32\powrprof.dll +0x00007ffba4bb0000 - 0x00007ffba4bc2000 C:\Windows\SYSTEM32\UMPDC.dll +0x00007ffba24e0000 - 0x00007ffba24f4000 C:\Windows\SYSTEM32\resourcepolicyclient.dll +0x00007ffb62e30000 - 0x00007ffb62f55000 C:\Windows\SYSTEM32\opengl32.dll +0x00007ffb921d0000 - 0x00007ffb921fc000 C:\Windows\SYSTEM32\GLU32.dll +0x00007ffb9c490000 - 0x00007ffb9c592000 C:\Windows\System32\AppXDeploymentClient.dll +0x00007ffb83c80000 - 0x00007ffb83caa000 C:\Windows\System32\DriverStore\FileRepository\u0363312.inf_amd64_08fc5018b1b99545\B363211\atig6pxx.dll +0x00007ffb57770000 - 0x00007ffb5a515000 C:\Windows\System32\DriverStore\FileRepository\u0363312.inf_amd64_08fc5018b1b99545\B363211\atio6axx.dll +0x00007ffba6d10000 - 0x00007ffba717e000 C:\Windows\System32\SETUPAPI.dll +0x00007ffba5320000 - 0x00007ffba5347000 C:\Windows\System32\bcrypt.dll +0x00007ffb94f20000 - 0x00007ffb94f44000 C:\Windows\SYSTEM32\dxva2.dll +0x00007ffb7e280000 - 0x00007ffb7e2bc000 C:\Windows\System32\DriverStore\FileRepository\u0363312.inf_amd64_08fc5018b1b99545\B363211\atig6txx.dll +0x00007ffb575b0000 - 0x00007ffb5776f000 C:\Windows\SYSTEM32\atiadlxx.dll +0x00007ffba55d0000 - 0x00007ffba5637000 C:\Windows\System32\WINTRUST.dll +0x00007ffba5470000 - 0x00007ffba55ce000 C:\Windows\System32\CRYPT32.dll +0x00007ffba49f0000 - 0x00007ffba4a02000 C:\Windows\SYSTEM32\MSASN1.dll +0x00007ffb9eba0000 - 0x00007ffb9ebdb000 C:\Windows\SYSTEM32\dxcore.dll +0x00007ffb752e0000 - 0x00007ffb7533d000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\lwjgl_opengl.dll +0x00007ffb7c9b0000 - 0x00007ffb7caaa000 C:\Windows\SYSTEM32\textinputframework.dll +0x00007ffb7f310000 - 0x00007ffb7f376000 C:\Windows\system32\Oleacc.dll +0x00007ffb72850000 - 0x00007ffb72b45000 C:\Windows\System32\uiautomationcore.dll +0x00007ffba47d0000 - 0x00007ffba47dc000 C:\Windows\SYSTEM32\CRYPTBASE.DLL +0x00000000503b0000 - 0x000000005040a000 C:\Users\isaac\AppData\Local\Temp\libgdxisaac\888fe1bc\gdx-box2d64.dll +0x00007ffba47b0000 - 0x00007ffba47c8000 C:\Windows\SYSTEM32\CRYPTSP.dll +0x00007ffba3ec0000 - 0x00007ffba3ef4000 C:\Windows\system32\rsaenh.dll +0x00007ffba4d80000 - 0x00007ffba4dae000 C:\Windows\SYSTEM32\USERENV.dll +0x00007ffba6d00000 - 0x00007ffba6d08000 C:\Windows\System32\NSI.dll +0x00007ffb9b8c0000 - 0x00007ffb9b8d7000 C:\Windows\SYSTEM32\dhcpcsvc6.DLL +0x00007ffb9ce90000 - 0x00007ffb9cead000 C:\Windows\SYSTEM32\dhcpcsvc.DLL +0x00007ffba42f0000 - 0x00007ffba43ba000 C:\Windows\SYSTEM32\DNSAPI.dll + +dbghelp: loaded successfully - version: 4.0.5 - missing functions: none +symbol engine: initialized successfully - sym options: 0x614 - pdb path: .;C:\Program Files\Java\jdk-17\bin;C:\Windows\SYSTEM32;C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_60b5254171f9507e;C:\Program Files\Java\jdk-17\bin\server;C:\Users\isaac\AppData\Local\Temp\libgdxisaac\e787ab0a;C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7;C:\Windows\System32\DriverStore\FileRepository\u0363312.inf_amd64_08fc5018b1b99545\B363211;C:\Users\isaac\AppData\Local\Temp\libgdxisaac\888fe1bc + +VM Arguments: +jvm_args: -XX:+ShowCodeDetailsInExceptionMessages +java_command: com.csse3200.game.desktop.DesktopLauncher +java_class_path (initial): C:\Users\isaac\OneDrive\Documents\School\University of Queensland\UQ 2023\UQ 2023 Semester 2\CSSE3200\2023-studio-3\source\desktop\bin\main;\csse3200-game-core\bin\default;C:\Users\isaac\OneDrive\Documents\School\University of Queensland\UQ 2023\UQ 2023 Semester 2\CSSE3200\2023-studio-3\source\core\bin\main;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-backend-lwjgl3\1.11.0\58a96db4cd349be4292d547856aa1e1c5f065f4e\gdx-backend-lwjgl3-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-platform\1.11.0\697fb13eada6d3c6ca648c9788692b0159add126\gdx-platform-1.11.0-natives-desktop.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-box2d-platform\1.11.0\62ff9baa1e57a11e0a4428a38c9660bf9f312fdc\gdx-box2d-platform-1.11.0-natives-desktop.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-tools\1.11.0\a5d30eafd0f2fbab314efdf6d98ebc27388b7c0a\gdx-tools-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx-controllers\gdx-controllers-desktop\2.2.2\625b3bdbe803e9c4af181b4791202cfcf776d805\gdx-controllers-desktop-2.2.2.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-backend-lwjgl\1.11.0\33555a2cf8b4d9db4122b2fe42e7674b343d8b4\gdx-backend-lwjgl-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-freetype\1.11.0\a3634ad2e6c56d251268d6ab5c0f66eee2841f2c\gdx-freetype-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-backend-headless\1.11.0\3c3d0c951db72891d894df1725d09179fd0bca00\gdx-backend-headless-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\net.dermetfan.libgdx-utils\libgdx-utils-box2d\0.13.4\918d79a20ea3c898cdb3611782c5b2bfa6ec575b\libgdx-utils-box2d-0.13.4.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-box2d\1.11.0\ad4facee800dd945d6d6e93dea2936bc135b +Launcher Type: SUN_STANDARD + +[Global flags] + intx CICompilerCount = 12 {product} {ergonomic} + uint ConcGCThreads = 3 {product} {ergonomic} + uint G1ConcRefinementThreads = 13 {product} {ergonomic} + size_t G1HeapRegionSize = 2097152 {product} {ergonomic} + uintx GCDrainStackTargetSize = 64 {product} {ergonomic} + size_t InitialHeapSize = 260046848 {product} {ergonomic} + size_t MarkStackSize = 4194304 {product} {ergonomic} + size_t MaxHeapSize = 4135583744 {product} {ergonomic} + size_t MaxNewSize = 2480930816 {product} {ergonomic} + size_t MinHeapDeltaBytes = 2097152 {product} {ergonomic} + size_t MinHeapSize = 8388608 {product} {ergonomic} + uintx NonNMethodCodeHeapSize = 7602480 {pd product} {ergonomic} + uintx NonProfiledCodeHeapSize = 122027880 {pd product} {ergonomic} + uintx ProfiledCodeHeapSize = 122027880 {pd product} {ergonomic} + uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} + bool SegmentedCodeCache = true {product} {ergonomic} + bool ShowCodeDetailsInExceptionMessages = true {manageable} {command line} + size_t SoftMaxHeapSize = 4135583744 {manageable} {ergonomic} + bool UseCompressedClassPointers = true {product lp64_product} {ergonomic} + bool UseCompressedOops = true {product lp64_product} {ergonomic} + bool UseG1GC = true {product} {ergonomic} + bool UseLargePagesIndividualAllocation = false {pd product} {ergonomic} + +Logging: +Log output configuration: + #0: stdout all=warning uptime,level,tags + #1: stderr all=off uptime,level,tags + +Environment Variables: +PATH=C:\Users\isaac\bin;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\local\bin;C:\Program Files\Git\usr\bin;C:\Program Files\Git\usr\bin;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Users\isaac\bin;C:\Program Files\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn;C:\Program Files (x86)\Microsoft SQL Server\150\Tools\Binn;C:\Program Files\Microsoft SQL Server\150\Tools\Binn;C:\Program Files\Microsoft SQL Server\150\DTS\Binn;C:\Program Files (x86)\Microsoft SQL Server\150\DTS\Binn;C:\Program Files\Azure Data Studio\bin;C:\Program Files\Git\cmd;C:\Program Files\PuTTY;C:\Program Files (x86)\Pololu\USB AVR Programmer v2\bin;C:\Program Files\nodejs;C:\Users\isaac\AppData\Local\Programs\Python\Python310\Scripts;C:\Users\isaac\AppData\Local\Programs\Python\Python310;C:\Users\isaac\AppData\Local\Microsoft\WindowsApps;C:\Users\isaac\AppData\Local\Programs\Microsoft VS Code\bin;C:\Program Files\Azure Data Studio\bin;C:\Users\isaac\AppData\Roaming\npm;C:\Program Files\Git\usr\bin\vendor_perl;C:\Program Files\Git\usr\bin\core_perl +USERNAME=isaac +SHELL=C:\Program Files\Git\usr\bin\bash.exe +DISPLAY=needs-to-be-defined +LANG=en_US.UTF-8 +OS=Windows_NT +PROCESSOR_IDENTIFIER=AMD64 Family 23 Model 104 Stepping 1, AuthenticAMD + + + +--------------- S Y S T E M --------------- + +OS: + Windows 10 , 64 bit Build 19041 (10.0.19041.3393) +OS uptime: 8 days 7:25 hours + +CPU: total 16 (initial active 16) (16 cores per cpu, 2 threads per core) family 23 model 104 stepping 1 microcode 0x0, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4a, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, clmul, bmi1, bmi2, adx, sha, fma, vzeroupper, clflush, clflushopt + +Memory: 4k page, system-wide physical 15769M (3271M free) +TotalPageFile size 22725M (AvailPageFile size 3197M) +current process WorkingSet (physical memory assigned to process): 423M, peak: 468M +current process commit charge ("private bytes"): 737M, peak: 783M + +vm_info: Java HotSpot(TM) 64-Bit Server VM (17.0.6+9-LTS-190) for windows-amd64 JRE (17.0.6+9-LTS-190), built on Dec 6 2022 15:53:54 by "mach5one" with MS VC++ 17.1 (VS2022) + +END. diff --git a/hs_err_pid29160.log b/hs_err_pid29160.log new file mode 100644 index 000000000..96d09e98b --- /dev/null +++ b/hs_err_pid29160.log @@ -0,0 +1,808 @@ +# +# A fatal error has been detected by the Java Runtime Environment: +# +# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000000503eb9e2, pid=29160, tid=25180 +# +# JRE version: Java(TM) SE Runtime Environment (17.0.6+9) (build 17.0.6+9-LTS-190) +# Java VM: Java HotSpot(TM) 64-Bit Server VM (17.0.6+9-LTS-190, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64) +# Problematic frame: +# C [gdx-box2d64.dll+0x3b9e2] +# +# 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: +# https://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: -XX:+ShowCodeDetailsInExceptionMessages com.csse3200.game.desktop.DesktopLauncher + +Host: AMD Ryzen 7 5700U with Radeon Graphics , 16 cores, 15G, Windows 10 , 64 bit Build 19041 (10.0.19041.3393) +Time: Sat Sep 30 14:36:51 2023 E. Australia Standard Time elapsed time: 55.727340 seconds (0d 0h 0m 55s) + +--------------- T H R E A D --------------- + +Current thread (0x000002a62db60e50): JavaThread "main" [_thread_in_native, id=25180, stack(0x000000f717b00000,0x000000f717c00000)] + +Stack: [0x000000f717b00000,0x000000f717c00000], sp=0x000000f717bfe9c0, free space=1018k +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) +C [gdx-box2d64.dll+0x3b9e2] + +Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) +J 2610 com.badlogic.gdx.physics.box2d.World.jniRayCast(JFFFF)V (0 bytes) @ 0x000002a63d0c75f9 [0x000002a63d0c75a0+0x0000000000000059] +J 3113 c2 com.csse3200.game.components.tasks.FireTowerCombatTask.getPriority()I (16 bytes) @ 0x000002a63d134054 [0x000002a63d133f20+0x0000000000000134] +J 3186 c2 com.csse3200.game.ai.tasks.AITaskComponent.update()V (42 bytes) @ 0x000002a63d150d6c [0x000002a63d150b80+0x00000000000001ec] +J 3169 c2 com.csse3200.game.entities.EntityService.update()V (39 bytes) @ 0x000002a63d14ec0c [0x000002a63d14e940+0x00000000000002cc] +J 3002 c1 com.csse3200.game.screens.MainGameScreen.render(F)V (122 bytes) @ 0x000002a6359b35fc [0x000002a6359b2f80+0x000000000000067c] +J 2844 c1 com.badlogic.gdx.backends.lwjgl3.Lwjgl3Window.update()Z (217 bytes) @ 0x000002a6359785fc [0x000002a635977880+0x0000000000000d7c] +j com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.loop()V+111 +j com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.(Lcom/badlogic/gdx/ApplicationListener;Lcom/badlogic/gdx/backends/lwjgl3/Lwjgl3ApplicationConfiguration;)V+269 +j com.csse3200.game.desktop.DesktopLauncher.main([Ljava/lang/String;)V+19 +v ~StubRoutines::call_stub + +siginfo: EXCEPTION_ACCESS_VIOLATION (0xc0000005), reading address 0x0000000000000000 + + +Register to memory mapping: + +RIP=0x00000000503eb9e2 gdx-box2d64.dll +RAX=0x000002a65d2e50c0 points into unknown readable memory: 0x000002a65d2e55e0 | e0 55 2e 5d a6 02 00 00 +RBX=0x000002a65d2013d0 points into unknown readable memory: 0x000002a65d202390 | 90 23 20 5d a6 02 00 00 +RCX=0x0 is NULL +RDX=0x000002a65d21d500 points into unknown readable memory: 0x000002a65d21eac0 | c0 ea 21 5d a6 02 00 00 +RSP=0x000000f717bfe9c0 is pointing into the stack for thread: 0x000002a62db60e50 +RBP=0x000002a65d25eb50 points into unknown readable memory: 0x000000000000013f | 3f 01 00 00 00 00 00 00 +RSI=0x000000f717bfea14 is pointing into the stack for thread: 0x000002a62db60e50 +RDI=0x000000f717bfea48 is pointing into the stack for thread: 0x000002a62db60e50 +R8 =0x0 is NULL +R9 =0x0000000000000002 is an unknown value +R10=0x000002a62db50c70 points into unknown readable memory: 0x0000004000000001 | 01 00 00 00 40 00 00 00 +R11=0x000000f717bfe900 is pointing into the stack for thread: 0x000002a62db60e50 +R12=0x000000f717bfef70 is pointing into the stack for thread: 0x000002a62db60e50 +R13=0x000000f717bfea40 is pointing into the stack for thread: 0x000002a62db60e50 +R14=0x000000f717bfef60 is pointing into the stack for thread: 0x000002a62db60e50 +R15=0x000000f717bfea20 is pointing into the stack for thread: 0x000002a62db60e50 + + +Registers: +RAX=0x000002a65d2e50c0, RBX=0x000002a65d2013d0, RCX=0x0000000000000000, RDX=0x000002a65d21d500 +RSP=0x000000f717bfe9c0, RBP=0x000002a65d25eb50, RSI=0x000000f717bfea14, RDI=0x000000f717bfea48 +R8 =0x0000000000000000, R9 =0x0000000000000002, R10=0x000002a62db50c70, R11=0x000000f717bfe900 +R12=0x000000f717bfef70, R13=0x000000f717bfea40, R14=0x000000f717bfef60, R15=0x000000f717bfea20 +RIP=0x00000000503eb9e2, EFLAGS=0x0000000000010287 + +Top of Stack: (sp=0x000000f717bfe9c0) +0x000000f717bfe9c0: 8000000000000000 0000000000003fff +0x000000f717bfe9d0: 3ff000003f800000 0000000000000000 +0x000000f717bfe9e0: 000000003e8fa4e3 0000000000000000 +0x000000f717bfe9f0: 800000003f800000 3f8000003f800000 +0x000000f717bfea00: 000000f717bfeb48 417b8e1c503e3ced +0x000000f717bfea10: bf80000040200000 3e8fa4e300000000 +0x000000f717bfea20: 4020000040900000 4020000042320000 +0x000000f717bfea30: 000000003f800000 00000000503bae81 +0x000000f717bfea40: 000000f717bfea48 000001990000009f +0x000000f717bfea50: 0000001300000017 0000018e0000006e +0x000000f717bfea60: 000000c20000015a 3d1ba98000000152 +0x000000f717bfea70: 3ba3d70a17bfebf0 0000000000000000 +0x000000f717bfea80: 0000000000000000 0000000040000000 +0x000000f717bfea90: 000000004008d56b 4170979700000000 +0x000000f717bfeaa0: 0000000000000000 41705ae94008d50c +0x000000f717bfeab0: 4000000000000000 800000003f800000 + +Instructions: (pc=0x00000000503eb9e2) +0x00000000503eb8e2: 0f 28 bc 24 a0 04 00 00 44 0f 28 84 24 b0 04 00 +0x00000000503eb8f2: 00 44 0f 28 8c 24 c0 04 00 00 44 0f 28 94 24 d0 +0x00000000503eb902: 04 00 00 44 0f 28 9c 24 e0 04 00 00 44 0f 28 a4 +0x00000000503eb912: 24 f0 04 00 00 44 0f 28 ac 24 00 05 00 00 44 0f +0x00000000503eb922: 28 b4 24 10 05 00 00 44 0f 28 bc 24 20 05 00 00 +0x00000000503eb932: 48 81 c4 38 05 00 00 5b 5e 5f 5d 41 5c 41 5d 41 +0x00000000503eb942: 5e 41 5f c3 66 2e 0f 1f 84 00 00 00 00 00 45 0f +0x00000000503eb952: 28 d3 f3 44 0f 11 64 24 30 e9 3a fd ff ff 48 8d +0x00000000503eb962: 15 71 5f 00 00 48 8d 0d d9 60 00 00 41 b8 d1 00 +0x00000000503eb972: 00 00 e8 17 82 ff ff e9 da fc ff ff 66 90 49 8b +0x00000000503eb982: 04 24 f3 0f 10 5c 24 3c 85 d2 f3 0f 11 5c 24 70 +0x00000000503eb992: 49 8b 36 48 89 44 24 60 49 8b 44 24 08 48 89 44 +0x00000000503eb9a2: 24 68 78 05 3b 56 14 7c 19 48 8d 15 26 5f 00 00 +0x00000000503eb9b2: 48 8d 0d 47 5f 00 00 41 b8 9e 00 00 00 e8 cc 81 +0x00000000503eb9c2: ff ff 48 8b 46 08 48 8d 74 24 54 48 8b 44 18 10 +0x00000000503eb9d2: 48 8b 58 10 44 8b 40 18 48 8b 4b 18 48 8b 53 10 +0x00000000503eb9e2: 48 8b 01 4c 8d 4a 0c 44 89 44 24 20 48 89 f2 4d +0x00000000503eb9f2: 89 f8 ff 50 28 84 c0 f3 0f 10 44 24 70 0f 85 37 +0x00000000503eba02: 01 00 00 0f 2e c6 7a 06 0f 84 a1 01 00 00 0f 2e +0x00000000503eba12: c6 76 4f 45 0f 28 cb 45 0f 28 c4 41 0f 28 df f3 +0x00000000503eba22: 44 0f 59 c8 45 0f 28 ef f3 44 0f 59 c0 41 0f 28 +0x00000000503eba32: fe f3 45 0f 58 cf f3 45 0f 58 c6 f3 41 0f 5f d9 +0x00000000503eba42: 45 0f 2e f0 f3 45 0f 5d e9 f3 41 0f 5d f8 44 0f +0x00000000503eba52: 28 cb 0f 86 4c 01 00 00 45 0f 28 c6 f3 0f 11 44 +0x00000000503eba62: 24 3c 8b 84 24 88 04 00 00 48 8b bc 24 80 00 00 +0x00000000503eba72: 00 85 c0 0f 8f e6 fc ff ff e9 48 fe ff ff 8d 14 +0x00000000503eba82: 00 8d 0c c5 00 00 00 00 89 94 24 8c 04 00 00 e8 +0x00000000503eba92: da 07 fd ff 4c 63 84 24 88 04 00 00 48 89 fa 48 +0x00000000503ebaa2: 89 c1 48 89 84 24 80 00 00 00 49 c1 e0 02 e8 03 +0x00000000503ebab2: d4 ff ff 49 8d 45 08 48 39 c7 74 08 48 89 f9 e8 +0x00000000503ebac2: ba 07 fd ff 48 8b bc 24 80 00 00 00 8b 84 24 88 +0x00000000503ebad2: 04 00 00 e9 c8 fd ff ff 8d 14 00 8d 0c c5 00 00 + + +Stack slot to memory mapping: +stack at sp + 0 slots: 0x8000000000000000 is an unknown value +stack at sp + 1 slots: 0x0000000000003fff is an unknown value +stack at sp + 2 slots: 0x3ff000003f800000 is an unknown value +stack at sp + 3 slots: 0x0 is NULL +stack at sp + 4 slots: 0x000000003e8fa4e3 is an unknown value +stack at sp + 5 slots: 0x0 is NULL +stack at sp + 6 slots: 0x800000003f800000 is an unknown value +stack at sp + 7 slots: 0x3f8000003f800000 is an unknown value + + +--------------- P R O C E S S --------------- + +Threads class SMR info: +_java_thread_list=0x000002a668dbb2f0, length=64, elements={ +0x000002a62db60e50, 0x000002a650f543c0, 0x000002a650f54d70, 0x000002a650f690d0, +0x000002a650f69a80, 0x000002a650f6a430, 0x000002a651904090, 0x000002a651904d70, +0x000002a651905760, 0x000002a651905c70, 0x000002a651a4d650, 0x000002a651a56520, +0x000002a656f2ac30, 0x000002a656ece000, 0x000002a651c82750, 0x000002a668da44c0, +0x000002a669515890, 0x000002a62db4a9a0, 0x000002a62db4b340, 0x000002a62db4d4f0, +0x000002a62db4cb50, 0x000002a62db4b810, 0x000002a62db4d9c0, 0x000002a651cad730, +0x000002a651cb2dd0, 0x000002a651cac8c0, 0x000002a651cb0c20, 0x000002a651cacd90, +0x000002a651cb32a0, 0x000002a651cadc00, 0x000002a651cb10f0, 0x000002a651cb1a90, +0x000002a651caea70, 0x000002a651caf410, 0x000002a651caef40, 0x000002a651cac3f0, +0x000002a651caf8e0, 0x000002a651cae0d0, 0x000002a651cafdb0, 0x000002a651cb0280, +0x000002a651cb15c0, 0x000002a651cb0750, 0x000002a651cb1f60, 0x000002a651cb2430, +0x000002a651cb2900, 0x000002a651cb3770, 0x000002a651cabf20, 0x000002a669397980, +0x000002a66939b810, 0x000002a66939c680, 0x000002a6693957d0, 0x000002a66939c1b0, +0x000002a66939a000, 0x000002a66939a4d0, 0x000002a669399660, 0x000002a669399b30, +0x000002a66939d020, 0x000002a66939bce0, 0x000002a669396fe0, 0x000002a66939cb50, +0x000002a669395ca0, 0x000002a66939a9a0, 0x000002a66939ae70, 0x000002a66939b340 +} + +Java Threads: ( => current thread ) +=>0x000002a62db60e50 JavaThread "main" [_thread_in_native, id=25180, stack(0x000000f717b00000,0x000000f717c00000)] + 0x000002a650f543c0 JavaThread "Reference Handler" daemon [_thread_blocked, id=23844, stack(0x000000f718200000,0x000000f718300000)] + 0x000002a650f54d70 JavaThread "Finalizer" daemon [_thread_blocked, id=9700, stack(0x000000f718300000,0x000000f718400000)] + 0x000002a650f690d0 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=10744, stack(0x000000f718400000,0x000000f718500000)] + 0x000002a650f69a80 JavaThread "Attach Listener" daemon [_thread_blocked, id=18936, stack(0x000000f718500000,0x000000f718600000)] + 0x000002a650f6a430 JavaThread "Service Thread" daemon [_thread_blocked, id=23664, stack(0x000000f718600000,0x000000f718700000)] + 0x000002a651904090 JavaThread "Monitor Deflation Thread" daemon [_thread_blocked, id=17732, stack(0x000000f718700000,0x000000f718800000)] + 0x000002a651904d70 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=25236, stack(0x000000f718800000,0x000000f718900000)] + 0x000002a651905760 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=8248, stack(0x000000f718900000,0x000000f718a00000)] + 0x000002a651905c70 JavaThread "Sweeper thread" daemon [_thread_blocked, id=18444, stack(0x000000f718a00000,0x000000f718b00000)] + 0x000002a651a4d650 JavaThread "Notification Thread" daemon [_thread_blocked, id=9844, stack(0x000000f718d00000,0x000000f718e00000)] + 0x000002a651a56520 JavaThread "Common-Cleaner" daemon [_thread_blocked, id=8864, stack(0x000000f718f00000,0x000000f719000000)] + 0x000002a656f2ac30 JavaThread "AssetManager" daemon [_thread_blocked, id=21720, stack(0x000000f71ad00000,0x000000f71ae00000)] + 0x000002a656ece000 JavaThread "LWJGL3 Timer" daemon [_thread_blocked, id=3768, stack(0x000000f71ae00000,0x000000f71af00000)] + 0x000002a651c82750 JavaThread "AssetManager" daemon [_thread_blocked, id=22508, stack(0x000000f71b300000,0x000000f71b400000)] + 0x000002a668da44c0 JavaThread "Timer-0" [_thread_blocked, id=12124, stack(0x000000f71b900000,0x000000f71ba00000)] + 0x000002a669515890 JavaThread "Timer" daemon [_thread_blocked, id=18448, stack(0x000000f71b400000,0x000000f71b500000)] + 0x000002a62db4a9a0 JavaThread "Timer-1" [_thread_blocked, id=23720, stack(0x000000f71b200000,0x000000f71b300000)] + 0x000002a62db4b340 JavaThread "Timer-2" [_thread_blocked, id=25464, stack(0x000000f71b500000,0x000000f71b600000)] + 0x000002a62db4d4f0 JavaThread "Timer-3" [_thread_blocked, id=23484, stack(0x000000f71b800000,0x000000f71b900000)] + 0x000002a62db4cb50 JavaThread "Timer-4" [_thread_blocked, id=18460, stack(0x000000f71ba00000,0x000000f71bb00000)] + 0x000002a62db4b810 JavaThread "Timer-5" [_thread_blocked, id=13776, stack(0x000000f71b100000,0x000000f71b200000)] + 0x000002a62db4d9c0 JavaThread "Timer-6" [_thread_blocked, id=26300, stack(0x000000f71b000000,0x000000f71b100000)] + 0x000002a651cad730 JavaThread "Timer-7" [_thread_blocked, id=16244, stack(0x000000f71bb00000,0x000000f71bc00000)] + 0x000002a651cb2dd0 JavaThread "Timer-9" [_thread_blocked, id=27108, stack(0x000000f71bd00000,0x000000f71be00000)] + 0x000002a651cac8c0 JavaThread "Timer-10" [_thread_blocked, id=17604, stack(0x000000f71be00000,0x000000f71bf00000)] + 0x000002a651cb0c20 JavaThread "Timer-11" [_thread_blocked, id=8652, stack(0x000000f71bf00000,0x000000f71c000000)] + 0x000002a651cacd90 JavaThread "Timer-12" [_thread_blocked, id=9712, stack(0x000000f71c000000,0x000000f71c100000)] + 0x000002a651cb32a0 JavaThread "Timer-13" [_thread_blocked, id=29568, stack(0x000000f71c100000,0x000000f71c200000)] + 0x000002a651cadc00 JavaThread "Timer-14" [_thread_blocked, id=20392, stack(0x000000f71c200000,0x000000f71c300000)] + 0x000002a651cb10f0 JavaThread "Timer-15" [_thread_blocked, id=22832, stack(0x000000f71c300000,0x000000f71c400000)] + 0x000002a651cb1a90 JavaThread "Timer-16" [_thread_blocked, id=5176, stack(0x000000f71c400000,0x000000f71c500000)] + 0x000002a651caea70 JavaThread "Timer-17" [_thread_blocked, id=26836, stack(0x000000f71c500000,0x000000f71c600000)] + 0x000002a651caf410 JavaThread "Timer-18" [_thread_blocked, id=9632, stack(0x000000f71c600000,0x000000f71c700000)] + 0x000002a651caef40 JavaThread "Timer-19" [_thread_blocked, id=29016, stack(0x000000f71c700000,0x000000f71c800000)] + 0x000002a651cac3f0 JavaThread "Timer-20" [_thread_blocked, id=28144, stack(0x000000f71ca00000,0x000000f71cb00000)] + 0x000002a651caf8e0 JavaThread "Timer-21" [_thread_blocked, id=10768, stack(0x000000f71bc00000,0x000000f71bd00000)] + 0x000002a651cae0d0 JavaThread "Timer-22" [_thread_blocked, id=3816, stack(0x000000f71c800000,0x000000f71c900000)] + 0x000002a651cafdb0 JavaThread "Timer-24" [_thread_blocked, id=8760, stack(0x000000f71cb00000,0x000000f71cc00000)] + 0x000002a651cb0280 JavaThread "Timer-25" [_thread_blocked, id=12624, stack(0x000000f71cc00000,0x000000f71cd00000)] + 0x000002a651cb15c0 JavaThread "Timer-26" [_thread_blocked, id=30280, stack(0x000000f71cd00000,0x000000f71ce00000)] + 0x000002a651cb0750 JavaThread "Timer-27" [_thread_blocked, id=19416, stack(0x000000f71ce00000,0x000000f71cf00000)] + 0x000002a651cb1f60 JavaThread "Timer-28" [_thread_blocked, id=25560, stack(0x000000f71cf00000,0x000000f71d000000)] + 0x000002a651cb2430 JavaThread "Timer-29" [_thread_blocked, id=13380, stack(0x000000f71d000000,0x000000f71d100000)] + 0x000002a651cb2900 JavaThread "Timer-30" [_thread_blocked, id=16732, stack(0x000000f71d100000,0x000000f71d200000)] + 0x000002a651cb3770 JavaThread "Timer-31" [_thread_blocked, id=18624, stack(0x000000f71d200000,0x000000f71d300000)] + 0x000002a651cabf20 JavaThread "Timer-32" [_thread_blocked, id=19392, stack(0x000000f71d300000,0x000000f71d400000)] + 0x000002a669397980 JavaThread "Timer-33" [_thread_blocked, id=9052, stack(0x000000f71d400000,0x000000f71d500000)] + 0x000002a66939b810 JavaThread "Timer-34" [_thread_blocked, id=19368, stack(0x000000f71d500000,0x000000f71d600000)] + 0x000002a66939c680 JavaThread "Timer-35" [_thread_blocked, id=28440, stack(0x000000f71d600000,0x000000f71d700000)] + 0x000002a6693957d0 JavaThread "Timer-36" [_thread_blocked, id=22140, stack(0x000000f71d700000,0x000000f71d800000)] + 0x000002a66939c1b0 JavaThread "Timer-37" [_thread_blocked, id=29836, stack(0x000000f71c900000,0x000000f71ca00000)] + 0x000002a66939a000 JavaThread "Timer-38" [_thread_blocked, id=19492, stack(0x000000f71d800000,0x000000f71d900000)] + 0x000002a66939a4d0 JavaThread "Timer-39" [_thread_blocked, id=29828, stack(0x000000f71d900000,0x000000f71da00000)] + 0x000002a669399660 JavaThread "Timer-40" [_thread_blocked, id=21408, stack(0x000000f71db00000,0x000000f71dc00000)] + 0x000002a669399b30 JavaThread "Timer-41" [_thread_blocked, id=13964, stack(0x000000f71da00000,0x000000f71db00000)] + 0x000002a66939d020 JavaThread "AssetManager" daemon [_thread_blocked, id=21052, stack(0x000000f71dc00000,0x000000f71dd00000)] + 0x000002a66939bce0 JavaThread "Timer-42" [_thread_blocked, id=14380, stack(0x000000f71df00000,0x000000f71e000000)] + 0x000002a669396fe0 JavaThread "Timer-43" [_thread_blocked, id=16340, stack(0x000000f71dd00000,0x000000f71de00000)] + 0x000002a66939cb50 JavaThread "Timer-44" [_thread_blocked, id=22880, stack(0x000000f71de00000,0x000000f71df00000)] + 0x000002a669395ca0 JavaThread "Timer-45" [_thread_blocked, id=25700, stack(0x000000f71e000000,0x000000f71e100000)] + 0x000002a66939a9a0 JavaThread "Timer-46" [_thread_blocked, id=19840, stack(0x000000f71e100000,0x000000f71e200000)] + 0x000002a66939ae70 JavaThread "Timer-47" [_thread_blocked, id=10600, stack(0x000000f71e200000,0x000000f71e300000)] + 0x000002a66939b340 JavaThread "Timer-48" [_thread_blocked, id=13044, stack(0x000000f71e300000,0x000000f71e400000)] + +Other Threads: + 0x000002a650f4fa20 VMThread "VM Thread" [stack: 0x000000f718100000,0x000000f718200000] [id=26604] + 0x000002a62dbf19f0 WatcherThread [stack: 0x000000f718e00000,0x000000f718f00000] [id=28748] + 0x000002a62dbd0890 GCTaskThread "GC Thread#0" [stack: 0x000000f717c00000,0x000000f717d00000] [id=8684] + 0x000002a656c63b80 GCTaskThread "GC Thread#1" [stack: 0x000000f718b00000,0x000000f718c00000] [id=14836] + 0x000002a656c60dd0 GCTaskThread "GC Thread#2" [stack: 0x000000f718c00000,0x000000f718d00000] [id=20256] + 0x000002a656c61df0 GCTaskThread "GC Thread#3" [stack: 0x000000f71a700000,0x000000f71a800000] [id=5212] + 0x000002a656c605c0 GCTaskThread "GC Thread#4" [stack: 0x000000f71a800000,0x000000f71a900000] [id=16128] + 0x000002a656c62350 GCTaskThread "GC Thread#5" [stack: 0x000000f71a900000,0x000000f71aa00000] [id=1864] + 0x000002a656c628b0 GCTaskThread "GC Thread#6" [stack: 0x000000f71aa00000,0x000000f71ab00000] [id=6716] + 0x000002a656c62b60 GCTaskThread "GC Thread#7" [stack: 0x000000f71ab00000,0x000000f71ac00000] [id=30196] + 0x000002a656c63370 GCTaskThread "GC Thread#8" [stack: 0x000000f71ac00000,0x000000f71ad00000] [id=5896] + 0x000002a657094040 GCTaskThread "GC Thread#9" [stack: 0x000000f71b600000,0x000000f71b700000] [id=8636] + 0x000002a657094850 GCTaskThread "GC Thread#10" [stack: 0x000000f71b700000,0x000000f71b800000] [id=14856] + 0x000002a62dbe1d70 ConcurrentGCThread "G1 Main Marker" [stack: 0x000000f717d00000,0x000000f717e00000] [id=21100] + 0x000002a62dbe3a90 ConcurrentGCThread "G1 Conc#0" [stack: 0x000000f717e00000,0x000000f717f00000] [id=18496] + 0x000002a62dc1e760 ConcurrentGCThread "G1 Refine#0" [stack: 0x000000f717f00000,0x000000f718000000] [id=22072] + 0x000002a650e05950 ConcurrentGCThread "G1 Service" [stack: 0x000000f718000000,0x000000f718100000] [id=16844] + +Threads with active compile tasks: + +VM state: not at safepoint (normal execution) + +VM Mutex/Monitor currently owned by a thread: None + +Heap address: 0x0000000709800000, size: 3944 MB, Compressed Oops mode: Zero based, Oop shift amount: 3 + +CDS archive(s) mapped at: [0x0000000800000000-0x0000000800bd0000-0x0000000800bd0000), size 12386304, SharedBaseAddress: 0x0000000800000000, ArchiveRelocationMode: 0. +Compressed class space mapped at: 0x0000000800c00000-0x0000000840c00000, reserved size: 1073741824 +Narrow klass base: 0x0000000800000000, Narrow klass shift: 0, Narrow klass range: 0x100000000 + +GC Precious Log: + CPUs: 16 total, 16 available + Memory: 15769M + Large Page Support: Disabled + NUMA Support: Disabled + Compressed Oops: Enabled (Zero based) + Heap Region Size: 2M + Heap Min Capacity: 8M + Heap Initial Capacity: 248M + Heap Max Capacity: 3944M + Pre-touch: Disabled + Parallel Workers: 13 + Concurrent Workers: 3 + Concurrent Refinement Workers: 13 + Periodic GC: Disabled + +Heap: + garbage-first heap total 253952K, used 163157K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 63 young (129024K), 2 survivors (4096K) + Metaspace used 12157K, committed 12352K, reserved 1064960K + class space used 1074K, committed 1152K, reserved 1048576K + +Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, OA=open archive, CA=closed archive, TAMS=top-at-mark-start (previous, next) +| 0|0x0000000709800000, 0x0000000709a00000, 0x0000000709a00000|100%|HS| |TAMS 0x0000000709800000, 0x0000000709800000| Complete +| 1|0x0000000709a00000, 0x0000000709c00000, 0x0000000709c00000|100%|HS| |TAMS 0x0000000709a00000, 0x0000000709a00000| Complete +| 2|0x0000000709c00000, 0x0000000709e00000, 0x0000000709e00000|100%| O| |TAMS 0x0000000709c00000, 0x0000000709c00000| Untracked +| 3|0x0000000709e00000, 0x0000000709efb400, 0x000000070a000000| 49%| O| |TAMS 0x0000000709e00000, 0x0000000709e00000| Untracked +| 4|0x000000070a000000, 0x000000070a200000, 0x000000070a200000|100%|HS| |TAMS 0x000000070a000000, 0x000000070a000000| Complete +| 5|0x000000070a200000, 0x000000070a400000, 0x000000070a400000|100%|HS| |TAMS 0x000000070a200000, 0x000000070a200000| Complete +| 6|0x000000070a400000, 0x000000070a600000, 0x000000070a600000|100%|HS| |TAMS 0x000000070a400000, 0x000000070a400000| Complete +| 7|0x000000070a600000, 0x000000070a800000, 0x000000070a800000|100%|HC| |TAMS 0x000000070a600000, 0x000000070a600000| Complete +| 8|0x000000070a800000, 0x000000070aa00000, 0x000000070aa00000|100%|HS| |TAMS 0x000000070a800000, 0x000000070a800000| Complete +| 9|0x000000070aa00000, 0x000000070ac00000, 0x000000070ac00000|100%|HS| |TAMS 0x000000070aa00000, 0x000000070aa00000| Complete +| 10|0x000000070ac00000, 0x000000070ae00000, 0x000000070ae00000|100%|HS| |TAMS 0x000000070ac00000, 0x000000070ac00000| Complete +| 11|0x000000070ae00000, 0x000000070b000000, 0x000000070b000000|100%|HS| |TAMS 0x000000070ae00000, 0x000000070ae00000| Complete +| 12|0x000000070b000000, 0x000000070b200000, 0x000000070b200000|100%|HS| |TAMS 0x000000070b000000, 0x000000070b000000| Complete +| 13|0x000000070b200000, 0x000000070b400000, 0x000000070b400000|100%|HS| |TAMS 0x000000070b200000, 0x000000070b200000| Complete +| 14|0x000000070b400000, 0x000000070b600000, 0x000000070b600000|100%|HS| |TAMS 0x000000070b400000, 0x000000070b400000| Complete +| 15|0x000000070b600000, 0x000000070b800000, 0x000000070b800000|100%|HS| |TAMS 0x000000070b600000, 0x000000070b600000| Complete +| 16|0x000000070b800000, 0x000000070ba00000, 0x000000070ba00000|100%|HC| |TAMS 0x000000070b800000, 0x000000070b800000| Complete +| 17|0x000000070ba00000, 0x000000070bc00000, 0x000000070bc00000|100%|HS| |TAMS 0x000000070ba00000, 0x000000070ba00000| Complete +| 18|0x000000070bc00000, 0x000000070be00000, 0x000000070be00000|100%|HS| |TAMS 0x000000070bc00000, 0x000000070bc00000| Complete +| 19|0x000000070be00000, 0x000000070c000000, 0x000000070c000000|100%|HS| |TAMS 0x000000070be00000, 0x000000070be00000| Complete +| 20|0x000000070c000000, 0x000000070c000000, 0x000000070c200000| 0%| F| |TAMS 0x000000070c000000, 0x000000070c000000| Untracked +| 21|0x000000070c200000, 0x000000070c200000, 0x000000070c400000| 0%| F| |TAMS 0x000000070c200000, 0x000000070c200000| Untracked +| 22|0x000000070c400000, 0x000000070c400000, 0x000000070c600000| 0%| F| |TAMS 0x000000070c400000, 0x000000070c400000| Untracked +| 23|0x000000070c600000, 0x000000070c600000, 0x000000070c800000| 0%| F| |TAMS 0x000000070c600000, 0x000000070c600000| Untracked +| 24|0x000000070c800000, 0x000000070c800000, 0x000000070ca00000| 0%| F| |TAMS 0x000000070c800000, 0x000000070c800000| Untracked +| 25|0x000000070ca00000, 0x000000070ca00000, 0x000000070cc00000| 0%| F| |TAMS 0x000000070ca00000, 0x000000070ca00000| Untracked +| 26|0x000000070cc00000, 0x000000070cc00000, 0x000000070ce00000| 0%| F| |TAMS 0x000000070cc00000, 0x000000070cc00000| Untracked +| 27|0x000000070ce00000, 0x000000070ce00000, 0x000000070d000000| 0%| F| |TAMS 0x000000070ce00000, 0x000000070ce00000| Untracked +| 28|0x000000070d000000, 0x000000070d000000, 0x000000070d200000| 0%| F| |TAMS 0x000000070d000000, 0x000000070d000000| Untracked +| 29|0x000000070d200000, 0x000000070d200000, 0x000000070d400000| 0%| F| |TAMS 0x000000070d200000, 0x000000070d200000| Untracked +| 30|0x000000070d400000, 0x000000070d400000, 0x000000070d600000| 0%| F| |TAMS 0x000000070d400000, 0x000000070d400000| Untracked +| 31|0x000000070d600000, 0x000000070d600000, 0x000000070d800000| 0%| F| |TAMS 0x000000070d600000, 0x000000070d600000| Untracked +| 32|0x000000070d800000, 0x000000070d800000, 0x000000070da00000| 0%| F| |TAMS 0x000000070d800000, 0x000000070d800000| Untracked +| 33|0x000000070da00000, 0x000000070da00000, 0x000000070dc00000| 0%| F| |TAMS 0x000000070da00000, 0x000000070da00000| Untracked +| 34|0x000000070dc00000, 0x000000070dc00000, 0x000000070de00000| 0%| F| |TAMS 0x000000070dc00000, 0x000000070dc00000| Untracked +| 35|0x000000070de00000, 0x000000070de00000, 0x000000070e000000| 0%| F| |TAMS 0x000000070de00000, 0x000000070de00000| Untracked +| 36|0x000000070e000000, 0x000000070e000000, 0x000000070e200000| 0%| F| |TAMS 0x000000070e000000, 0x000000070e000000| Untracked +| 37|0x000000070e200000, 0x000000070e200000, 0x000000070e400000| 0%| F| |TAMS 0x000000070e200000, 0x000000070e200000| Untracked +| 38|0x000000070e400000, 0x000000070e400000, 0x000000070e600000| 0%| F| |TAMS 0x000000070e400000, 0x000000070e400000| Untracked +| 39|0x000000070e600000, 0x000000070e600000, 0x000000070e800000| 0%| F| |TAMS 0x000000070e600000, 0x000000070e600000| Untracked +| 40|0x000000070e800000, 0x000000070e800000, 0x000000070ea00000| 0%| F| |TAMS 0x000000070e800000, 0x000000070e800000| Untracked +| 41|0x000000070ea00000, 0x000000070ea00000, 0x000000070ec00000| 0%| F| |TAMS 0x000000070ea00000, 0x000000070ea00000| Untracked +| 42|0x000000070ec00000, 0x000000070ec00000, 0x000000070ee00000| 0%| F| |TAMS 0x000000070ec00000, 0x000000070ec00000| Untracked +| 43|0x000000070ee00000, 0x000000070ee00000, 0x000000070f000000| 0%| F| |TAMS 0x000000070ee00000, 0x000000070ee00000| Untracked +| 44|0x000000070f000000, 0x000000070f000000, 0x000000070f200000| 0%| F| |TAMS 0x000000070f000000, 0x000000070f000000| Untracked +| 45|0x000000070f200000, 0x000000070f200000, 0x000000070f400000| 0%| F| |TAMS 0x000000070f200000, 0x000000070f200000| Untracked +| 46|0x000000070f400000, 0x000000070f400000, 0x000000070f600000| 0%| F| |TAMS 0x000000070f400000, 0x000000070f400000| Untracked +| 47|0x000000070f600000, 0x000000070f600000, 0x000000070f800000| 0%| F| |TAMS 0x000000070f600000, 0x000000070f600000| Untracked +| 48|0x000000070f800000, 0x000000070f800000, 0x000000070fa00000| 0%| F| |TAMS 0x000000070f800000, 0x000000070f800000| Untracked +| 49|0x000000070fa00000, 0x000000070fa00000, 0x000000070fc00000| 0%| F| |TAMS 0x000000070fa00000, 0x000000070fa00000| Untracked +| 50|0x000000070fc00000, 0x000000070fc00000, 0x000000070fe00000| 0%| F| |TAMS 0x000000070fc00000, 0x000000070fc00000| Untracked +| 51|0x000000070fe00000, 0x000000070fe00000, 0x0000000710000000| 0%| F| |TAMS 0x000000070fe00000, 0x000000070fe00000| Untracked +| 52|0x0000000710000000, 0x0000000710000000, 0x0000000710200000| 0%| F| |TAMS 0x0000000710000000, 0x0000000710000000| Untracked +| 53|0x0000000710200000, 0x0000000710200000, 0x0000000710400000| 0%| F| |TAMS 0x0000000710200000, 0x0000000710200000| Untracked +| 54|0x0000000710400000, 0x0000000710400000, 0x0000000710600000| 0%| F| |TAMS 0x0000000710400000, 0x0000000710400000| Untracked +| 55|0x0000000710600000, 0x0000000710600000, 0x0000000710800000| 0%| F| |TAMS 0x0000000710600000, 0x0000000710600000| Untracked +| 56|0x0000000710800000, 0x0000000710800000, 0x0000000710a00000| 0%| F| |TAMS 0x0000000710800000, 0x0000000710800000| Untracked +| 57|0x0000000710a00000, 0x0000000710a00000, 0x0000000710c00000| 0%| F| |TAMS 0x0000000710a00000, 0x0000000710a00000| Untracked +| 58|0x0000000710c00000, 0x0000000710c00000, 0x0000000710e00000| 0%| F| |TAMS 0x0000000710c00000, 0x0000000710c00000| Untracked +| 59|0x0000000710e00000, 0x0000000710e00000, 0x0000000711000000| 0%| F| |TAMS 0x0000000710e00000, 0x0000000710e00000| Untracked +| 60|0x0000000711000000, 0x0000000711000000, 0x0000000711200000| 0%| F| |TAMS 0x0000000711000000, 0x0000000711000000| Untracked +| 61|0x0000000711200000, 0x0000000711400000, 0x0000000711400000|100%| E| |TAMS 0x0000000711200000, 0x0000000711200000| Complete +| 62|0x0000000711400000, 0x0000000711600000, 0x0000000711600000|100%| E|CS|TAMS 0x0000000711400000, 0x0000000711400000| Complete +| 63|0x0000000711600000, 0x0000000711800000, 0x0000000711800000|100%| E|CS|TAMS 0x0000000711600000, 0x0000000711600000| Complete +| 64|0x0000000711800000, 0x0000000711a00000, 0x0000000711a00000|100%| E|CS|TAMS 0x0000000711800000, 0x0000000711800000| Complete +| 65|0x0000000711a00000, 0x0000000711c00000, 0x0000000711c00000|100%| E|CS|TAMS 0x0000000711a00000, 0x0000000711a00000| Complete +| 66|0x0000000711c00000, 0x0000000711e00000, 0x0000000711e00000|100%| E|CS|TAMS 0x0000000711c00000, 0x0000000711c00000| Complete +| 67|0x0000000711e00000, 0x0000000712000000, 0x0000000712000000|100%| E|CS|TAMS 0x0000000711e00000, 0x0000000711e00000| Complete +| 68|0x0000000712000000, 0x0000000712200000, 0x0000000712200000|100%| E|CS|TAMS 0x0000000712000000, 0x0000000712000000| Complete +| 69|0x0000000712200000, 0x0000000712400000, 0x0000000712400000|100%| E|CS|TAMS 0x0000000712200000, 0x0000000712200000| Complete +| 70|0x0000000712400000, 0x0000000712600000, 0x0000000712600000|100%| E| |TAMS 0x0000000712400000, 0x0000000712400000| Complete +| 71|0x0000000712600000, 0x0000000712800000, 0x0000000712800000|100%| E|CS|TAMS 0x0000000712600000, 0x0000000712600000| Complete +| 72|0x0000000712800000, 0x0000000712a00000, 0x0000000712a00000|100%| E|CS|TAMS 0x0000000712800000, 0x0000000712800000| Complete +| 73|0x0000000712a00000, 0x0000000712c00000, 0x0000000712c00000|100%| E|CS|TAMS 0x0000000712a00000, 0x0000000712a00000| Complete +| 74|0x0000000712c00000, 0x0000000712e00000, 0x0000000712e00000|100%| E|CS|TAMS 0x0000000712c00000, 0x0000000712c00000| Complete +| 75|0x0000000712e00000, 0x0000000713000000, 0x0000000713000000|100%| E|CS|TAMS 0x0000000712e00000, 0x0000000712e00000| Complete +| 76|0x0000000713000000, 0x0000000713200000, 0x0000000713200000|100%| E|CS|TAMS 0x0000000713000000, 0x0000000713000000| Complete +| 77|0x0000000713200000, 0x0000000713400000, 0x0000000713400000|100%| E|CS|TAMS 0x0000000713200000, 0x0000000713200000| Complete +| 78|0x0000000713400000, 0x0000000713600000, 0x0000000713600000|100%| E|CS|TAMS 0x0000000713400000, 0x0000000713400000| Complete +| 79|0x0000000713600000, 0x0000000713800000, 0x0000000713800000|100%| E|CS|TAMS 0x0000000713600000, 0x0000000713600000| Complete +| 80|0x0000000713800000, 0x0000000713a00000, 0x0000000713a00000|100%| E|CS|TAMS 0x0000000713800000, 0x0000000713800000| Complete +| 81|0x0000000713a00000, 0x0000000713c00000, 0x0000000713c00000|100%| E|CS|TAMS 0x0000000713a00000, 0x0000000713a00000| Complete +| 82|0x0000000713c00000, 0x0000000713e00000, 0x0000000713e00000|100%| E|CS|TAMS 0x0000000713c00000, 0x0000000713c00000| Complete +| 83|0x0000000713e00000, 0x0000000714000000, 0x0000000714000000|100%| E|CS|TAMS 0x0000000713e00000, 0x0000000713e00000| Complete +| 84|0x0000000714000000, 0x0000000714200000, 0x0000000714200000|100%| E|CS|TAMS 0x0000000714000000, 0x0000000714000000| Complete +| 85|0x0000000714200000, 0x0000000714400000, 0x0000000714400000|100%| E|CS|TAMS 0x0000000714200000, 0x0000000714200000| Complete +| 86|0x0000000714400000, 0x0000000714600000, 0x0000000714600000|100%| E|CS|TAMS 0x0000000714400000, 0x0000000714400000| Complete +| 87|0x0000000714600000, 0x0000000714800000, 0x0000000714800000|100%| E|CS|TAMS 0x0000000714600000, 0x0000000714600000| Complete +| 88|0x0000000714800000, 0x0000000714a00000, 0x0000000714a00000|100%| E|CS|TAMS 0x0000000714800000, 0x0000000714800000| Complete +| 89|0x0000000714a00000, 0x0000000714c00000, 0x0000000714c00000|100%| E|CS|TAMS 0x0000000714a00000, 0x0000000714a00000| Complete +| 90|0x0000000714c00000, 0x0000000714e00000, 0x0000000714e00000|100%| E|CS|TAMS 0x0000000714c00000, 0x0000000714c00000| Complete +| 91|0x0000000714e00000, 0x0000000715000000, 0x0000000715000000|100%| E|CS|TAMS 0x0000000714e00000, 0x0000000714e00000| Complete +| 92|0x0000000715000000, 0x0000000715200000, 0x0000000715200000|100%| E|CS|TAMS 0x0000000715000000, 0x0000000715000000| Complete +| 93|0x0000000715200000, 0x0000000715400000, 0x0000000715400000|100%| E|CS|TAMS 0x0000000715200000, 0x0000000715200000| Complete +| 94|0x0000000715400000, 0x0000000715600000, 0x0000000715600000|100%| E|CS|TAMS 0x0000000715400000, 0x0000000715400000| Complete +| 95|0x0000000715600000, 0x0000000715800000, 0x0000000715800000|100%| E|CS|TAMS 0x0000000715600000, 0x0000000715600000| Complete +| 96|0x0000000715800000, 0x0000000715a00000, 0x0000000715a00000|100%| E|CS|TAMS 0x0000000715800000, 0x0000000715800000| Complete +| 97|0x0000000715a00000, 0x0000000715c00000, 0x0000000715c00000|100%| E|CS|TAMS 0x0000000715a00000, 0x0000000715a00000| Complete +| 98|0x0000000715c00000, 0x0000000715e00000, 0x0000000715e00000|100%| E|CS|TAMS 0x0000000715c00000, 0x0000000715c00000| Complete +| 99|0x0000000715e00000, 0x0000000716000000, 0x0000000716000000|100%| E|CS|TAMS 0x0000000715e00000, 0x0000000715e00000| Complete +| 100|0x0000000716000000, 0x0000000716200000, 0x0000000716200000|100%| E|CS|TAMS 0x0000000716000000, 0x0000000716000000| Complete +| 101|0x0000000716200000, 0x0000000716400000, 0x0000000716400000|100%| E|CS|TAMS 0x0000000716200000, 0x0000000716200000| Complete +| 102|0x0000000716400000, 0x0000000716600000, 0x0000000716600000|100%| E|CS|TAMS 0x0000000716400000, 0x0000000716400000| Complete +| 103|0x0000000716600000, 0x0000000716800000, 0x0000000716800000|100%| E|CS|TAMS 0x0000000716600000, 0x0000000716600000| Complete +| 104|0x0000000716800000, 0x000000071685a048, 0x0000000716a00000| 17%| S|CS|TAMS 0x0000000716800000, 0x0000000716800000| Complete +| 105|0x0000000716a00000, 0x0000000716c00000, 0x0000000716c00000|100%| S|CS|TAMS 0x0000000716a00000, 0x0000000716a00000| Complete +| 106|0x0000000716c00000, 0x0000000716e00000, 0x0000000716e00000|100%| E|CS|TAMS 0x0000000716c00000, 0x0000000716c00000| Complete +| 107|0x0000000716e00000, 0x0000000717000000, 0x0000000717000000|100%| E|CS|TAMS 0x0000000716e00000, 0x0000000716e00000| Complete +| 108|0x0000000717000000, 0x0000000717200000, 0x0000000717200000|100%| E|CS|TAMS 0x0000000717000000, 0x0000000717000000| Complete +| 109|0x0000000717200000, 0x0000000717400000, 0x0000000717400000|100%| E|CS|TAMS 0x0000000717200000, 0x0000000717200000| Complete +| 110|0x0000000717400000, 0x0000000717600000, 0x0000000717600000|100%| E|CS|TAMS 0x0000000717400000, 0x0000000717400000| Complete +| 111|0x0000000717600000, 0x0000000717800000, 0x0000000717800000|100%| E|CS|TAMS 0x0000000717600000, 0x0000000717600000| Complete +| 112|0x0000000717800000, 0x0000000717a00000, 0x0000000717a00000|100%| E|CS|TAMS 0x0000000717800000, 0x0000000717800000| Complete +| 113|0x0000000717a00000, 0x0000000717c00000, 0x0000000717c00000|100%| E|CS|TAMS 0x0000000717a00000, 0x0000000717a00000| Complete +| 114|0x0000000717c00000, 0x0000000717e00000, 0x0000000717e00000|100%| E|CS|TAMS 0x0000000717c00000, 0x0000000717c00000| Complete +| 115|0x0000000717e00000, 0x0000000718000000, 0x0000000718000000|100%| E|CS|TAMS 0x0000000717e00000, 0x0000000717e00000| Complete +| 116|0x0000000718000000, 0x0000000718200000, 0x0000000718200000|100%| E|CS|TAMS 0x0000000718000000, 0x0000000718000000| Complete +| 117|0x0000000718200000, 0x0000000718400000, 0x0000000718400000|100%| E|CS|TAMS 0x0000000718200000, 0x0000000718200000| Complete +| 118|0x0000000718400000, 0x0000000718600000, 0x0000000718600000|100%| E|CS|TAMS 0x0000000718400000, 0x0000000718400000| Complete +| 119|0x0000000718600000, 0x0000000718800000, 0x0000000718800000|100%| E|CS|TAMS 0x0000000718600000, 0x0000000718600000| Complete +| 120|0x0000000718800000, 0x0000000718a00000, 0x0000000718a00000|100%| E|CS|TAMS 0x0000000718800000, 0x0000000718800000| Complete +| 121|0x0000000718a00000, 0x0000000718c00000, 0x0000000718c00000|100%| E|CS|TAMS 0x0000000718a00000, 0x0000000718a00000| Complete +| 122|0x0000000718c00000, 0x0000000718e00000, 0x0000000718e00000|100%| E|CS|TAMS 0x0000000718c00000, 0x0000000718c00000| Complete +| 123|0x0000000718e00000, 0x0000000719000000, 0x0000000719000000|100%| E|CS|TAMS 0x0000000718e00000, 0x0000000718e00000| Complete + +Card table byte_map: [0x000002a645410000,0x000002a645bd0000] _byte_map_base: 0x000002a641bc4000 + +Marking Bits (Prev, Next): (CMBitMap*) 0x000002a62dbd0da0, (CMBitMap*) 0x000002a62dbd0de0 + Prev Bits: [0x000002a646390000, 0x000002a64a130000) + Next Bits: [0x000002a64a130000, 0x000002a64ded0000) + +Polling page: 0x000002a62b990000 + +Metaspace: + +Usage: + Non-class: 10.82 MB used. + Class: 1.05 MB used. + Both: 11.87 MB used. + +Virtual space: + Non-class space: 16.00 MB reserved, 10.94 MB ( 68%) committed, 2 nodes. + Class space: 1.00 GB reserved, 1.12 MB ( <1%) committed, 1 nodes. + Both: 1.02 GB reserved, 12.06 MB ( 1%) committed. + +Chunk freelists: + Non-Class: 752.00 KB + Class: 2.90 MB + Both: 3.64 MB + +MaxMetaspaceSize: unlimited +CompressedClassSpaceSize: 1.00 GB +Initial GC threshold: 21.00 MB +Current GC threshold: 21.00 MB +CDS: on +MetaspaceReclaimPolicy: balanced + - commit_granule_bytes: 65536. + - commit_granule_words: 8192. + - virtual_space_node_default_size: 1048576. + - enlarge_chunks_in_place: 1. + - new_chunks_are_fully_committed: 0. + - uncommit_free_chunks: 1. + - use_allocation_guard: 0. + - handle_deallocations: 1. + + +Internal statistics: + +num_allocs_failed_limit: 0. +num_arena_births: 166. +num_arena_deaths: 0. +num_vsnodes_births: 3. +num_vsnodes_deaths: 0. +num_space_committed: 191. +num_space_uncommitted: 0. +num_chunks_returned_to_freelist: 0. +num_chunks_taken_from_freelist: 538. +num_chunk_merges: 0. +num_chunk_splits: 357. +num_chunks_enlarged: 265. +num_purges: 0. +num_inconsistent_stats: 0. + +CodeHeap 'non-profiled nmethods': size=119168Kb used=2759Kb max_used=2759Kb free=116408Kb + bounds [0x000002a63cf70000, 0x000002a63d230000, 0x000002a6443d0000] +CodeHeap 'profiled nmethods': size=119104Kb used=7740Kb max_used=7740Kb free=111363Kb + bounds [0x000002a6353d0000, 0x000002a635b60000, 0x000002a63c820000] +CodeHeap 'non-nmethods': size=7488Kb used=1657Kb max_used=3415Kb free=5830Kb + bounds [0x000002a63c820000, 0x000002a63cbe0000, 0x000002a63cf70000] + total_blobs=4919 nmethods=3818 adapters=1013 + compilation: enabled + stopped_count=0, restarted_count=0 + full_count=0 + +Compilation events (20 events): +Event: 52.665 Thread 0x000002a651904d70 3810 4 com.badlogic.gdx.utils.Array::addAll (14 bytes) +Event: 52.668 Thread 0x000002a651904d70 nmethod 3810 0x000002a63d21e690 code [0x000002a63d21e840, 0x000002a63d21eac8] +Event: 53.162 Thread 0x000002a651905760 3811 3 com.badlogic.gdx.backends.lwjgl3.audio.OpenALLwjgl3Audio::stopSourcesWithBuffer (89 bytes) +Event: 53.163 Thread 0x000002a651905760 nmethod 3811 0x000002a635b5cb90 code [0x000002a635b5cda0, 0x000002a635b5d2c8] +Event: 53.677 Thread 0x000002a651905760 3812 3 java.security.SecureRandom:: (35 bytes) +Event: 53.678 Thread 0x000002a651905760 nmethod 3812 0x000002a635b5d510 code [0x000002a635b5d6e0, 0x000002a635b5d968] +Event: 53.678 Thread 0x000002a651905760 3813 3 java.util.stream.Sink$ChainedReference::cancellationRequested (10 bytes) +Event: 53.678 Thread 0x000002a651905760 nmethod 3813 0x000002a635b5da90 code [0x000002a635b5dc40, 0x000002a635b5de28] +Event: 53.678 Thread 0x000002a651905760 3814 3 com.badlogic.gdx.math.GridPoint2:: (15 bytes) +Event: 53.678 Thread 0x000002a651905760 nmethod 3814 0x000002a635b5df10 code [0x000002a635b5e0a0, 0x000002a635b5e218] +Event: 53.967 Thread 0x000002a651905760 3815 1 java.lang.Thread::getThreadGroup (5 bytes) +Event: 53.967 Thread 0x000002a651905760 nmethod 3815 0x000002a63d21ec90 code [0x000002a63d21ee20, 0x000002a63d21eef8] +Event: 54.267 Thread 0x000002a651904d70 3816 4 com.badlogic.gdx.graphics.OrthographicCamera::update (164 bytes) +Event: 54.285 Thread 0x000002a651904d70 nmethod 3816 0x000002a63d21ef90 code [0x000002a63d21f260, 0x000002a63d21fc90] +Event: 54.469 Thread 0x000002a651905760 3817 3 com.csse3200.game.components.CombatStatsComponent::hit (49 bytes) +Event: 54.470 Thread 0x000002a651905760 nmethod 3817 0x000002a635b5e310 code [0x000002a635b5e560, 0x000002a635b5ef48] +Event: 55.569 Thread 0x000002a651904d70 3818 4 com.badlogic.gdx.math.Vector2::epsilonEquals (46 bytes) +Event: 55.570 Thread 0x000002a651904d70 nmethod 3818 0x000002a63d220410 code [0x000002a63d2205a0, 0x000002a63d220678] +Event: 55.618 Thread 0x000002a651904d70 3819 4 com.csse3200.game.components.CameraComponent::update (58 bytes) +Event: 55.643 Thread 0x000002a651904d70 nmethod 3819 0x000002a63d220710 code [0x000002a63d220a20, 0x000002a63d2216b0] + +GC Heap History (4 events): +Event: 2.634 GC heap before +{Heap before GC invocations=0 (full 0): + garbage-first heap total 253952K, used 20480K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 11 young (22528K), 0 survivors (0K) + Metaspace used 6449K, committed 6656K, reserved 1064960K + class space used 485K, committed 576K, reserved 1048576K +} +Event: 2.639 GC heap after +{Heap after GC invocations=1 (full 0): + garbage-first heap total 253952K, used 3638K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 2 young (4096K), 2 survivors (4096K) + Metaspace used 6449K, committed 6656K, reserved 1064960K + class space used 485K, committed 576K, reserved 1048576K +} +Event: 7.089 GC heap before +{Heap before GC invocations=1 (full 0): + garbage-first heap total 253952K, used 38454K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 18 young (36864K), 2 survivors (4096K) + Metaspace used 9614K, committed 9792K, reserved 1064960K + class space used 805K, committed 896K, reserved 1048576K +} +Event: 7.095 GC heap after +{Heap after GC invocations=2 (full 0): + garbage-first heap total 253952K, used 5461K [0x0000000709800000, 0x0000000800000000) + region size 2048K, 2 young (4096K), 2 survivors (4096K) + Metaspace used 9614K, committed 9792K, reserved 1064960K + class space used 805K, committed 896K, reserved 1048576K +} + +Deoptimization events (20 events): +Event: 43.913 Thread 0x000002a62db60e50 DEOPT PACKING pc=0x000002a635b00a43 sp=0x000000f717bfef30 +Event: 43.913 Thread 0x000002a62db60e50 DEOPT UNPACKING pc=0x000002a63c872b43 sp=0x000000f717bfe3f8 mode 0 +Event: 43.913 Thread 0x000002a62db60e50 DEOPT PACKING pc=0x000002a635b00a43 sp=0x000000f717bfef30 +Event: 43.913 Thread 0x000002a62db60e50 DEOPT UNPACKING pc=0x000002a63c872b43 sp=0x000000f717bfe3f8 mode 0 +Event: 43.913 Thread 0x000002a62db60e50 DEOPT PACKING pc=0x000002a635b00a43 sp=0x000000f717bfef30 +Event: 43.913 Thread 0x000002a62db60e50 DEOPT UNPACKING pc=0x000002a63c872b43 sp=0x000000f717bfe3f8 mode 0 +Event: 43.914 Thread 0x000002a62db60e50 DEOPT PACKING pc=0x000002a635b00a43 sp=0x000000f717bfef30 +Event: 43.914 Thread 0x000002a62db60e50 DEOPT UNPACKING pc=0x000002a63c872b43 sp=0x000000f717bfe3f8 mode 0 +Event: 43.914 Thread 0x000002a62db60e50 DEOPT PACKING pc=0x000002a635b00a43 sp=0x000000f717bfef30 +Event: 43.914 Thread 0x000002a62db60e50 DEOPT UNPACKING pc=0x000002a63c872b43 sp=0x000000f717bfe3f8 mode 0 +Event: 43.914 Thread 0x000002a62db60e50 DEOPT PACKING pc=0x000002a635b00a43 sp=0x000000f717bfef30 +Event: 43.914 Thread 0x000002a62db60e50 DEOPT UNPACKING pc=0x000002a63c872b43 sp=0x000000f717bfe3f8 mode 0 +Event: 43.914 Thread 0x000002a62db60e50 DEOPT PACKING pc=0x000002a635b4ae34 sp=0x000000f717bff090 +Event: 43.914 Thread 0x000002a62db60e50 DEOPT UNPACKING pc=0x000002a63c872b43 sp=0x000000f717bfe538 mode 0 +Event: 44.146 Thread 0x000002a62db60e50 DEOPT PACKING pc=0x000002a635b4ae34 sp=0x000000f717bff090 +Event: 44.146 Thread 0x000002a62db60e50 DEOPT UNPACKING pc=0x000002a63c872b43 sp=0x000000f717bfe538 mode 0 +Event: 44.395 Thread 0x000002a62db60e50 DEOPT PACKING pc=0x000002a635b4ae34 sp=0x000000f717bff090 +Event: 44.395 Thread 0x000002a62db60e50 DEOPT UNPACKING pc=0x000002a63c872b43 sp=0x000000f717bfe538 mode 0 +Event: 44.629 Thread 0x000002a62db60e50 DEOPT PACKING pc=0x000002a635b4ae34 sp=0x000000f717bff090 +Event: 44.629 Thread 0x000002a62db60e50 DEOPT UNPACKING pc=0x000002a63c872b43 sp=0x000000f717bfe538 mode 0 + +Classes unloaded (0 events): +No events + +Classes redefined (0 events): +No events + +Internal exceptions (20 events): +Event: 2.172 Thread 0x000002a62db60e50 Exception (0x000000071833c3e0) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 2.427 Thread 0x000002a62db60e50 Exception (0x0000000717e688a8) +thrown [s\open\src\hotspot\share\classfile\systemDictionary.cpp, line 256] +Event: 2.453 Thread 0x000002a62db60e50 Exception (0x0000000717eef4e8) +thrown [s\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 2.490 Thread 0x000002a62db60e50 Exception (0x0000000717f3e038) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 2.492 Thread 0x000002a62db60e50 Exception (0x0000000717f48458) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 5.872 Thread 0x000002a62db60e50 Exception (0x000000071818dcb8) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 6.012 Thread 0x000002a62db60e50 Exception (0x0000000717fbb7e0) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 8.101 Thread 0x000002a62db60e50 Exception (0x0000000717116fe0) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 8.104 Thread 0x000002a62db60e50 Exception (0x00000007171255f0) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 8.105 Thread 0x000002a62db60e50 Exception (0x000000071712ed68) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 8.212 Thread 0x000002a62db60e50 Exception (0x00000007171d6570) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 8.249 Thread 0x000002a62db60e50 Exception (0x0000000716f2be98) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 8.253 Thread 0x000002a62db60e50 Exception (0x0000000716f349e8) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 8.259 Thread 0x000002a668da44c0 Exception (0x0000000716fed328) +thrown [s\open\src\hotspot\share\interpreter\linkResolver.cpp, line 759] +Event: 24.198 Thread 0x000002a651cb15c0 Implicit null exception at 0x000002a6359c663f to 0x000002a6359c730d +Event: 24.198 Thread 0x000002a651cb15c0 Exception (0x0000000715f71490) +thrown [s\open\src\hotspot\share\runtime\sharedRuntime.cpp, line 628] +Event: 29.682 Thread 0x000002a651cae5a0 Implicit null exception at 0x000002a6359c663f to 0x000002a6359c730d +Event: 29.682 Thread 0x000002a651cae5a0 Exception (0x0000000715200080) +thrown [s\open\src\hotspot\share\runtime\sharedRuntime.cpp, line 628] +Event: 35.603 Thread 0x000002a62db60e50 Implicit null exception at 0x000002a63d169faf to 0x000002a63d16a5ac +Event: 42.942 Thread 0x000002a66939d020 Implicit null exception at 0x000002a63d0ca006 to 0x000002a63d0ca414 + +VM Operations (20 events): +Event: 38.177 Executing VM operation: Cleanup +Event: 38.177 Executing VM operation: Cleanup done +Event: 38.461 Executing VM operation: HandshakeAllThreads +Event: 38.461 Executing VM operation: HandshakeAllThreads done +Event: 39.461 Executing VM operation: Cleanup +Event: 39.461 Executing VM operation: Cleanup done +Event: 40.462 Executing VM operation: Cleanup +Event: 40.462 Executing VM operation: Cleanup done +Event: 41.462 Executing VM operation: Cleanup +Event: 41.463 Executing VM operation: Cleanup done +Event: 42.463 Executing VM operation: Cleanup +Event: 42.463 Executing VM operation: Cleanup done +Event: 43.464 Executing VM operation: Cleanup +Event: 43.464 Executing VM operation: Cleanup done +Event: 44.465 Executing VM operation: Cleanup +Event: 44.465 Executing VM operation: Cleanup done +Event: 45.465 Executing VM operation: Cleanup +Event: 45.465 Executing VM operation: Cleanup done +Event: 54.470 Executing VM operation: Cleanup +Event: 54.470 Executing VM operation: Cleanup done + +Events (20 events): +Event: 29.686 Thread 0x000002a651cae5a0 Thread exited: 0x000002a651cae5a0 +Event: 30.081 Thread 0x000002a66939c1b0 Thread added: 0x000002a66939c1b0 +Event: 30.297 Thread 0x000002a66939a000 Thread added: 0x000002a66939a000 +Event: 31.081 Thread 0x000002a66939a4d0 Thread added: 0x000002a66939a4d0 +Event: 31.701 Thread 0x000002a65197e160 Thread added: 0x000002a65197e160 +Event: 31.781 Thread 0x000002a669399660 Thread added: 0x000002a669399660 +Event: 31.832 Thread 0x000002a65197e160 Thread exited: 0x000002a65197e160 +Event: 32.748 Thread 0x000002a669399b30 Thread added: 0x000002a669399b30 +Event: 41.963 Thread 0x000002a66939d020 Thread added: 0x000002a66939d020 +Event: 43.256 Thread 0x000002a65197bdf0 Thread added: 0x000002a65197bdf0 +Event: 43.457 Thread 0x000002a65197d230 Thread added: 0x000002a65197d230 +Event: 43.676 Thread 0x000002a66939bce0 Thread added: 0x000002a66939bce0 +Event: 44.096 Thread 0x000002a65197d230 Thread exited: 0x000002a65197d230 +Event: 44.096 Thread 0x000002a65197bdf0 Thread exited: 0x000002a65197bdf0 +Event: 53.967 Thread 0x000002a669396fe0 Thread added: 0x000002a669396fe0 +Event: 54.617 Thread 0x000002a66939cb50 Thread added: 0x000002a66939cb50 +Event: 54.767 Thread 0x000002a669395ca0 Thread added: 0x000002a669395ca0 +Event: 55.284 Thread 0x000002a66939a9a0 Thread added: 0x000002a66939a9a0 +Event: 55.319 Thread 0x000002a66939ae70 Thread added: 0x000002a66939ae70 +Event: 55.352 Thread 0x000002a66939b340 Thread added: 0x000002a66939b340 + + +Dynamic libraries: +0x00007ff6473f0000 - 0x00007ff647400000 C:\Program Files\Java\jdk-17\bin\java.exe +0x00007ffba77b0000 - 0x00007ffba79a8000 C:\Windows\SYSTEM32\ntdll.dll +0x00007ffba7300000 - 0x00007ffba73bd000 C:\Windows\System32\KERNEL32.DLL +0x00007ffba4f20000 - 0x00007ffba5216000 C:\Windows\System32\KERNELBASE.dll +0x00007ffba5220000 - 0x00007ffba5320000 C:\Windows\System32\ucrtbase.dll +0x00007ffb93320000 - 0x00007ffb93338000 C:\Program Files\Java\jdk-17\bin\jli.dll +0x00007ffb932e0000 - 0x00007ffb932fb000 C:\Program Files\Java\jdk-17\bin\VCRUNTIME140.dll +0x00007ffba7250000 - 0x00007ffba72fe000 C:\Windows\System32\ADVAPI32.dll +0x00007ffba5810000 - 0x00007ffba58ae000 C:\Windows\System32\msvcrt.dll +0x00007ffba58b0000 - 0x00007ffba594c000 C:\Windows\System32\sechost.dll +0x00007ffba60e0000 - 0x00007ffba6206000 C:\Windows\System32\RPCRT4.dll +0x00007ffba73c0000 - 0x00007ffba755e000 C:\Windows\System32\USER32.dll +0x00007ffba53f0000 - 0x00007ffba5412000 C:\Windows\System32\win32u.dll +0x00007ffb9a290000 - 0x00007ffb9a52a000 C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_60b5254171f9507e\COMCTL32.dll +0x00007ffba6210000 - 0x00007ffba623c000 C:\Windows\System32\GDI32.dll +0x00007ffba5640000 - 0x00007ffba575a000 C:\Windows\System32\gdi32full.dll +0x00007ffba5350000 - 0x00007ffba53ed000 C:\Windows\System32\msvcp_win.dll +0x00007ffb98ea0000 - 0x00007ffb98eaa000 C:\Windows\SYSTEM32\VERSION.dll +0x00007ffba6250000 - 0x00007ffba6280000 C:\Windows\System32\IMM32.DLL +0x00007ffb95130000 - 0x00007ffb9513c000 C:\Program Files\Java\jdk-17\bin\vcruntime140_1.dll +0x00007ffb74be0000 - 0x00007ffb74c6e000 C:\Program Files\Java\jdk-17\bin\msvcp140.dll +0x00007ffb5a8f0000 - 0x00007ffb5b4c7000 C:\Program Files\Java\jdk-17\bin\server\jvm.dll +0x00007ffba6240000 - 0x00007ffba6248000 C:\Windows\System32\PSAPI.DLL +0x00007ffb98e70000 - 0x00007ffb98e97000 C:\Windows\SYSTEM32\WINMM.dll +0x00007ffb84120000 - 0x00007ffb84129000 C:\Windows\SYSTEM32\WSOCK32.dll +0x00007ffba71e0000 - 0x00007ffba724b000 C:\Windows\System32\WS2_32.dll +0x00007ffba36e0000 - 0x00007ffba36f2000 C:\Windows\SYSTEM32\kernel.appcore.dll +0x00007ffb95040000 - 0x00007ffb9504a000 C:\Program Files\Java\jdk-17\bin\jimage.dll +0x00007ffba2bb0000 - 0x00007ffba2d94000 C:\Windows\SYSTEM32\DBGHELP.DLL +0x00007ffb96480000 - 0x00007ffb964b4000 C:\Windows\SYSTEM32\dbgcore.DLL +0x00007ffba4e90000 - 0x00007ffba4f12000 C:\Windows\System32\bcryptPrimitives.dll +0x00007ffb81d60000 - 0x00007ffb81d85000 C:\Program Files\Java\jdk-17\bin\java.dll +0x00007ffb6f9c0000 - 0x00007ffb6fa97000 C:\Program Files\Java\jdk-17\bin\jsvml.dll +0x00007ffba63f0000 - 0x00007ffba6b35000 C:\Windows\System32\SHELL32.dll +0x00007ffba2f00000 - 0x00007ffba369b000 C:\Windows\SYSTEM32\windows.storage.dll +0x00007ffba5c50000 - 0x00007ffba5fa4000 C:\Windows\System32\combase.dll +0x00007ffba4860000 - 0x00007ffba488e000 C:\Windows\SYSTEM32\Wldp.dll +0x00007ffba6b40000 - 0x00007ffba6bed000 C:\Windows\System32\SHCORE.dll +0x00007ffba5b20000 - 0x00007ffba5b75000 C:\Windows\System32\shlwapi.dll +0x00007ffba4dc0000 - 0x00007ffba4de5000 C:\Windows\SYSTEM32\profapi.dll +0x00007ffb84150000 - 0x00007ffb84169000 C:\Program Files\Java\jdk-17\bin\net.dll +0x00007ffb9f190000 - 0x00007ffb9f29a000 C:\Windows\SYSTEM32\WINHTTP.dll +0x0000000180000000 - 0x000000018008c000 C:\Windows\system32\ASProxy64.dll +0x00007ffba5fb0000 - 0x00007ffba60da000 C:\Windows\System32\ole32.dll +0x00007ffba45c0000 - 0x00007ffba462a000 C:\Windows\SYSTEM32\MSWSOCK.dll +0x00007ffba5b80000 - 0x00007ffba5c4d000 C:\Windows\System32\OLEAUT32.dll +0x00007ffba42b0000 - 0x00007ffba42eb000 C:\Windows\SYSTEM32\IPHLPAPI.DLL +0x00007ffba4d40000 - 0x00007ffba4d72000 C:\Windows\SYSTEM32\SspiCli.dll +0x00007ffb83d50000 - 0x00007ffb83d66000 C:\Program Files\Java\jdk-17\bin\nio.dll +0x00007ffb83bb0000 - 0x00007ffb83bc8000 C:\Program Files\Java\jdk-17\bin\zip.dll +0x00007ffb94c00000 - 0x00007ffb94c10000 C:\Program Files\Java\jdk-17\bin\verify.dll +0x00007ffba2120000 - 0x00007ffba21be000 C:\Windows\system32\uxtheme.dll +0x0000000050410000 - 0x0000000050439000 C:\Users\isaac\AppData\Local\Temp\libgdxisaac\e787ab0a\gdx64.dll +0x00007ffb774b0000 - 0x00007ffb77525000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\lwjgl.dll +0x00007ffb5f670000 - 0x00007ffb5f8c9000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\jemalloc.dll +0x00007ffb77440000 - 0x00007ffb774a1000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\glfw.dll +0x00007ffb7e950000 - 0x00007ffb7e995000 C:\Windows\SYSTEM32\dinput8.dll +0x00007ffb95e20000 - 0x00007ffb95e31000 C:\Windows\SYSTEM32\xinput1_4.dll +0x00007ffba5420000 - 0x00007ffba546e000 C:\Windows\System32\cfgmgr32.dll +0x00007ffba4c40000 - 0x00007ffba4c73000 C:\Windows\SYSTEM32\DEVOBJ.dll +0x00007ffba24b0000 - 0x00007ffba24df000 C:\Windows\SYSTEM32\dwmapi.dll +0x00007ffb7c850000 - 0x00007ffb7c9a2000 C:\Windows\SYSTEM32\inputhost.dll +0x00007ffba0590000 - 0x00007ffba06e5000 C:\Windows\SYSTEM32\wintypes.dll +0x00007ffba1d30000 - 0x00007ffba1e22000 C:\Windows\SYSTEM32\CoreMessaging.dll +0x00007ffba2da0000 - 0x00007ffba2e96000 C:\Windows\SYSTEM32\PROPSYS.dll +0x00007ffba1650000 - 0x00007ffba19ae000 C:\Windows\SYSTEM32\CoreUIComponents.dll +0x00007ffba3fe0000 - 0x00007ffba4013000 C:\Windows\SYSTEM32\ntmarta.dll +0x00007ffba7570000 - 0x00007ffba7684000 C:\Windows\System32\MSCTF.dll +0x00007ffb6c360000 - 0x00007ffb6c4f7000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\OpenAL.dll +0x00007ffba6bf0000 - 0x00007ffba6c99000 C:\Windows\System32\clbcatq.dll +0x00007ffb9d930000 - 0x00007ffb9d9b5000 C:\Windows\System32\MMDevApi.dll +0x00007ffb9d2a0000 - 0x00007ffb9d422000 C:\Windows\SYSTEM32\AUDIOSES.DLL +0x00007ffba4bd0000 - 0x00007ffba4c1b000 C:\Windows\SYSTEM32\powrprof.dll +0x00007ffba4bb0000 - 0x00007ffba4bc2000 C:\Windows\SYSTEM32\UMPDC.dll +0x00007ffba24e0000 - 0x00007ffba24f4000 C:\Windows\SYSTEM32\resourcepolicyclient.dll +0x00007ffb77310000 - 0x00007ffb77435000 C:\Windows\SYSTEM32\opengl32.dll +0x00007ffb94f50000 - 0x00007ffb94f7c000 C:\Windows\SYSTEM32\GLU32.dll +0x00007ffb9c490000 - 0x00007ffb9c592000 C:\Windows\System32\AppXDeploymentClient.dll +0x00007ffb93280000 - 0x00007ffb932aa000 C:\Windows\System32\DriverStore\FileRepository\u0363312.inf_amd64_08fc5018b1b99545\B363211\atig6pxx.dll +0x00007ffb55350000 - 0x00007ffb580f5000 C:\Windows\System32\DriverStore\FileRepository\u0363312.inf_amd64_08fc5018b1b99545\B363211\atio6axx.dll +0x00007ffba6d10000 - 0x00007ffba717e000 C:\Windows\System32\SETUPAPI.dll +0x00007ffba5320000 - 0x00007ffba5347000 C:\Windows\System32\bcrypt.dll +0x00007ffb94f20000 - 0x00007ffb94f44000 C:\Windows\SYSTEM32\dxva2.dll +0x00007ffb83e90000 - 0x00007ffb83ecc000 C:\Windows\System32\DriverStore\FileRepository\u0363312.inf_amd64_08fc5018b1b99545\B363211\atig6txx.dll +0x00007ffb6b1f0000 - 0x00007ffb6b3af000 C:\Windows\SYSTEM32\atiadlxx.dll +0x00007ffba55d0000 - 0x00007ffba5637000 C:\Windows\System32\WINTRUST.dll +0x00007ffba5470000 - 0x00007ffba55ce000 C:\Windows\System32\CRYPT32.dll +0x00007ffba49f0000 - 0x00007ffba4a02000 C:\Windows\SYSTEM32\MSASN1.dll +0x00007ffb9eba0000 - 0x00007ffb9ebdb000 C:\Windows\SYSTEM32\dxcore.dll +0x00007ffb752f0000 - 0x00007ffb7534d000 C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7\lwjgl_opengl.dll +0x00007ffb7c9b0000 - 0x00007ffb7caaa000 C:\Windows\SYSTEM32\textinputframework.dll +0x00007ffb7f310000 - 0x00007ffb7f376000 C:\Windows\system32\Oleacc.dll +0x00007ffb72850000 - 0x00007ffb72b45000 C:\Windows\System32\uiautomationcore.dll +0x00007ffba47d0000 - 0x00007ffba47dc000 C:\Windows\SYSTEM32\CRYPTBASE.DLL +0x00000000503b0000 - 0x000000005040a000 C:\Users\isaac\AppData\Local\Temp\libgdxisaac\888fe1bc\gdx-box2d64.dll +0x00007ffba47b0000 - 0x00007ffba47c8000 C:\Windows\SYSTEM32\CRYPTSP.dll +0x00007ffba3ec0000 - 0x00007ffba3ef4000 C:\Windows\system32\rsaenh.dll +0x00007ffba4d80000 - 0x00007ffba4dae000 C:\Windows\SYSTEM32\USERENV.dll +0x00007ffba6d00000 - 0x00007ffba6d08000 C:\Windows\System32\NSI.dll +0x00007ffb9b8c0000 - 0x00007ffb9b8d7000 C:\Windows\SYSTEM32\dhcpcsvc6.DLL +0x00007ffb9ce90000 - 0x00007ffb9cead000 C:\Windows\SYSTEM32\dhcpcsvc.DLL +0x00007ffba42f0000 - 0x00007ffba43ba000 C:\Windows\SYSTEM32\DNSAPI.dll + +dbghelp: loaded successfully - version: 4.0.5 - missing functions: none +symbol engine: initialized successfully - sym options: 0x614 - pdb path: .;C:\Program Files\Java\jdk-17\bin;C:\Windows\SYSTEM32;C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_60b5254171f9507e;C:\Program Files\Java\jdk-17\bin\server;C:\Users\isaac\AppData\Local\Temp\libgdxisaac\e787ab0a;C:\Users\isaac\AppData\Local\Temp\lwjglisaac\3.3.1-build-7;C:\Windows\System32\DriverStore\FileRepository\u0363312.inf_amd64_08fc5018b1b99545\B363211;C:\Users\isaac\AppData\Local\Temp\libgdxisaac\888fe1bc + +VM Arguments: +jvm_args: -XX:+ShowCodeDetailsInExceptionMessages +java_command: com.csse3200.game.desktop.DesktopLauncher +java_class_path (initial): C:\Users\isaac\OneDrive\Documents\School\University of Queensland\UQ 2023\UQ 2023 Semester 2\CSSE3200\2023-studio-3\source\desktop\bin\main;\csse3200-game-core\bin\default;C:\Users\isaac\OneDrive\Documents\School\University of Queensland\UQ 2023\UQ 2023 Semester 2\CSSE3200\2023-studio-3\source\core\bin\main;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-backend-lwjgl3\1.11.0\58a96db4cd349be4292d547856aa1e1c5f065f4e\gdx-backend-lwjgl3-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-platform\1.11.0\697fb13eada6d3c6ca648c9788692b0159add126\gdx-platform-1.11.0-natives-desktop.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-box2d-platform\1.11.0\62ff9baa1e57a11e0a4428a38c9660bf9f312fdc\gdx-box2d-platform-1.11.0-natives-desktop.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-tools\1.11.0\a5d30eafd0f2fbab314efdf6d98ebc27388b7c0a\gdx-tools-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx-controllers\gdx-controllers-desktop\2.2.2\625b3bdbe803e9c4af181b4791202cfcf776d805\gdx-controllers-desktop-2.2.2.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-backend-lwjgl\1.11.0\33555a2cf8b4d9db4122b2fe42e7674b343d8b4\gdx-backend-lwjgl-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-freetype\1.11.0\a3634ad2e6c56d251268d6ab5c0f66eee2841f2c\gdx-freetype-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-backend-headless\1.11.0\3c3d0c951db72891d894df1725d09179fd0bca00\gdx-backend-headless-1.11.0.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\net.dermetfan.libgdx-utils\libgdx-utils-box2d\0.13.4\918d79a20ea3c898cdb3611782c5b2bfa6ec575b\libgdx-utils-box2d-0.13.4.jar;C:\Users\isaac\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-box2d\1.11.0\ad4facee800dd945d6d6e93dea2936bc135b +Launcher Type: SUN_STANDARD + +[Global flags] + intx CICompilerCount = 12 {product} {ergonomic} + uint ConcGCThreads = 3 {product} {ergonomic} + uint G1ConcRefinementThreads = 13 {product} {ergonomic} + size_t G1HeapRegionSize = 2097152 {product} {ergonomic} + uintx GCDrainStackTargetSize = 64 {product} {ergonomic} + size_t InitialHeapSize = 260046848 {product} {ergonomic} + size_t MarkStackSize = 4194304 {product} {ergonomic} + size_t MaxHeapSize = 4135583744 {product} {ergonomic} + size_t MaxNewSize = 2480930816 {product} {ergonomic} + size_t MinHeapDeltaBytes = 2097152 {product} {ergonomic} + size_t MinHeapSize = 8388608 {product} {ergonomic} + uintx NonNMethodCodeHeapSize = 7602480 {pd product} {ergonomic} + uintx NonProfiledCodeHeapSize = 122027880 {pd product} {ergonomic} + uintx ProfiledCodeHeapSize = 122027880 {pd product} {ergonomic} + uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} + bool SegmentedCodeCache = true {product} {ergonomic} + bool ShowCodeDetailsInExceptionMessages = true {manageable} {command line} + size_t SoftMaxHeapSize = 4135583744 {manageable} {ergonomic} + bool UseCompressedClassPointers = true {product lp64_product} {ergonomic} + bool UseCompressedOops = true {product lp64_product} {ergonomic} + bool UseG1GC = true {product} {ergonomic} + bool UseLargePagesIndividualAllocation = false {pd product} {ergonomic} + +Logging: +Log output configuration: + #0: stdout all=warning uptime,level,tags + #1: stderr all=off uptime,level,tags + +Environment Variables: +PATH=C:\Users\isaac\bin;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\local\bin;C:\Program Files\Git\usr\bin;C:\Program Files\Git\usr\bin;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Users\isaac\bin;C:\Program Files\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn;C:\Program Files (x86)\Microsoft SQL Server\150\Tools\Binn;C:\Program Files\Microsoft SQL Server\150\Tools\Binn;C:\Program Files\Microsoft SQL Server\150\DTS\Binn;C:\Program Files (x86)\Microsoft SQL Server\150\DTS\Binn;C:\Program Files\Azure Data Studio\bin;C:\Program Files\Git\cmd;C:\Program Files\PuTTY;C:\Program Files (x86)\Pololu\USB AVR Programmer v2\bin;C:\Program Files\nodejs;C:\Users\isaac\AppData\Local\Programs\Python\Python310\Scripts;C:\Users\isaac\AppData\Local\Programs\Python\Python310;C:\Users\isaac\AppData\Local\Microsoft\WindowsApps;C:\Users\isaac\AppData\Local\Programs\Microsoft VS Code\bin;C:\Program Files\Azure Data Studio\bin;C:\Users\isaac\AppData\Roaming\npm;C:\Program Files\Git\usr\bin\vendor_perl;C:\Program Files\Git\usr\bin\core_perl +USERNAME=isaac +SHELL=C:\Program Files\Git\usr\bin\bash.exe +DISPLAY=needs-to-be-defined +LANG=en_US.UTF-8 +OS=Windows_NT +PROCESSOR_IDENTIFIER=AMD64 Family 23 Model 104 Stepping 1, AuthenticAMD + + + +--------------- S Y S T E M --------------- + +OS: + Windows 10 , 64 bit Build 19041 (10.0.19041.3393) +OS uptime: 8 days 4:38 hours + +CPU: total 16 (initial active 16) (16 cores per cpu, 2 threads per core) family 23 model 104 stepping 1 microcode 0x0, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4a, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, clmul, bmi1, bmi2, adx, sha, fma, vzeroupper, clflush, clflushopt + +Memory: 4k page, system-wide physical 15769M (4058M free) +TotalPageFile size 19865M (AvailPageFile size 2901M) +current process WorkingSet (physical memory assigned to process): 557M, peak: 652M +current process commit charge ("private bytes"): 789M, peak: 893M + +vm_info: Java HotSpot(TM) 64-Bit Server VM (17.0.6+9-LTS-190) for windows-amd64 JRE (17.0.6+9-LTS-190), built on Dec 6 2022 15:53:54 by "mach5one" with MS VC++ 17.1 (VS2022) + +END. diff --git a/source/core/assets/images/GrassTile/grass_tile_1.png b/source/core/assets/images/GrassTile/grass_tile_1.png new file mode 100644 index 000000000..770193053 Binary files /dev/null and b/source/core/assets/images/GrassTile/grass_tile_1.png differ diff --git a/source/core/assets/images/GrassTile/grass_tile_2.png b/source/core/assets/images/GrassTile/grass_tile_2.png new file mode 100644 index 000000000..261cd8ad8 Binary files /dev/null and b/source/core/assets/images/GrassTile/grass_tile_2.png differ diff --git a/source/core/assets/images/GrassTile/grass_tile_3.png b/source/core/assets/images/GrassTile/grass_tile_3.png new file mode 100644 index 000000000..3c18bce32 Binary files /dev/null and b/source/core/assets/images/GrassTile/grass_tile_3.png differ diff --git a/source/core/assets/images/GrassTile/grass_tile_4.png b/source/core/assets/images/GrassTile/grass_tile_4.png new file mode 100644 index 000000000..846fbc184 Binary files /dev/null and b/source/core/assets/images/GrassTile/grass_tile_4.png differ diff --git a/source/core/assets/images/GrassTile/grass_tile_5.png b/source/core/assets/images/GrassTile/grass_tile_5.png new file mode 100644 index 000000000..7efc7788c Binary files /dev/null and b/source/core/assets/images/GrassTile/grass_tile_5.png differ diff --git a/source/core/assets/images/GrassTile/grass_tile_6.png b/source/core/assets/images/GrassTile/grass_tile_6.png new file mode 100644 index 000000000..ac27e6981 Binary files /dev/null and b/source/core/assets/images/GrassTile/grass_tile_6.png differ diff --git a/source/core/assets/images/GrassTile/grass_tile_7.png b/source/core/assets/images/GrassTile/grass_tile_7.png new file mode 100644 index 000000000..8f7fb2f76 Binary files /dev/null and b/source/core/assets/images/GrassTile/grass_tile_7.png differ diff --git a/source/core/assets/images/grass_2.png b/source/core/assets/images/grass_2.png index 81dbc6ef7..bc1ab9447 100644 Binary files a/source/core/assets/images/grass_2.png and b/source/core/assets/images/grass_2.png differ diff --git a/source/core/assets/images/highlight_tile.png b/source/core/assets/images/highlight_tile.png new file mode 100644 index 000000000..4c6883788 Binary files /dev/null and b/source/core/assets/images/highlight_tile.png differ diff --git a/source/core/assets/images/mobboss/iceBaby.atlas b/source/core/assets/images/mobboss/iceBaby.atlas new file mode 100644 index 000000000..98a02e5d6 --- /dev/null +++ b/source/core/assets/images/mobboss/iceBaby.atlas @@ -0,0 +1,756 @@ + +iceBaby.png +size: 2048, 2048 +format: RGBA8888 +filter: Nearest, Nearest +repeat: none +1_atk + rotate: false + xy: 2, 1562 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 12 +1_atk + rotate: false + xy: 584, 1692 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 2 +1_atk + rotate: false + xy: 196, 1172 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 7 +1_atk + rotate: false + xy: 584, 1172 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 4 +1_atk + rotate: false + xy: 196, 782 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 11 +1_atk + rotate: false + xy: 584, 1042 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 9 +1_atk + rotate: false + xy: 1554, 1562 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 6 +1_atk + rotate: false + xy: 778, 912 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 13 +1_atk + rotate: false + xy: 390, 522 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 3 +1_atk + rotate: false + xy: 1166, 1042 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 10 +1_atk + rotate: false + xy: 1554, 1302 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 8 +1_atk + rotate: false + xy: 972, 652 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 5 +2_atk + rotate: false + xy: 390, 1562 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 2 +2_atk + rotate: false + xy: 2, 1042 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 7 +2_atk + rotate: false + xy: 584, 1302 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 10 +2_atk + rotate: false + xy: 778, 1302 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 4 +2_atk + rotate: false + xy: 778, 1172 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 9 +2_atk + rotate: false + xy: 1360, 1432 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 6 +2_atk + rotate: false + xy: 584, 652 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 3 +2_atk + rotate: false + xy: 1748, 1432 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 8 +2_atk + rotate: false + xy: 196, 132 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 5 +3_atk + rotate: false + xy: 390, 1692 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 13 +3_atk + rotate: false + xy: 2, 1172 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 2 +3_atk + rotate: false + xy: 390, 1302 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 7 +3_atk + rotate: false + xy: 390, 1302 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 8 +3_atk + rotate: false + xy: 778, 1562 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 10 +3_atk + rotate: false + xy: 2, 782 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 15 +3_atk + rotate: false + xy: 972, 1432 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 4 +3_atk + rotate: false + xy: 972, 1302 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 9 +3_atk + rotate: false + xy: 1166, 1432 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 12 +3_atk + rotate: false + xy: 1748, 1692 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 6 +3_atk + rotate: false + xy: 1554, 1432 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 14 +3_atk + rotate: false + xy: 196, 392 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 3 +3_atk + rotate: false + xy: 196, 262 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 11 +3_atk + rotate: false + xy: 390, 262 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 5 +death + rotate: false + xy: 2, 1692 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 1 +1_atk + rotate: false + xy: 2, 1692 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 1 +1_atk + rotate: false + xy: 2, 1692 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 14 +2_atk + rotate: false + xy: 2, 1692 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 1 +2_atk + rotate: false + xy: 2, 1692 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 11 +3_atk + rotate: false + xy: 2, 1692 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 1 +3_atk + rotate: false + xy: 2, 1692 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 16 +idle + rotate: false + xy: 2, 1692 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 1 +idle + rotate: false + xy: 2, 1692 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 2 +intro_or_revive + rotate: false + xy: 2, 1692 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 20 +death + rotate: false + xy: 2, 1432 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 15 +death + rotate: false + xy: 2, 1432 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 16 +intro_or_revive + rotate: false + xy: 2, 1432 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 1 +death + rotate: false + xy: 2, 1302 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 6 +death + rotate: false + xy: 584, 1432 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 12 +death + rotate: false + xy: 972, 1692 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 3 +death + rotate: false + xy: 196, 912 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 8 +death + rotate: false + xy: 1360, 1562 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 14 +death + rotate: false + xy: 1554, 1692 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 5 +death + rotate: false + xy: 2, 392 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 11 +death + rotate: false + xy: 390, 652 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 2 +death + rotate: false + xy: 1748, 1562 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 7 +death + rotate: false + xy: 2, 132 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 13 +death + rotate: false + xy: 390, 392 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 4 +death + rotate: false + xy: 1748, 1302 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 9 +death + rotate: false + xy: 778, 522 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 10 +idle + rotate: false + xy: 2, 912 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 6 +idle + rotate: false + xy: 1166, 1562 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 3 +idle + rotate: false + xy: 196, 522 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 5 +idle + rotate: false + xy: 584, 392 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 4 +intro_or_revive + rotate: false + xy: 196, 1562 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 12 +intro_or_revive + rotate: false + xy: 584, 1562 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 3 +intro_or_revive + rotate: false + xy: 778, 1692 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 17 +intro_or_revive + rotate: false + xy: 196, 1042 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 8 +intro_or_revive + rotate: false + xy: 1166, 1692 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 14 +intro_or_revive + rotate: false + xy: 2, 652 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 5 +intro_or_revive + rotate: false + xy: 390, 912 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 19 +intro_or_revive + rotate: false + xy: 2, 522 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 11 +intro_or_revive + rotate: false + xy: 972, 1172 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 2 +intro_or_revive + rotate: false + xy: 1166, 1302 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 16 +intro_or_revive + rotate: false + xy: 584, 782 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 7 +intro_or_revive + rotate: false + xy: 1360, 1302 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 13 +intro_or_revive + rotate: false + xy: 972, 912 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 4 +intro_or_revive + rotate: false + xy: 1360, 1172 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 18 +intro_or_revive + rotate: false + xy: 584, 522 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 10 +intro_or_revive + rotate: false + xy: 778, 652 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 9 +intro_or_revive + rotate: false + xy: 1554, 1172 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 15 +intro_or_revive + rotate: false + xy: 1166, 782 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 6 +stagger + rotate: false + xy: 196, 1432 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 5 +stagger + rotate: false + xy: 390, 1172 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 2 +stagger + rotate: false + xy: 196, 652 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 4 +stagger + rotate: false + xy: 972, 1042 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 1 +stagger + rotate: false + xy: 2, 262 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 6 +stagger + rotate: false + xy: 972, 782 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 3 +take_hit + rotate: false + xy: 196, 1302 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 5 +take_hit + rotate: false + xy: 972, 1562 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 2 +take_hit + rotate: false + xy: 1360, 1692 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 7 +take_hit + rotate: false + xy: 778, 1042 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 4 +take_hit + rotate: false + xy: 1166, 1172 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 1 +take_hit + rotate: false + xy: 778, 782 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 6 +take_hit + rotate: false + xy: 1360, 1042 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 3 +walk + rotate: false + xy: 196, 1692 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 1 +walk + rotate: false + xy: 196, 1692 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 2 +walk + rotate: false + xy: 390, 1432 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 6 +walk + rotate: false + xy: 390, 1432 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 7 +walk + rotate: false + xy: 778, 1432 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 3 +walk + rotate: false + xy: 390, 1042 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 8 +walk + rotate: false + xy: 390, 782 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 5 +walk + rotate: false + xy: 584, 912 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 10 +walk + rotate: false + xy: 1166, 912 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 4 +walk + rotate: false + xy: 2, 2 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 9 +default + rotate: false + xy: 196, 522 + size: 192, 128 + orig: 192, 128 + offset: 0, 0 + index: 5 + diff --git a/source/core/assets/images/mobboss/iceBaby.png b/source/core/assets/images/mobboss/iceBaby.png new file mode 100644 index 000000000..87fa59dec Binary files /dev/null and b/source/core/assets/images/mobboss/iceBaby.png differ diff --git a/source/core/assets/sounds/mobBoss/demonAttack.wav b/source/core/assets/sounds/mobBoss/demonAttack.wav new file mode 100644 index 000000000..63f26b3eb Binary files /dev/null and b/source/core/assets/sounds/mobBoss/demonAttack.wav differ diff --git a/source/core/assets/sounds/mobBoss/demonBreath.mp3 b/source/core/assets/sounds/mobBoss/demonBreath.mp3 new file mode 100644 index 000000000..984381dc1 Binary files /dev/null and b/source/core/assets/sounds/mobBoss/demonBreath.mp3 differ diff --git a/source/core/assets/sounds/mobBoss/demonBreathIn.mp3 b/source/core/assets/sounds/mobBoss/demonBreathIn.mp3 new file mode 100644 index 000000000..7e2c74a61 Binary files /dev/null and b/source/core/assets/sounds/mobBoss/demonBreathIn.mp3 differ diff --git a/source/core/assets/sounds/mobBoss/demonCleave.mp3 b/source/core/assets/sounds/mobBoss/demonCleave.mp3 new file mode 100644 index 000000000..393415af0 Binary files /dev/null and b/source/core/assets/sounds/mobBoss/demonCleave.mp3 differ diff --git a/source/core/assets/sounds/mobBoss/demonDeath.mp3 b/source/core/assets/sounds/mobBoss/demonDeath.mp3 new file mode 100644 index 000000000..b9a6d20d9 Binary files /dev/null and b/source/core/assets/sounds/mobBoss/demonDeath.mp3 differ diff --git a/source/core/assets/sounds/mobBoss/demonHeal.mp3 b/source/core/assets/sounds/mobBoss/demonHeal.mp3 new file mode 100644 index 000000000..b9b8c8248 Binary files /dev/null and b/source/core/assets/sounds/mobBoss/demonHeal.mp3 differ diff --git a/source/core/assets/sounds/mobBoss/demonJump.mp3 b/source/core/assets/sounds/mobBoss/demonJump.mp3 new file mode 100644 index 000000000..7e2c74a61 Binary files /dev/null and b/source/core/assets/sounds/mobBoss/demonJump.mp3 differ diff --git a/source/core/assets/sounds/mobBoss/demonLand.mp3 b/source/core/assets/sounds/mobBoss/demonLand.mp3 new file mode 100644 index 000000000..59c5c3b1c Binary files /dev/null and b/source/core/assets/sounds/mobBoss/demonLand.mp3 differ diff --git a/source/core/assets/sounds/mobBoss/demonSpawn.wav b/source/core/assets/sounds/mobBoss/demonSpawn.wav new file mode 100644 index 000000000..4f2f317da Binary files /dev/null and b/source/core/assets/sounds/mobBoss/demonSpawn.wav differ diff --git a/source/core/assets/sounds/mobBoss/iceBabyAOE.mp3 b/source/core/assets/sounds/mobBoss/iceBabyAOE.mp3 new file mode 100644 index 000000000..0ef4c5956 Binary files /dev/null and b/source/core/assets/sounds/mobBoss/iceBabyAOE.mp3 differ diff --git a/source/core/assets/sounds/mobBoss/iceBabySound.mp3 b/source/core/assets/sounds/mobBoss/iceBabySound.mp3 new file mode 100644 index 000000000..362a218a7 Binary files /dev/null and b/source/core/assets/sounds/mobBoss/iceBabySound.mp3 differ diff --git a/source/core/assets/sounds/mobBoss/mobSpawnStomp.mp3 b/source/core/assets/sounds/mobBoss/mobSpawnStomp.mp3 new file mode 100644 index 000000000..2b694a473 Binary files /dev/null and b/source/core/assets/sounds/mobBoss/mobSpawnStomp.mp3 differ diff --git a/source/core/assets/sounds/mobBoss/patrickAppear.mp3 b/source/core/assets/sounds/mobBoss/patrickAppear.mp3 new file mode 100644 index 000000000..f70eea648 Binary files /dev/null and b/source/core/assets/sounds/mobBoss/patrickAppear.mp3 differ diff --git a/source/core/assets/sounds/mobBoss/patrickAttack.mp3 b/source/core/assets/sounds/mobBoss/patrickAttack.mp3 new file mode 100644 index 000000000..3199cb319 Binary files /dev/null and b/source/core/assets/sounds/mobBoss/patrickAttack.mp3 differ diff --git a/source/core/assets/sounds/mobBoss/patrickCast.mp3 b/source/core/assets/sounds/mobBoss/patrickCast.mp3 new file mode 100644 index 000000000..54aefc734 Binary files /dev/null and b/source/core/assets/sounds/mobBoss/patrickCast.mp3 differ diff --git a/source/core/assets/sounds/mobBoss/patrickHit.mp3 b/source/core/assets/sounds/mobBoss/patrickHit.mp3 new file mode 100644 index 000000000..f85da085c Binary files /dev/null and b/source/core/assets/sounds/mobBoss/patrickHit.mp3 differ diff --git a/source/core/assets/sounds/mobBoss/patrickScream.mp3 b/source/core/assets/sounds/mobBoss/patrickScream.mp3 new file mode 100644 index 000000000..002fdc8e7 Binary files /dev/null and b/source/core/assets/sounds/mobBoss/patrickScream.mp3 differ diff --git a/source/core/assets/sounds/mobBoss/patrickSpawn.mp3 b/source/core/assets/sounds/mobBoss/patrickSpawn.mp3 new file mode 100644 index 000000000..44dba4a8b Binary files /dev/null and b/source/core/assets/sounds/mobBoss/patrickSpawn.mp3 differ diff --git a/source/core/assets/sounds/mobBoss/patrickSpawn.wav b/source/core/assets/sounds/mobBoss/patrickSpawn.wav new file mode 100644 index 000000000..d7e959262 Binary files /dev/null and b/source/core/assets/sounds/mobBoss/patrickSpawn.wav differ diff --git a/source/core/assets/sounds/mobBoss/patrickSpell.mp3 b/source/core/assets/sounds/mobBoss/patrickSpell.mp3 new file mode 100644 index 000000000..7533e77c6 Binary files /dev/null and b/source/core/assets/sounds/mobBoss/patrickSpell.mp3 differ diff --git a/source/core/assets/sounds/mobBoss/patrickThunder.mp3 b/source/core/assets/sounds/mobBoss/patrickThunder.mp3 new file mode 100644 index 000000000..727f81244 Binary files /dev/null and b/source/core/assets/sounds/mobBoss/patrickThunder.mp3 differ diff --git a/source/core/assets/sounds/mobBoss/slimeJump.mp3 b/source/core/assets/sounds/mobBoss/slimeJump.mp3 new file mode 100644 index 000000000..00cae587e Binary files /dev/null and b/source/core/assets/sounds/mobBoss/slimeJump.mp3 differ diff --git a/source/core/assets/sounds/mobBoss/slimePop.mp3 b/source/core/assets/sounds/mobBoss/slimePop.mp3 new file mode 100644 index 000000000..bcb9106ab Binary files /dev/null and b/source/core/assets/sounds/mobBoss/slimePop.mp3 differ diff --git a/source/core/assets/sounds/mobBoss/slimeySplat.mp3 b/source/core/assets/sounds/mobBoss/slimeySplat.mp3 new file mode 100644 index 000000000..cca01ef3a Binary files /dev/null and b/source/core/assets/sounds/mobBoss/slimeySplat.mp3 differ diff --git a/source/core/assets/sounds/mobs/boneBreak.mp3 b/source/core/assets/sounds/mobs/boneBreak.mp3 new file mode 100644 index 000000000..2a6516871 Binary files /dev/null and b/source/core/assets/sounds/mobs/boneBreak.mp3 differ diff --git a/source/core/assets/sounds/mobs/fireWormRoar.mp3 b/source/core/assets/sounds/mobs/fireWormRoar.mp3 new file mode 100644 index 000000000..15f35dd2f Binary files /dev/null and b/source/core/assets/sounds/mobs/fireWormRoar.mp3 differ diff --git a/source/core/assets/sounds/mobs/fireWormRoar.wav b/source/core/assets/sounds/mobs/fireWormRoar.wav new file mode 100644 index 000000000..473bd941a Binary files /dev/null and b/source/core/assets/sounds/mobs/fireWormRoar.wav differ diff --git a/source/core/assets/sounds/mobs/waterQueenSpell.mp3 b/source/core/assets/sounds/mobs/waterQueenSpell.mp3 new file mode 100644 index 000000000..536cf8fce Binary files /dev/null and b/source/core/assets/sounds/mobs/waterQueenSpell.mp3 differ diff --git a/source/core/assets/sounds/mobs/wizardSpell.mp3 b/source/core/assets/sounds/mobs/wizardSpell.mp3 new file mode 100644 index 000000000..e40f8e427 Binary files /dev/null and b/source/core/assets/sounds/mobs/wizardSpell.mp3 differ diff --git a/source/core/src/main/com/csse3200/game/areas/ForestGameArea.java b/source/core/src/main/com/csse3200/game/areas/ForestGameArea.java index 95c51316e..b15be11e4 100644 --- a/source/core/src/main/com/csse3200/game/areas/ForestGameArea.java +++ b/source/core/src/main/com/csse3200/game/areas/ForestGameArea.java @@ -1,25 +1,23 @@ package com.csse3200.game.areas; import com.badlogic.gdx.audio.Music; -import com.badlogic.gdx.graphics.Texture; -import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.math.GridPoint2; import com.badlogic.gdx.math.Vector2; + +import com.csse3200.game.areas.terrain.TerrainComponent; import com.csse3200.game.components.ProjectileEffects; import com.csse3200.game.areas.terrain.TerrainFactory; import com.csse3200.game.areas.terrain.TerrainFactory.TerrainType; -import com.csse3200.game.components.TouchAttackComponent; +import com.csse3200.game.components.ProjectileEffects; import com.csse3200.game.entities.Entity; import com.csse3200.game.entities.factories.*; -import com.csse3200.game.physics.PhysicsLayer; -import com.csse3200.game.physics.components.HitboxComponent; import com.csse3200.game.utils.math.RandomUtils; import com.csse3200.game.services.ResourceService; import com.csse3200.game.services.ServiceLocator; import com.csse3200.game.components.gamearea.GameAreaDisplay; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.security.SecureRandom; import java.util.Random; import java.util.Timer; import java.util.TimerTask; @@ -36,7 +34,7 @@ public class ForestGameArea extends GameArea { private static final int NUM_MOBBOSS2=3; private static final int NUM_MOBBOSS1=1; - private Random random = new Random(); + private SecureRandom rand = new SecureRandom(); private int wave = 0; private Timer waveTimer; @@ -92,7 +90,6 @@ public class ForestGameArea extends GameArea { "images/towers/wallTower.png", "images/background/building2.png", "images/iso_grass_3.png", - "images/terrain_use.png", "images/Dusty_MoonBG.png", "images/economy/scrap.png", "images/economy/crystal.png", @@ -119,7 +116,17 @@ public class ForestGameArea extends GameArea { "images/towers/barrier.png", "images/towers/wall_tower.png", "images/towers/PierceTower.png", - "images/towers/RicochetTower.png" + "images/towers/RicochetTower.png", + "images/GrassTile/grass_tile_1.png", + "images/GrassTile/grass_tile_2.png", + "images/GrassTile/grass_tile_3.png", + "images/GrassTile/grass_tile_4.png", + "images/GrassTile/grass_tile_5.png", + "images/GrassTile/grass_tile_6.png", + "images/GrassTile/grass_tile_7.png", + "images/highlight_tile.png", + "images/mobboss/iceBaby.png" + }; private static final String[] forestTextureAtlases = { "images/economy/econ-tower.atlas", @@ -163,7 +170,8 @@ public class ForestGameArea extends GameArea { "images/towers/fireworks_tower.atlas", "images/towers/barrier.atlas", "images/towers/PierceTower.atlas", - "images/towers/RicochetTower.atlas" + "images/towers/RicochetTower.atlas", + "images/mobboss/iceBaby.atlas" }; private static final String[] forestSounds = { "sounds/Impact4.ogg", @@ -177,12 +185,39 @@ public class ForestGameArea extends GameArea { "sounds/projectiles/on_collision.mp3", "sounds/projectiles/explosion.mp3", "sounds/waves/wave-start/Wave_Start_Alarm.ogg", - "sounds/waves/wave-end/Wave_Over_01.ogg" + "sounds/waves/wave-end/Wave_Over_01.ogg", + "sounds/mobBoss/iceBabySound.mp3", + "sounds/mobBoss/mobSpawnStomp.mp3", + "sounds/mobBoss/iceBabyAOE.mp3", + "sounds/mobs/wizardSpell.mp3", + "sounds/mobs/waterQueenSpell.mp3", + "sounds/mobs/boneBreak.mp3", + "sounds/mobs/fireWormRoar.mp3", + "sounds/mobBoss/demonBreath.mp3", + "sounds/mobBoss/demonSpawn.wav", + "sounds/mobBoss/demonAttack.wav", + "sounds/mobBoss/demonBreathIn.mp3", + "sounds/mobBoss/demonLand.mp3", + "sounds/mobBoss/demonJump.mp3", + "sounds/mobBoss/demonHeal.mp3", + "sounds/mobBoss/demonCleave.mp3", + "sounds/mobBoss/demonDeath.mp3", + "sounds/mobBoss/slimeySplat.mp3", + "sounds/mobBoss/slimeJump.mp3", + "sounds/mobBoss/slimePop.mp3", + "sounds/mobBoss/patrickAttack.mp3", + "sounds/mobBoss/patrickAppear.mp3", + "sounds/mobBoss/patrickScream.mp3", + "sounds/mobBoss/patrickSpell.mp3", + "sounds/mobBoss/patrickSpawn.mp3", + "sounds/mobBoss/patrickCast.mp3", + "sounds/mobBoss/patrickThunder.mp3", + "sounds/mobBoss/patrickHit.mp3" }; private static final String backgroundMusic = "sounds/background/Sci-Fi1.ogg"; private static final String[] forestMusic = {backgroundMusic}; - private final TerrainFactory terrainFactory; +// private final TerrainFactory terrainFactory; private Entity player; private Entity waves; @@ -196,12 +231,10 @@ public class ForestGameArea extends GameArea { /** * Initialise this ForestGameArea to use the provided TerrainFactory. * - * @param terrainFactory TerrainFactory used to create the terrain for the GameArea. * @requires terrainFactory != null */ - public ForestGameArea(TerrainFactory terrainFactory) { + public ForestGameArea() { super(); - this.terrainFactory = terrainFactory; } /** @@ -235,23 +268,29 @@ private void spawnWave() { switch (wave) { case 1: case 2: - spawnFireWorm(); - spawnDragonKnight(); - - break; + spawnWaterQueen(); + spawnWizard(); + logger.info("Lol"); + + break; case 3: - spawnSkeleton(); - spawnWizard(); - // mobBoss2 = spawnMobBoss2(); - break; + spawnWaterSlime(); + spawnIceBaby(); + logger.info("Lol"); + // mobBoss2 = spawnMobBoss2(); + break; case 4: - spawnWaterQueen(); - spawnWaterSlime(); - // mobBoss2 = spawnMobBoss2(); - - break; + spawnFireWorm(); + // spawnDragonKnight(); + logger.info("Lol"); + // mobBoss2 = spawnMobBoss2(); + break; case 5: - spawnDemonBoss(); + case 6: + spawnSkeleton(); + case 7: + spawnDemonBoss(); + spawnPatrick(); default: // Handle other wave scenarios if needed break; @@ -273,18 +312,13 @@ public void create() { logger.info("Lol"); // Set up infrastructure for end game tracking - player = spawnPlayer(); +// player = spawnPlayer(); waves = WaveFactory.createWaves(); spawnEntity(waves); waves.getEvents().addListener("spawnWave", this::spawnMob); playMusic(); - //spawnXenoGrunts(); - //startWaveTimer(); - spawnScrap(); - spawnDeflectXenoGrunt(15, 5); - spawnSplittingXenoGrunt(15, 4); spawnScrap(); spawnTNTTower(); spawnWeaponTower(); @@ -306,8 +340,8 @@ private void displayUI() { private void spawnTerrain() { - terrain = terrainFactory.createTerrain(TerrainType.ALL_DEMO); - spawnEntity(new Entity().addComponent(terrain)); + terrain = ServiceLocator.getMapService().getComponent(); + spawnEntity(ServiceLocator.getMapService().getEntity()); // Terrain walls float tileSize = terrain.getTileSize(); @@ -340,47 +374,6 @@ private void spawnTerrain() { false); } - -// private void spawnBuilding1() { -// GridPoint2 minPos = new GridPoint2(0, 0); -// GridPoint2 maxPos = terrain.getMapBounds(0).sub(2, 2); -// -// for (int i = 0; i < NUM_BUILDINGS; i++) { -// GridPoint2 randomPos = RandomUtils.random(minPos, maxPos); -// Entity building1 = ObstacleFactory.createBuilding1(); -// spawnEntityAt(building1, randomPos, true, false); -// } -// } -// private void spawnBuilding2() { -// GridPoint2 minPos = new GridPoint2(0, 0); -// GridPoint2 maxPos = terrain.getMapBounds(0).sub(2, 2); -// -// for (int i = 0; i < NUM_BUILDINGS; i++) { -// GridPoint2 randomPos = RandomUtils.random(minPos, maxPos); -// Entity building2 = ObstacleFactory.createBuilding2(); -// spawnEntityAt(building2, randomPos, true, false); -// } -// } - - -// private void spawnMountains() { -// ArrayList fixedPositions = new ArrayList<>(); //Generating ArrayList -// -// fixedPositions.add(new GridPoint2(5, 8)); -// fixedPositions.add(new GridPoint2(12, 4)); -// fixedPositions.add(new GridPoint2(20, 10)); -// fixedPositions.add(new GridPoint2(33, 17)); -// -// for (GridPoint2 fixedPos : fixedPositions) { -// Entity tree = ObstacleFactory.createMountain(); -// spawnEntityAt(tree, fixedPos, true, false); -// } -// for (int i = 0; i < NUM_BUILDINGS; i++) { -// GridPoint2 randomPos = RandomUtils.random(minPos, maxPos); -// Entity building1 = ObstacleFactory.createBuilding1(); -// spawnEntityAt(building1, randomPos, true, false); -// } -// } private void spawnBuilding2() { GridPoint2 minPos = new GridPoint2(0, 0); @@ -406,28 +399,6 @@ private Entity spawnPlayer(GridPoint2 position) { return newPlayer; } -// private void spawnGhosts() { -// GridPoint2 minPos = new GridPoint2(0, 0); -// GridPoint2 maxPos = terrain.getMapBounds(0).sub(0, 2); -// -// for (int i = 0; i < NUM_GHOSTS; i++) { -// int fixedX = terrain.getMapBounds(0).x - 1; // Rightmost x-coordinate -// int randomY = MathUtils.random(0, maxPos.y); -// GridPoint2 randomPos = new GridPoint2(fixedX, randomY); -// Entity ghost = createGhost(player); -// spawnEntityAt(ghost, randomPos, true, true); -// } -// } - -// private Entity spawnMobBoss1() { -// GridPoint2 minPos = new GridPoint2(0, 0); -// GridPoint2 maxPos = terrain.getMapBounds(0).sub(2, 2); -// GridPoint2 randomPos -// = new GridPoint2(0, 0); -// Entity ghostKing = NPCFactory.createGhostKing(player); -// spawnEntityAt(ghostKing, randomPos, true, true); -// return ghostKing; -// } private void spawnDemonBoss() { Entity demon = MobBossFactory.createDemonBoss(); @@ -435,24 +406,19 @@ private void spawnDemonBoss() { } private void spawnPatrick() { - Entity patrick = MobBossFactory.createPatrickBoss(2500); + Entity patrick = MobBossFactory.createPatrickBoss(3000); spawnEntityAt(patrick, new GridPoint2(18, 5), true, false); } - private Entity spawnMobBoss1() { - int[] pickedLanes = random.ints(0, 8) - .distinct().limit(5).toArray(); - for (int i = 0; i < NUM_MOBBOSS1; i++) { - GridPoint2 randomPos = new GridPoint2(19, pickedLanes[i]); - mobBoss1 = MobBossFactory.createMobBoss1(pickedLanes[i]); - spawnEntityAt(mobBoss1, - randomPos, - true, - false); - } - return mobBoss1; + private void spawnPatrickDeath() { + Entity patrickDeath = MobBossFactory.patrickDead(); + spawnEntityAt(patrickDeath, new GridPoint2(18, 5), true, false); } + private void spawnIceBaby() { + Entity iceBaby = MobBossFactory.createIceBoss(); + spawnEntityAt(iceBaby, new GridPoint2(19, 5), true, false); + } /** * Spawns a projectile that only heads towards the enemies in its lane. @@ -508,29 +474,52 @@ public void spawnMob(String entity, GridPoint2 randomPos) { case "Xeno": mob = NPCFactory.createXenoGrunt(); break; - case "SplittingXeno": - mob = NPCFactory.createSplittingXenoGrunt(); + case "SplittingWaterSlime": + mob = NPCFactory.createSplittingWaterSlime(); break; case "DodgingDragon": mob = NPCFactory.createDodgingDragonKnight(); break; - case "DeflectXeno": - mob = NPCFactory.createDeflectXenoGrunt(); + case "DeflectWizard": + mob = NPCFactory.createDeflectWizard(); + break; + case "WaterQueen": + mob = NPCFactory.createWaterQueen(); + break; + case "FireWorm": + mob = NPCFactory.createFireWorm(); + break; + case "Skeleton": + mob = NPCFactory.createSkeleton(); + break; + case "IceBoss": + mob = MobBossFactory.createIceBoss(); + break; + case "DemonBoss": + mob = MobBossFactory.createDemonBoss(); + break; + case "PatrickBoss": + mob = MobBossFactory.createPatrickBoss(100); break; default: - mob = NPCFactory.createBaseNPC(); + mob = NPCFactory.createXenoGrunt(); + } + if (entity.contains("Boss")) { + mob.scaleHeight(5f); + mob.scaleWidth(5f); + } else { + mob.setScale(1.5f, 1.5f); } - mob.setScale(1.5f, 1.5f); spawnEntityAt(mob, randomPos, true, false); } // * TEMPORARY FOR TESTING - private void spawnSplittingXenoGrunt(int x, int y) { - GridPoint2 pos = new GridPoint2(x, y); - Entity xenoGrunt = NPCFactory.createSplittingXenoGrunt(); - xenoGrunt.setScale(1.5f, 1.5f); - spawnEntityAt(xenoGrunt, pos, true, true); - } + // private void spawnSplittingXenoGrunt(int x, int y) { + // GridPoint2 pos = new GridPoint2(x, y); + // Entity xenoGrunt = NPCFactory.createSplittingXenoGrunt(); + // xenoGrunt.setScale(1.5f, 1.5f); + // spawnEntityAt(xenoGrunt, pos, true, true); + // } // * TEMPORARY FOR TESTING private void spawnDodgingDragonKnight(int x, int y) { @@ -541,15 +530,17 @@ private void spawnDodgingDragonKnight(int x, int y) { } // * TEMPORARY FOR TESTING - private void spawnDeflectXenoGrunt(int x, int y) { + private void spawnDeflectWizard(int x, int y) { GridPoint2 pos = new GridPoint2(x, y); - Entity xenoGrunt = NPCFactory.createDeflectXenoGrunt(); + Entity xenoGrunt = NPCFactory.createDeflectWizard(); xenoGrunt.setScale(1.5f, 1.5f); spawnEntityAt(xenoGrunt, pos, true, true); } private void spawnFireWorm() { - int[] pickedLanes = random.ints(1, 7) + + int[] pickedLanes = rand.ints(0, ServiceLocator.getMapService().getHeight() ) + .distinct().limit(5).toArray(); for (int i = 0; i < NUM_GRUNTS; i++) { GridPoint2 randomPos = new GridPoint2(19, pickedLanes[i]); @@ -560,7 +551,8 @@ private void spawnFireWorm() { } private void spawnSkeleton() { - int[] pickedLanes = new Random().ints(1, 7) + + int[] pickedLanes = new Random().ints(0, ServiceLocator.getMapService().getHeight() ) .distinct().limit(5).toArray(); for (int i = 0; i < NUM_GRUNTS; i++) { GridPoint2 randomPos = new GridPoint2(19, pickedLanes[i]); @@ -571,29 +563,35 @@ private void spawnSkeleton() { } private void spawnDragonKnight() { - int[] pickedLanes = random.ints(1, 7) + + int[] pickedLanes = rand.ints(0, ServiceLocator.getMapService().getHeight() ) + .distinct().limit(5).toArray(); for (int i = 0; i < NUM_GRUNTS; i++) { GridPoint2 randomPos = new GridPoint2(19, pickedLanes[i]); - Entity fireWorm = NPCFactory.createDragonKnight(); + Entity fireWorm = NPCFactory.createDodgingDragonKnight(); fireWorm.setScale(1.5f, 1.5f); spawnEntityAt(fireWorm, randomPos, true, false); } } private void spawnWizard() { - int[] pickedLanes = new Random().ints(1, 7) + + int[] pickedLanes = rand.ints(0, ServiceLocator.getMapService().getHeight() ) + .distinct().limit(5).toArray(); for (int i = 0; i < NUM_GRUNTS; i++) { GridPoint2 randomPos = new GridPoint2(19, pickedLanes[i]); - Entity wizard = NPCFactory.createWizard(); + Entity wizard = NPCFactory.createDeflectWizard(); wizard.setScale(1.5f, 1.5f); spawnEntityAt(wizard, randomPos, true, false); } } private void spawnWaterQueen() { - int[] pickedLanes = new Random().ints(1, 7) + + int[] pickedLanes = new Random().ints(0, ServiceLocator.getMapService().getHeight() ) + .distinct().limit(5).toArray(); for (int i = 0; i < NUM_GRUNTS; i++) { GridPoint2 randomPos = new GridPoint2(19, pickedLanes[i]); @@ -604,16 +602,19 @@ private void spawnWaterQueen() { } private void spawnWaterSlime() { - int[] pickedLanes = new Random().ints(1, 7) + + int[] pickedLanes = new Random().ints(0, ServiceLocator.getMapService().getHeight() ) + .distinct().limit(5).toArray(); for (int i = 0; i < NUM_GRUNTS; i++) { GridPoint2 randomPos = new GridPoint2(19, pickedLanes[i]); - Entity waterSlime = NPCFactory.createWaterSlime(); + Entity waterSlime = NPCFactory.createSplittingWaterSlime(); waterSlime.setScale(1.5f, 1.5f); spawnEntityAt(waterSlime, randomPos, true, false); } } + // private Entity spawnGhostKing() { // GridPoint2 minPos = new GridPoint2(0, 0); // GridPoint2 maxPos = terrain.getMapBounds(0).sub(0, 0); @@ -625,12 +626,98 @@ private void spawnWaterSlime() { // return ghostKing; // // } + + /** + * Creates multiple projectiles that travel simultaneous. They all have same + * the starting point but different destinations. + * + * @param position The position of the Entity that's shooting the projectile. + * @param targetLayer The enemy layer of the "shooter". + * @param direction The direction the projectile should head towards. + * @param space The space between the projectiles' destination. + * @param speed The speed of the projectiles. + * @param quantity The amount of projectiles to spawn. + */ + private void spawnMultiProjectile(Vector2 position, short targetLayer, int direction, int space, Vector2 speed, int quantity) { + int half = quantity / 2; + for (int i = 0; i < quantity; i++) { + spawnProjectile(position, targetLayer, space * half, direction, speed); + --half; + } + } + + /** + * Returns projectile that can do an area of effect damage + * + * @param position The position of the Entity that's shooting the projectile. + * @param targetLayer The enemy layer of the "shooter". + * @param direction The direction the projectile should head towards. + * @param speed The speed of the projectiles. + * @param effect Type of effect. + * @param aoe Whether it is an aoe projectile. + */ + private void spawnEffectProjectile(Vector2 position, short targetLayer, int direction, Vector2 speed, + ProjectileEffects effect, boolean aoe) { + Entity Projectile = ProjectileFactory.createEffectProjectile(targetLayer, new Vector2(direction, position.y), speed, effect, aoe); + Projectile.setPosition(position); + spawnEntity(Projectile); + } + + /** + * Spawns a pierce fireball. + * Pierce fireball can go through targetlayers without disappearing but damage + * will still be applied. + * + * @param position The position of the Entity that's shooting the projectile. + * @param targetLayer The enemy layer of the "shooter". + * @param direction The direction the projectile should head towards. + * @param speed The speed of the projectiles. + */ + private void spawnPierceFireBall(Vector2 position, short targetLayer, int direction, Vector2 speed) { + Entity projectile = ProjectileFactory.createPierceFireBall(targetLayer, new Vector2(direction, position.y), speed); + projectile.setPosition(position); + spawnEntity(projectile); + } + + /** + * Spawns a ricochet fireball + * Ricochet fireballs bounce off targets with a specified maximum count of 3 + * Possible extensions: Make the bounce count flexible with a param. + * + * @param position The position of the Entity that's shooting the projectile. + * @param targetLayer The enemy layer of the "shooter". + * @param direction The direction the projectile should head towards. + * @param speed The speed of the projectiles. + */ + private void spawnRicochetFireball(Vector2 position, short targetLayer, int direction, Vector2 speed) { + // Bounce count set to 0. + Entity projectile = ProjectileFactory.createRicochetFireball(targetLayer, new Vector2(direction, position.y), speed, 0); + projectile.setPosition(position); + spawnEntity(projectile); + } + + /** + * Spawns a split firework fireball. + * Splits into mini projectiles that spreads out after collision. + * + * @param position The position of the Entity that's shooting the projectile. + * @param targetLayer The enemy layer of the "shooter". + * @param direction The direction the projectile should towards. + * @param speed The speed of the projectiles. + * @param amount The amount of projectiles appearing after collision. + */ + private void spawnSplitFireWorksFireBall(Vector2 position, short targetLayer, int direction, Vector2 speed, int amount) { + Entity projectile = ProjectileFactory.createSplitFireWorksFireball(targetLayer, new Vector2(direction, position.y), speed, amount); + projectile.setPosition(position); + spawnEntity(projectile); + } + private void spawnWeaponTower() { - GridPoint2 minPos = new GridPoint2(0, 2); - GridPoint2 maxPos = terrain.getMapBounds(0).sub(2, 2); + GridPoint2 minPos = new GridPoint2(0, 0); + GridPoint2 maxPos = terrain.getMapBounds(0).sub(5, 1); - for (int i = 0; i < NUM_WEAPON_TOWERS + 10; i++) { + for (int i = 0; i < NUM_WEAPON_TOWERS + 7 ; i++) { GridPoint2 randomPos1 = RandomUtils.random(minPos, maxPos); GridPoint2 randomPos2 = RandomUtils.random(minPos, maxPos); Entity wallTower = TowerFactory.createWallTower(); @@ -657,10 +744,10 @@ private void spawnDroidTowerAt(int x, int y) { } private void spawnTNTTower() { - GridPoint2 minPos = new GridPoint2(0, 2); - GridPoint2 maxPos = terrain.getMapBounds(0).sub(2, 2); + GridPoint2 minPos = new GridPoint2(0, 0); + GridPoint2 maxPos = terrain.getMapBounds(0).sub(5, 1); - for (int i = 0; i < NUM_WEAPON_TOWERS; i++) { + for (int i = 0; i < NUM_WEAPON_TOWERS + 5; i++) { GridPoint2 randomPos = RandomUtils.random(minPos, maxPos); Entity weaponTower = TowerFactory.createTNTTower(); spawnEntityAt(weaponTower, randomPos, true, true); @@ -702,13 +789,13 @@ private void spawnRicochetTower() { } private void spawnDroidTower() { - GridPoint2 minPos = new GridPoint2(0, 2); - GridPoint2 maxPos = terrain.getMapBounds(0).sub(2, 2); + GridPoint2 minPos = new GridPoint2(0, 0); + GridPoint2 maxPos = terrain.getMapBounds(0).sub(5, 1); - for (int i = 0; i < NUM_WEAPON_TOWERS; i++) { + for (int i = 0; i < NUM_WEAPON_TOWERS + 5; i++) { GridPoint2 randomPos = RandomUtils.random(minPos, maxPos); Entity weaponTower = TowerFactory.createDroidTower(); - spawnEntityAt(weaponTower, randomPos, true, true); + spawnEntityAt(weaponTower, randomPos, true, false); } } diff --git a/source/core/src/main/com/csse3200/game/areas/terrain/TerrainComponent.java b/source/core/src/main/com/csse3200/game/areas/terrain/TerrainComponent.java index 4e9f2f8ed..d1cc935aa 100644 --- a/source/core/src/main/com/csse3200/game/areas/terrain/TerrainComponent.java +++ b/source/core/src/main/com/csse3200/game/areas/terrain/TerrainComponent.java @@ -1,19 +1,29 @@ package com.csse3200.game.areas.terrain; -import com.badlogic.gdx.graphics.OrthographicCamera; +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.graphics.*; import com.badlogic.gdx.graphics.g2d.SpriteBatch; +import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.maps.tiled.TiledMap; import com.badlogic.gdx.maps.tiled.TiledMapRenderer; +import com.badlogic.gdx.maps.tiled.TiledMapTile; import com.badlogic.gdx.maps.tiled.TiledMapTileLayer; import com.badlogic.gdx.math.GridPoint2; import com.badlogic.gdx.math.Vector2; +import com.badlogic.gdx.math.Vector3; +import com.badlogic.gdx.utils.Timer; import com.csse3200.game.rendering.RenderComponent; +import com.csse3200.game.services.ResourceService; +import com.csse3200.game.services.ServiceLocator; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Render a tiled terrain for a given tiled map and orientation. A terrain is a map of tiles that * shows the 'ground' in the game. Enabling/disabling this component will show/hide the terrain. */ public class TerrainComponent extends RenderComponent { + private static final Logger logger = LoggerFactory.getLogger(TerrainComponent.class); private static final int TERRAIN_LAYER = 0; private final TiledMap tiledMap; @@ -21,6 +31,11 @@ public class TerrainComponent extends RenderComponent { private final OrthographicCamera camera; private final TerrainOrientation orientation; private final float tileSize; + private TiledMapTileLayer.Cell lastHoveredCell = null; + private TiledMapTile originalTile = null; + private TextureRegion originalRegion = null; + + public TerrainComponent( OrthographicCamera camera, @@ -33,6 +48,7 @@ public TerrainComponent( this.orientation = orientation; this.tileSize = tileSize; this.tiledMapRenderer = renderer; + } public Vector2 tileToWorldPosition(GridPoint2 tilePos) { @@ -70,6 +86,7 @@ public TiledMap getMap() { @Override public void draw(SpriteBatch batch) { tiledMapRenderer.setView(camera); + hoverHighlight(); tiledMapRenderer.render(); } @@ -89,6 +106,86 @@ public int getLayer() { return TERRAIN_LAYER; } + // TODO : This is just a visual effect that we might not need in the end but just keeping it here for now + public void colorTile(final int x, final int y) { + final TiledMapTileLayer tileLayer = (TiledMapTileLayer) tiledMap.getLayers().get(0); + final TiledMapTile originalTile = tileLayer.getCell(x, y).getTile(); + + ResourceService resourceService = ServiceLocator.getResourceService(); + + // Load all the tiles into an array + final TerrainTile[] terrainTiles = new TerrainTile[7]; + for (int i = 0; i < 7; i++) { + Texture texture = resourceService.getAsset("images/GrassTile/grass_tile_" + (i + 1) + ".png", Texture.class); + terrainTiles[i] = new TerrainTile(new TextureRegion(texture)); + } + + final float interval = 0.2f; // Switch every 0.2 seconds + final float duration = 1.4f; // 7 images * 0.2 seconds each + + Timer.schedule(new Timer.Task() { + float timeElapsed = 0.0f; + + @Override + public void run() { + timeElapsed += interval; + + if (timeElapsed >= duration) { + tileLayer.getCell(x, y).setTile(originalTile); // Reset to original tile after the total duration + this.cancel(); // End the timer task + } else { + int index = (int) (timeElapsed / interval); + tileLayer.getCell(x, y).setTile(terrainTiles[index]); + } + } + }, 0, interval, (int) (duration / interval) - 1); // Scheduling the task + } + + /** + * Highlights the tile under the mouse cursor by changing its texture region. + * + * When hovering over a tile on the terrain, this method performs the following: + * + * 1-Unprojects the mouse's screen position to the world position using the camera. + * 2-Calculates the tile's coordinates based on the world position and tile size. + * 3-If there was a previously highlighted tile, it restores its original texture region. + * 4-If the current tile under the mouse is different from the last hovered tile, it updates. + * 5-the tile's texture region to a highlight texture. + * 6-Updates the reference to the last hovered tile. + * + * @see TiledMapTileLayer + * @see TiledMapTileLayer.Cell + * @see TextureRegion + */ + + public void hoverHighlight() { + Vector3 mousePos = new Vector3(Gdx.input.getX(), Gdx.input.getY(), 0); + camera.unproject(mousePos); + + + int tileX = (int) (mousePos.x / tileSize); + int tileY = (int) (mousePos.y / tileSize); + + final TiledMapTileLayer tileLayer = (TiledMapTileLayer) tiledMap.getLayers().get(0); + TiledMapTileLayer.Cell currentCell = tileLayer.getCell(tileX, tileY); + + + if (lastHoveredCell != null && lastHoveredCell != currentCell && originalRegion != null) { + lastHoveredCell.getTile().setTextureRegion(originalRegion); + } + + + if (currentCell != null && currentCell != lastHoveredCell) { + originalRegion = currentCell.getTile().getTextureRegion(); + + ResourceService resourceService = ServiceLocator.getResourceService(); + Texture texture = resourceService.getAsset("images/highlight_tile.png", Texture.class); + currentCell.getTile().setTextureRegion(new TextureRegion(texture)); + } + + lastHoveredCell = currentCell; + } + public enum TerrainOrientation { ORTHOGONAL, ISOMETRIC, diff --git a/source/core/src/main/com/csse3200/game/areas/terrain/TerrainFactory.java b/source/core/src/main/com/csse3200/game/areas/terrain/TerrainFactory.java index d6377e4a1..dfbd4f782 100644 --- a/source/core/src/main/com/csse3200/game/areas/terrain/TerrainFactory.java +++ b/source/core/src/main/com/csse3200/game/areas/terrain/TerrainFactory.java @@ -1,6 +1,7 @@ package com.csse3200.game.areas.terrain; import com.badlogic.gdx.graphics.OrthographicCamera; +import com.badlogic.gdx.graphics.Pixmap; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.maps.tiled.TiledMap; @@ -8,6 +9,7 @@ import com.badlogic.gdx.maps.tiled.TiledMapTileLayer; import com.badlogic.gdx.maps.tiled.TiledMapTileLayer.Cell; import com.badlogic.gdx.maps.tiled.renderers.OrthogonalTiledMapRenderer; +import com.badlogic.gdx.maps.tiled.tiles.StaticTiledMapTile; import com.badlogic.gdx.math.GridPoint2; import com.csse3200.game.components.CameraComponent; import com.csse3200.game.services.ResourceService; @@ -81,7 +83,7 @@ private TerrainComponent createTerrain(float tileWorldSize, TextureRegion terrai * @return A TiledMapRenderer instance suitable for the given map and scale. */ - private TiledMapRenderer createRenderer(TiledMap tiledMap, float tileScale) { + public TiledMapRenderer createRenderer(TiledMap tiledMap, float tileScale) { switch (orientation) { case ORTHOGONAL: return new OrthogonalTiledMapRenderer(tiledMap, tileScale); @@ -100,9 +102,8 @@ private TiledMapRenderer createRenderer(TiledMap tiledMap, float tileScale) { private TiledMap createTiles(GridPoint2 tileSize, TextureRegion terrain) { TiledMap tiledMap = new TiledMap(); - TerrainTile Tile = new TerrainTile(terrain); - TiledMapTileLayer Layer = new TiledMapTileLayer(20, 8, tileSize.x, tileSize.y); - fillInvisibleTiles(Layer, new GridPoint2(20, 8), Tile); + TiledMapTileLayer Layer = new TiledMapTileLayer(20, 6, tileSize.x, tileSize.y); + fillInvisibleTiles(Layer, new GridPoint2(20, 6), terrain); tiledMap.getLayers().add(Layer); return tiledMap; @@ -114,11 +115,12 @@ private TiledMap createTiles(GridPoint2 tileSize, TextureRegion terrain) { * * @param layer The tile layer to fill. * @param mapSize The size of the map in tiles. - * @param tile The tile used to fill the layer. + * @param terrain The tile used to fill the layer. */ - private void fillInvisibleTiles(TiledMapTileLayer layer, GridPoint2 mapSize, TerrainTile tile) { + private void fillInvisibleTiles(TiledMapTileLayer layer, GridPoint2 mapSize, TextureRegion terrain) { for (int x = 0; x < mapSize.x; x++) { - for (int y = 2; y < mapSize.y; y++) { + for (int y = 0; y < mapSize.y; y++) { + TerrainTile tile = new TerrainTile(terrain); Cell cell = new Cell(); cell.setTile(tile); layer.setCell(x, y, cell); diff --git a/source/core/src/main/com/csse3200/game/components/CombatStatsComponent.java b/source/core/src/main/com/csse3200/game/components/CombatStatsComponent.java index aa5ccc5d5..09612adc3 100644 --- a/source/core/src/main/com/csse3200/game/components/CombatStatsComponent.java +++ b/source/core/src/main/com/csse3200/game/components/CombatStatsComponent.java @@ -6,9 +6,9 @@ import com.csse3200.game.entities.configs.ProjectileConfig; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.security.SecureRandom; import java.util.ArrayList; import java.util.Currency; -import java.util.Random; /** * Component used to store information related to combat such as health, attack, etc. Any entities @@ -39,7 +39,7 @@ public class CombatStatsComponent extends Component { private ArrayList drops; private ArrayList closeRangeAbilities; private ArrayList longRangeAbilities; //TODO change String to Projectiles - private Random rand = new Random(); + private SecureRandom rand = new SecureRandom(); public CombatStatsComponent(int health, int baseAttack) { setHealth(health); diff --git a/source/core/src/main/com/csse3200/game/components/SplitFireworksComponent.java b/source/core/src/main/com/csse3200/game/components/SplitFireworksComponent.java index c8a578d88..0a53d7d4b 100644 --- a/source/core/src/main/com/csse3200/game/components/SplitFireworksComponent.java +++ b/source/core/src/main/com/csse3200/game/components/SplitFireworksComponent.java @@ -60,7 +60,7 @@ private void onCollisionEnd(Fixture me, Fixture other) { // * RIGHT NOW TARGET IS NPC, SUBJECT TO CHANGE // Speed is a bit faster than normal but can change. Entity newProjectile = ProjectileFactory.createFireworks(PhysicsLayer.NPC, - new Vector2(100, (float) (projectile.getPosition().y + (newDirection - (TOTAL_RANGE/2)))), new Vector2(3f, 3f)); + new Vector2(100, (float) (projectile.getPosition().y + (newDirection - (double) (TOTAL_RANGE/2)))), new Vector2(3f, 3f)); newProjectile.setPosition(newXPosition, (float) projectile.getPosition().y); diff --git a/source/core/src/main/com/csse3200/game/components/bosses/DemonAnimationController.java b/source/core/src/main/com/csse3200/game/components/bosses/DemonAnimationController.java index 764b415a4..56b2ca350 100644 --- a/source/core/src/main/com/csse3200/game/components/bosses/DemonAnimationController.java +++ b/source/core/src/main/com/csse3200/game/components/bosses/DemonAnimationController.java @@ -1,10 +1,37 @@ package com.csse3200.game.components.bosses; +import com.badlogic.gdx.audio.Sound; import com.csse3200.game.components.Component; import com.csse3200.game.rendering.AnimationRenderComponent; +import com.csse3200.game.services.ServiceLocator; public class DemonAnimationController extends Component { AnimationRenderComponent animator; +// private static final String DEMON_JUMP = "sounds/mobBoss/demonBreath.mp3"; + Sound demonBreath = ServiceLocator.getResourceService().getAsset( + "sounds/mobBoss/demonBreath.mp3", Sound.class); + Sound demonSpawn = ServiceLocator.getResourceService().getAsset( + "sounds/mobBoss/demonSpawn.wav", Sound.class); + Sound demonAttack = ServiceLocator.getResourceService().getAsset( + "sounds/mobBoss/demonAttack.wav", Sound.class); + Sound demonBreathIn = ServiceLocator.getResourceService().getAsset( + "sounds/mobBoss/demonBreathIn.mp3", Sound.class); + Sound demonLand = ServiceLocator.getResourceService().getAsset( + "sounds/mobBoss/demonLand.mp3", Sound.class); + Sound demonRoar = ServiceLocator.getResourceService().getAsset( + "sounds/mobBoss/demonJump.mp3", Sound.class); + Sound demonHeal = ServiceLocator.getResourceService().getAsset( + "sounds/mobBoss/demonHeal.mp3", Sound.class); + Sound demonCleave = ServiceLocator.getResourceService().getAsset( + "sounds/mobBoss/demonCleave.mp3", Sound.class); + Sound demonDeath = ServiceLocator.getResourceService().getAsset( + "sounds/mobBoss/demonDeath.mp3", Sound.class); + Sound slimeySplat = ServiceLocator.getResourceService().getAsset( + "sounds/mobBoss/slimeySplat.mp3", Sound.class); + Sound slimeJump = ServiceLocator.getResourceService().getAsset( + "sounds/mobBoss/slimeJump.mp3", Sound.class); + Sound slimePop = ServiceLocator.getResourceService().getAsset( + "sounds/mobBoss/slimePop.mp3", Sound.class); /** * Creation call for a DemonAnimationController, fetches the animationRenderComponent that this controller will @@ -14,31 +41,119 @@ public class DemonAnimationController extends Component { public void create() { super.create(); animator = entity.getComponent(AnimationRenderComponent.class); - registerAnimationListener("demon_walk"); - registerAnimationListener("demon_cleave"); - registerAnimationListener("demon_take_hit"); - registerAnimationListener("demon_idle"); - registerAnimationListener("demon_death"); - registerAnimationListener("demon_cast_spell"); - registerAnimationListener("demon_fire_breath"); - registerAnimationListener("demon_smash"); - registerAnimationListener("demon_take_hit"); - registerAnimationListener("idle"); - registerAnimationListener("move"); - registerAnimationListener("projectile_explosion"); - registerAnimationListener("projectile_idle"); - registerAnimationListener("take_hit"); - registerAnimationListener("transform"); - registerAnimationListener("transform_reverse"); + entity.getEvents().addListener("demon_walk", this::demonWalk); + entity.getEvents().addListener("demon_cleave", this::demonCleave); + entity.getEvents().addListener("demon_idle", this::demonIdle); + entity.getEvents().addListener("demon_death", this::demonDeath); + entity.getEvents().addListener("demon_cast_spell", this::demonCastSpell); + entity.getEvents().addListener("demon_fire_breath", this::demonFireBreath); + entity.getEvents().addListener("demon_smash", this::demonSmash); + entity.getEvents().addListener("demon_take_hit", this::demonTakeHit); + entity.getEvents().addListener("idle", this::idle); + entity.getEvents().addListener("move", this::move); + entity.getEvents().addListener("projectile_explosion", this::projectileExplosion); + entity.getEvents().addListener("projectile_idle", this::projectileIdle); + entity.getEvents().addListener("take_hit", this::takeHit); + entity.getEvents().addListener("transform", this::transform); + entity.getEvents().addListener("demon_spawn_sound", this::demonSpawnSound); + entity.getEvents().addListener("demon_attack_sound", this::demonAttackSound); + entity.getEvents().addListener("demon_breath_in_sound", this::demonBreathInSound); + entity.getEvents().addListener("demon_landing_sound", this::demonLandSound); + entity.getEvents().addListener("demon_roar_sound", this::demonRoarSound); + entity.getEvents().addListener("demon_heal_sound", this::demonHealSound); + entity.getEvents().addListener("demon_cleave_sound", this::demonCleaveSound); + entity.getEvents().addListener("demon_death_sound", this::demonDeathSound); + entity.getEvents().addListener("slimey_splat_sound", this::slimeySplatSound); + entity.getEvents().addListener("slime_jump_sound", this::slimeJumpSound); + entity.getEvents().addListener("slime_pop_sound", this::slimePopSound); } - private void registerAnimationListener(String animationName) { - if (animationName.equals("transform_reverse")) { - entity.getEvents().addListener(animationName, () -> - animator.startAnimation("transform")); - } else { - entity.getEvents().addListener(animationName, () -> - animator.startAnimation(animationName)); - } + private void demonWalk() { + animator.startAnimation("demon_walk"); + } + private void demonCleave() { + animator.startAnimation("demon_cleave"); + } + private void demonIdle() { + animator.startAnimation("demon_idle"); + } + private void demonDeath() { + animator.startAnimation("demon_death"); + } + private void demonCastSpell() { + animator.startAnimation("demon_cast_spell"); + } + private void demonFireBreath() { + animator.startAnimation("demon_fire_breath"); + demonBreath.setVolume(1000,5.5f); + demonBreath.play(); + } + private void demonSmash() { + animator.startAnimation("demon_smash"); + } + private void demonTakeHit() { + animator.startAnimation("demon_take_hit"); + } + private void idle() { + animator.startAnimation("idle"); + } + private void move() { + animator.startAnimation("move"); + } + private void projectileExplosion() { + animator.startAnimation("projectile_explosion"); + } + private void projectileIdle() { + animator.startAnimation("projectile_idle"); + } + private void takeHit() { + animator.startAnimation("take_hit"); + } + private void transform() { + animator.startAnimation("transform"); + } + private void demonSpawnSound() { + demonSpawn.setVolume(1000,5.5f); + demonSpawn.play(); + } + private void demonAttackSound() { + demonAttack.setVolume(1000,5.5f); + demonAttack.play(); + } + private void demonBreathInSound() { + demonBreathIn.setVolume(1000,5.5f); + demonBreathIn.play(); + } + private void demonLandSound() { + demonLand.setVolume(1000,5.5f); + demonLand.play(); + } + private void demonRoarSound() { + demonRoar.setVolume(1000,5.5f); + demonRoar.play(); + } + private void demonHealSound() { + demonHeal.setVolume(1000,5.5f); + demonHeal.play(); + } + private void demonCleaveSound() { + demonCleave.setVolume(1000,5.5f); + demonCleave.play(); + } + private void demonDeathSound() { + demonDeath.setVolume(1000,5.5f); + demonDeath.play(); + } + private void slimeySplatSound() { + slimeySplat.setVolume(1000,5.5f); + slimeySplat.play(); + } + private void slimeJumpSound() { + slimeJump.setVolume(1000,5.5f); + slimeJump.play(); + } + private void slimePopSound() { + slimePop.setVolume(1000,5.5f); + slimePop.play(); } } diff --git a/source/core/src/main/com/csse3200/game/components/bosses/IceBabyAnimationController.java b/source/core/src/main/com/csse3200/game/components/bosses/IceBabyAnimationController.java new file mode 100644 index 000000000..96672a688 --- /dev/null +++ b/source/core/src/main/com/csse3200/game/components/bosses/IceBabyAnimationController.java @@ -0,0 +1,94 @@ +package com.csse3200.game.components.bosses; + +import com.csse3200.game.components.Component; +import com.csse3200.game.rendering.AnimationRenderComponent; +import com.badlogic.gdx.audio.Sound; +import com.csse3200.game.services.ServiceLocator; + +public class IceBabyAnimationController extends Component { + AnimationRenderComponent animator; + + /** Animation constants*/ + private static final String IDLE_ANIM = "idle"; + private static final String ATK1_ANIM = "1_atk"; + private static final String ATK2_ANIM = "2_atk"; + private static final String ATK3_ANIM = "3_atk"; + private static final String DEATH_ANIM = "death"; + private static final String INTRO_ANIM = "intro_or_revive"; + private static final String STAGGER_ANIM = "stagger"; + private static final String TAKEHIT_ANIM = "take_hit"; + private static final String WALK_ANIM = "walk"; + + /** Event name constants*/ + private static final String IDLE = "startIdle"; + private static final String ATK1 = "start1_atk"; + private static final String ATK2 = "start2_atk"; + private static final String ATK3 = "start3_atk"; + private static final String DEATH = "startDeath"; + private static final String INTRO = "startIntro_or_revive"; + private static final String STAGGER = "startStagger"; + private static final String TAKEHIT = "startTake_hit"; + private static final String WALK = "startWalk"; + + /** Sound variables */ + private static final String SPAWN_SOUND = "sounds/mobBoss/iceBabySound.mp3"; + Sound spawnSound = ServiceLocator.getResourceService().getAsset( + SPAWN_SOUND, Sound.class); + private static final String MOB_SPAWN_SOUND = "sounds/mobBoss/mobSpawnStomp.mp3"; + Sound mobSpawnSound = ServiceLocator.getResourceService().getAsset( + MOB_SPAWN_SOUND, Sound.class); + private static final String AOE_SOUND = "sounds/mobBoss/iceBabyAOE.mp3"; + Sound AOESound = ServiceLocator.getResourceService().getAsset( + AOE_SOUND, Sound.class); + + @Override + public void create() { + super.create(); + animator = this.entity.getComponent(AnimationRenderComponent.class); + entity.getEvents().addListener(IDLE, this::animateIdle); + entity.getEvents().addListener(ATK1, this::animateATK1); + entity.getEvents().addListener(ATK2, this::animateATK2); + entity.getEvents().addListener(ATK3, this::animateATK3); + entity.getEvents().addListener(DEATH, this::animateDeath); + entity.getEvents().addListener(INTRO, this::animateIntro); + entity.getEvents().addListener(STAGGER, this::animateStagger); + entity.getEvents().addListener(TAKEHIT, this::animateTakeHit); + entity.getEvents().addListener(WALK, this::animateWalk); + } + + void animateIdle() { + animator.startAnimation(IDLE_ANIM); + } + void animateATK1() { + animator.startAnimation(ATK1_ANIM); + } + void animateATK2() { + animator.startAnimation(ATK2_ANIM); + //volume does not work + mobSpawnSound.setVolume(1000, 5.5f); + mobSpawnSound.play(); + } + void animateATK3() { + animator.startAnimation(ATK3_ANIM); + AOESound.setVolume(1000, 5.5f); + AOESound.play(); + } + void animateDeath() { + animator.startAnimation(DEATH_ANIM); + } + void animateIntro() { + animator.startAnimation(INTRO_ANIM); + spawnSound.setVolume(1000, 5.5f); + spawnSound.play(); + } + void animateTakeHit() { + animator.startAnimation(TAKEHIT_ANIM); + } + void animateStagger() { + animator.startAnimation(STAGGER_ANIM); + } + void animateWalk() { + animator.startAnimation(WALK_ANIM); + } + +} diff --git a/source/core/src/main/com/csse3200/game/components/bosses/PatrickAnimationController.java b/source/core/src/main/com/csse3200/game/components/bosses/PatrickAnimationController.java index 597e6235a..e2349d514 100644 --- a/source/core/src/main/com/csse3200/game/components/bosses/PatrickAnimationController.java +++ b/source/core/src/main/com/csse3200/game/components/bosses/PatrickAnimationController.java @@ -1,10 +1,28 @@ package com.csse3200.game.components.bosses; +import com.badlogic.gdx.audio.Sound; import com.csse3200.game.components.Component; import com.csse3200.game.rendering.AnimationRenderComponent; +import com.csse3200.game.services.ServiceLocator; public class PatrickAnimationController extends Component { AnimationRenderComponent animator; + Sound patrickAttack = ServiceLocator.getResourceService().getAsset( + "sounds/mobBoss/patrickAttack.mp3", Sound.class); + Sound patrickAppear = ServiceLocator.getResourceService().getAsset( + "sounds/mobBoss/patrickAppear.mp3", Sound.class); + Sound patrickScream = ServiceLocator.getResourceService().getAsset( + "sounds/mobBoss/patrickScream.mp3", Sound.class); + Sound patrickSpell = ServiceLocator.getResourceService().getAsset( + "sounds/mobBoss/patrickSpell.mp3", Sound.class); + Sound patrickSpawn = ServiceLocator.getResourceService().getAsset( + "sounds/mobBoss/patrickSpawn.mp3", Sound.class); + Sound patrickCast = ServiceLocator.getResourceService().getAsset( + "sounds/mobBoss/patrickCast.mp3", Sound.class); + Sound patrickThunder = ServiceLocator.getResourceService().getAsset( + "sounds/mobBoss/patrickThunder.mp3", Sound.class); + Sound patrickHit = ServiceLocator.getResourceService().getAsset( + "sounds/mobBoss/patrickHit.mp3", Sound.class); /** * Creation call for a DemonAnimationController, fetches the animationRenderComponent that this controller will @@ -14,17 +32,69 @@ public class PatrickAnimationController extends Component { public void create() { super.create(); animator = entity.getComponent(AnimationRenderComponent.class); - registerAnimationListener("patrick_attack"); - registerAnimationListener("patrick_cast"); - registerAnimationListener("patrick_death"); - registerAnimationListener("patrick_hurt"); - registerAnimationListener("patrick_idle"); - registerAnimationListener("patrick_spell"); - registerAnimationListener("patrick_walk"); + entity.getEvents().addListener("patrick_attack", this::patrickAttack); + entity.getEvents().addListener("patrick_cast", this::patrickCast); + entity.getEvents().addListener("patrick_death", this::patrickDeath); + entity.getEvents().addListener("patrick_hurt", this::patrickHurt); + entity.getEvents().addListener("patrick_idle", this::patrickIdle); + entity.getEvents().addListener("patrick_spell", this::patrickSpell); + entity.getEvents().addListener("patrick_walk", this::patrickWalk); + entity.getEvents().addListener("patrick_appear_sound", this::patrickAppearSound); + entity.getEvents().addListener("patrick_scream_sound", this::patrickScreamSound); + entity.getEvents().addListener("patrick_spawn_sound", this::patrickSpawnSound); + entity.getEvents().addListener("patrick_cast_sound", this::patrickCastSound); + entity.getEvents().addListener("patrick_thunder_sound", this::patrickThunderSound); + entity.getEvents().addListener("patrick_hit_sound", this::patrickHitSound); + } - private void registerAnimationListener(String animationName) { - entity.getEvents().addListener(animationName, () -> - animator.startAnimation(animationName)); + private void patrickAttack() { + animator.startAnimation("patrick_attack"); + patrickAttack.setVolume(1000, 5.5f); + patrickAttack.play(); + } + private void patrickCast() { + animator.startAnimation("patrick_cast"); + } + private void patrickDeath() { + animator.startAnimation("patrick_death"); + } + private void patrickHurt() { + animator.startAnimation("patrick_hurt"); + } + private void patrickIdle() { + animator.startAnimation("patrick_idle"); + } + private void patrickSpell() { + animator.startAnimation("patrick_spell"); + patrickSpell.setVolume(1000, 5.5f); + patrickSpell.play(); + } + private void patrickWalk() { + animator.startAnimation("patrick_walk"); + } + private void patrickAppearSound() { + patrickAppear.setVolume(1000, 5.5f); + patrickAppear.play(); + } + private void patrickScreamSound() { + patrickScream.setVolume(1000, 5.5f); + patrickScream.play(); + } + private void patrickSpawnSound() { + patrickSpawn.setVolume(1000, 5.5f); + patrickSpawn.play(); + } + private void patrickCastSound() { + patrickCast.setVolume(1000, 5.5f); + patrickCast.play(); + } + private void patrickThunderSound() { + patrickThunder.setVolume(1000, 5.5f); + patrickThunder.play(); + } + private void patrickHitSound() { + patrickHit.setVolume(1000, 5.5f); + patrickHit.play(); } } \ No newline at end of file diff --git a/source/core/src/main/com/csse3200/game/components/npc/DeflectingComponent.java b/source/core/src/main/com/csse3200/game/components/npc/DeflectingComponent.java index 8ebd3c50a..ab5aa645e 100644 --- a/source/core/src/main/com/csse3200/game/components/npc/DeflectingComponent.java +++ b/source/core/src/main/com/csse3200/game/components/npc/DeflectingComponent.java @@ -53,7 +53,6 @@ public DeflectingComponent(short targetLayer, short dmgLayer, @Override public void create() { entity.getEvents().addListener("collisionStart", this::deflectProj); - System.out.println("CREATED"); hitboxComponent = entity.getComponent(HitboxComponent.class); maxHealth = entity.getComponent(CombatStatsComponent.class) .getMaxHealth(); @@ -66,16 +65,17 @@ public void update() { /** * Deflects projectile to the opposite direction - * @param me Self entity fixture + * + * @param me Self entity fixture * @param other Colliding projectile fixture. */ private void deflectProj(Fixture me, Fixture other) { - // If self fixture does not match or the colliding target + // If self fixture does not match to the colliding target return; if (hitboxComponent.getFixture() != me || !PhysicsLayer.contains(targetLayer, other.getFilterData().categoryBits)) return; - if (deflectLimitAmount-- <= 0) { + if (deflectLimitAmount-- <= 0) { // Reached deflect limit amt, return. entity.getComponent(this.getClass()).setEnabled(false); // reset health resetHealth(); @@ -85,17 +85,20 @@ private void deflectProj(Fixture me, Fixture other) { // Obtain projectile entity. Entity projectile = ((BodyUserData) other.getBody().getUserData()).entity; - // projectile.getComponent(TouchAttackComponent.class).setEnabled(false); - // Disposes all tasks for the curr projectile. At this curr time, it assumes // projectile only has one significant task, and that is the TrajectTask. + projectile.getComponent(AITaskComponent.class).dispose(); // stop task projectile.getComponent(AITaskComponent.class).disposeAll(); // Obtain current direction of projectile Vector2 direction = projectile.getComponent( PhysicsMovementComponent.class).getTarget(); - // Add new traject task with the target in the opposite x-direction. + // Rare occurence that the direction is null if target isn't set. + if (direction == null) + return; + + // // Add new traject task with the target in the opposite x-direction. projectile.getComponent(AITaskComponent.class) .addTask(new TrajectTask(new Vector2(-direction.x, direction.y))); @@ -106,6 +109,7 @@ private void deflectProj(Fixture me, Fixture other) { // Change target layer of projectile. projectile.getComponent(TouchAttackComponent.class) .setTargetLayer(dmgLayer); + entity.getEvents().trigger("shootStart"); // Make sure projectile is not deleted in the next frame. projectile.setFlagForDelete(false); diff --git a/source/core/src/main/com/csse3200/game/components/npc/DodgingComponent.java b/source/core/src/main/com/csse3200/game/components/npc/DodgingComponent.java index bada67e3c..9e38bcc19 100644 --- a/source/core/src/main/com/csse3200/game/components/npc/DodgingComponent.java +++ b/source/core/src/main/com/csse3200/game/components/npc/DodgingComponent.java @@ -27,9 +27,8 @@ public class DodgingComponent extends Component { private final RaycastHit hit = new RaycastHit(); private short targetLayer; private float rangeDetection; - private float dodgeSpeed = 1.75f; - // Original entity y's speed - private float originalSpeed; + private float dodgeSpeed = 1.75f; + private float originalSpeed; // Original entity vertical speed private PhysicsEngine physics; // Sometimes the raycast mechanic doesn't detect the other entity because of the @@ -37,6 +36,7 @@ public class DodgingComponent extends Component { // top and bottom detection is also taken care of, ensuring the entity will // dodge. private static final float Y_OFFSET_MOB_DETECTION = 0.35f; + public static final String DODGE_EVENT = "dodgeIncomingEntity"; /** * Initialises a component that dodges an incoming entity based on its target @@ -78,7 +78,7 @@ public DodgingComponent(short targetLayer, float rangeDetection, float dodgeSpee @Override public void create() { physics = ServiceLocator.getPhysicsService().getPhysics(); - entity.getEvents().addListener("dodgeIncomingEntity", this::changeTraverseDirection); + entity.getEvents().addListener(DODGE_EVENT, this::changeTraverseDirection); originalSpeed = entity.getComponent(PhysicsMovementComponent.class).getSpeed().y; } diff --git a/source/core/src/main/com/csse3200/game/components/npc/DragonKnightAnimationController.java b/source/core/src/main/com/csse3200/game/components/npc/DragonKnightAnimationController.java index 35ef7fe1e..c93e44cb9 100644 --- a/source/core/src/main/com/csse3200/game/components/npc/DragonKnightAnimationController.java +++ b/source/core/src/main/com/csse3200/game/components/npc/DragonKnightAnimationController.java @@ -4,8 +4,7 @@ import com.csse3200.game.components.Component; import com.csse3200.game.rendering.AnimationRenderComponent; import com.csse3200.game.services.ServiceLocator; - -import java.util.Random; +import java.security.SecureRandom; /** * This class listens to events relevant to a ghost entity's state and plays the animation when one @@ -17,7 +16,7 @@ public class DragonKnightAnimationController extends Component { // Sound onCollisionSound = ServiceLocator.getResourceService().getAsset( // COLLISION_SFX, Sound.class); AnimationRenderComponent animator; - Random rand = new Random(); + private SecureRandom rand = new SecureRandom(); @Override public void create() { diff --git a/source/core/src/main/com/csse3200/game/components/npc/FireWormAnimationController.java b/source/core/src/main/com/csse3200/game/components/npc/FireWormAnimationController.java index ff2855322..fd8f80bd6 100644 --- a/source/core/src/main/com/csse3200/game/components/npc/FireWormAnimationController.java +++ b/source/core/src/main/com/csse3200/game/components/npc/FireWormAnimationController.java @@ -4,8 +4,7 @@ import com.csse3200.game.components.Component; import com.csse3200.game.rendering.AnimationRenderComponent; import com.csse3200.game.services.ServiceLocator; - -import java.util.Random; +import java.security.SecureRandom; /** * This class listens to events relevant to a ghost entity's state and plays the animation when one @@ -17,7 +16,11 @@ public class FireWormAnimationController extends Component { // Sound onCollisionSound = ServiceLocator.getResourceService().getAsset( // COLLISION_SFX, Sound.class); AnimationRenderComponent animator; - Random rand = new Random(); + private SecureRandom rand = new SecureRandom(); + + private static final String ATTACK_SOUND = "sounds/mobs/fireWormRoar.mp3"; + Sound attackSound = ServiceLocator.getResourceService().getAsset( + ATTACK_SOUND, Sound.class); @Override public void create() { @@ -35,6 +38,8 @@ void animateWalk() { void animateAttack() { animator.startAnimation("fire_worm_attack"); + attackSound.setVolume(1000, 5.5f); + attackSound.play(); } void animateDeath() { diff --git a/source/core/src/main/com/csse3200/game/components/npc/SkeletonAnimationController.java b/source/core/src/main/com/csse3200/game/components/npc/SkeletonAnimationController.java index 0a219b3c6..cf6712102 100644 --- a/source/core/src/main/com/csse3200/game/components/npc/SkeletonAnimationController.java +++ b/source/core/src/main/com/csse3200/game/components/npc/SkeletonAnimationController.java @@ -4,8 +4,7 @@ import com.csse3200.game.components.Component; import com.csse3200.game.rendering.AnimationRenderComponent; import com.csse3200.game.services.ServiceLocator; - -import java.util.Random; +import java.security.SecureRandom; /** * This class listens to events relevant to a ghost entity's state and plays the animation when one @@ -17,7 +16,12 @@ public class SkeletonAnimationController extends Component { // Sound onCollisionSound = ServiceLocator.getResourceService().getAsset( // COLLISION_SFX, Sound.class); AnimationRenderComponent animator; - Random rand = new Random(); + private SecureRandom rand = new SecureRandom(); + + /** Sound variables */ + private static final String ATTACK_SOUND = "sounds/mobs/boneBreak.mp3"; + Sound deathSound = ServiceLocator.getResourceService().getAsset( + ATTACK_SOUND, Sound.class); @Override public void create() { @@ -38,6 +42,8 @@ void animateAttack() { void animateDeath() { animator.startAnimation("skeleton_death"); + deathSound.setVolume(1000, 5.5f); + deathSound.play(); } } diff --git a/source/core/src/main/com/csse3200/game/components/npc/SplitMoblings.java b/source/core/src/main/com/csse3200/game/components/npc/SplitMoblings.java index 4a34b95ee..e0a991cf2 100644 --- a/source/core/src/main/com/csse3200/game/components/npc/SplitMoblings.java +++ b/source/core/src/main/com/csse3200/game/components/npc/SplitMoblings.java @@ -25,6 +25,7 @@ public class SplitMoblings extends Component { public static final float MAX_X_BOUNDS = (float) 18.5; public static final float MIN_Y_BOUNDS = 0; public static final float MAX_Y_BOUNDS = 8; + public static final String DIE_START_EVENT = "dieStart"; /** * Initialises a component that splits mob into multiple moblings. Amount of @@ -71,7 +72,7 @@ public SplitMoblings(int amount, float scaleX, float scaleY) { @Override public void create() { - entity.getEvents().addListener("dieStart", this::onDeath); + entity.getEvents().addListener(DIE_START_EVENT, this::onDeath); } /** @@ -94,7 +95,7 @@ private void onDeath() { // Inspired by: // https://stackoverflow.com/questions/37145768/distribute-points-evenly-on-circle-circumference-in-quadrants-i-and-iv-only for (int i = 0; i < amount; i++) { - float currAngle = (360 / amount) * i; + float currAngle = (float) (360 / amount) * i; double radians = currAngle * Math.PI / 180; float newX = entity.getPosition().x + (float) OFFSET_DISTANCE * @@ -117,14 +118,14 @@ private void onDeath() { * @param initialScaleX Initial horizontal scale of the entity * @param initialScaleY Initial vertical scale of the entity */ - public void spawnAdditionalMob(float positionX, float positionY, float initialScaleX, float initialScaleY) { - // ? ENTITY PARAM KINDA USELESS? - Entity xenoGrunt = NPCFactory.createXenoGrunt(); - xenoGrunt.setPosition(positionX, positionY); + public void spawnAdditionalMob(float positionX, float positionY, + float initialScaleX, float initialScaleY) { + Entity waterSlime = NPCFactory.createBaseWaterSlime(); + waterSlime.setPosition(positionX, positionY); - xenoGrunt.setScale(initialScaleX * scaleX, initialScaleY * scaleY); + waterSlime.setScale(initialScaleX * scaleX, initialScaleY * scaleY); - ServiceLocator.getEntityService().register(xenoGrunt); + ServiceLocator.getEntityService().register(waterSlime); } /** diff --git a/source/core/src/main/com/csse3200/game/components/npc/WaterQueenAnimationController.java b/source/core/src/main/com/csse3200/game/components/npc/WaterQueenAnimationController.java index 6c0e7d98f..c0ac3c922 100644 --- a/source/core/src/main/com/csse3200/game/components/npc/WaterQueenAnimationController.java +++ b/source/core/src/main/com/csse3200/game/components/npc/WaterQueenAnimationController.java @@ -4,8 +4,7 @@ import com.csse3200.game.components.Component; import com.csse3200.game.rendering.AnimationRenderComponent; import com.csse3200.game.services.ServiceLocator; - -import java.util.Random; +import java.security.SecureRandom; /** * This class listens to events relevant to a ghost entity's state and plays the animation when one @@ -17,7 +16,11 @@ public class WaterQueenAnimationController extends Component { // Sound onCollisionSound = ServiceLocator.getResourceService().getAsset( // COLLISION_SFX, Sound.class); AnimationRenderComponent animator; - Random rand = new Random(); + private SecureRandom rand = new SecureRandom(); + + private static final String ATTACK_SOUND = "sounds/mobs/waterQueenSpell.mp3"; + Sound attackSound = ServiceLocator.getResourceService().getAsset( + ATTACK_SOUND, Sound.class); @Override public void create() { @@ -34,6 +37,8 @@ void animateWalk() { void animateAttack() { animator.startAnimation("water_queen_attack"); + attackSound.setVolume(1000, 5.5f); + attackSound.play(); } void animateDeath() { diff --git a/source/core/src/main/com/csse3200/game/components/npc/WaterSlimeAnimationController.java b/source/core/src/main/com/csse3200/game/components/npc/WaterSlimeAnimationController.java index c0fd94b3b..509f3aca0 100644 --- a/source/core/src/main/com/csse3200/game/components/npc/WaterSlimeAnimationController.java +++ b/source/core/src/main/com/csse3200/game/components/npc/WaterSlimeAnimationController.java @@ -4,8 +4,7 @@ import com.csse3200.game.components.Component; import com.csse3200.game.rendering.AnimationRenderComponent; import com.csse3200.game.services.ServiceLocator; - -import java.util.Random; +import java.security.SecureRandom; /** * This class listens to events relevant to a ghost entity's state and plays the animation when one @@ -17,7 +16,7 @@ public class WaterSlimeAnimationController extends Component { // Sound onCollisionSound = ServiceLocator.getResourceService().getAsset( // COLLISION_SFX, Sound.class); AnimationRenderComponent animator; - Random rand = new Random(); + private SecureRandom rand = new SecureRandom(); @Override public void create() { diff --git a/source/core/src/main/com/csse3200/game/components/npc/WizardAnimationController.java b/source/core/src/main/com/csse3200/game/components/npc/WizardAnimationController.java index 94470081b..7059d794d 100644 --- a/source/core/src/main/com/csse3200/game/components/npc/WizardAnimationController.java +++ b/source/core/src/main/com/csse3200/game/components/npc/WizardAnimationController.java @@ -4,8 +4,7 @@ import com.csse3200.game.components.Component; import com.csse3200.game.rendering.AnimationRenderComponent; import com.csse3200.game.services.ServiceLocator; - -import java.util.Random; +import java.security.SecureRandom; /** * This class listens to events relevant to a ghost entity's state and plays the animation when one @@ -17,7 +16,13 @@ public class WizardAnimationController extends Component { // Sound onCollisionSound = ServiceLocator.getResourceService().getAsset( // COLLISION_SFX, Sound.class); AnimationRenderComponent animator; - Random rand = new Random(); + private SecureRandom rand = new SecureRandom(); + + /** Sound variables */ + private static final String ATTACK_SOUND = "sounds/mobs/wizardSpell.mp3"; + Sound attackSound = ServiceLocator.getResourceService().getAsset( + ATTACK_SOUND, Sound.class); + @Override public void create() { @@ -26,6 +31,8 @@ public void create() { entity.getEvents().addListener("wanderStart", this::animateWalk); entity.getEvents().addListener("shootStart", this::animateAttack); entity.getEvents().addListener("dieStart", this::animateDeath); + + } void animateWalk() { @@ -34,6 +41,8 @@ void animateWalk() { void animateAttack() { animator.startAnimation("wizard_attack"); + attackSound.setVolume(1000, 5.5f); + attackSound.play(); } void animateDeath() { diff --git a/source/core/src/main/com/csse3200/game/components/npc/XenoAnimationController.java b/source/core/src/main/com/csse3200/game/components/npc/XenoAnimationController.java index 42c04ce19..6c0d80159 100644 --- a/source/core/src/main/com/csse3200/game/components/npc/XenoAnimationController.java +++ b/source/core/src/main/com/csse3200/game/components/npc/XenoAnimationController.java @@ -4,8 +4,7 @@ import com.csse3200.game.components.Component; import com.csse3200.game.rendering.AnimationRenderComponent; import com.csse3200.game.services.ServiceLocator; - -import java.util.Random; +import java.security.SecureRandom; /** * This class listens to events relevant to a ghost entity's state and plays the animation when one @@ -17,7 +16,7 @@ public class XenoAnimationController extends Component { // Sound onCollisionSound = ServiceLocator.getResourceService().getAsset( // COLLISION_SFX, Sound.class); AnimationRenderComponent animator; - Random rand = new Random(); + private SecureRandom rand = new SecureRandom(); @Override public void create() { diff --git a/source/core/src/main/com/csse3200/game/components/tasks/MobAttackTask.java b/source/core/src/main/com/csse3200/game/components/tasks/MobAttackTask.java index 3cc5de175..141317b91 100644 --- a/source/core/src/main/com/csse3200/game/components/tasks/MobAttackTask.java +++ b/source/core/src/main/com/csse3200/game/components/tasks/MobAttackTask.java @@ -17,7 +17,6 @@ import com.csse3200.game.services.GameTime; import com.csse3200.game.services.ServiceLocator; - /** * Task that allows mobs to shoot projectiles or melee attack towers */ @@ -101,7 +100,7 @@ public void updateMobState() { case IDLE -> { if (isTargetVisible()) { // targets detected in idle mode - start deployment -// owner.getEntity().getEvents().trigger(DEPLOY); + owner.getEntity().getEvents().trigger(DEPLOY); mobState = STATE.DEPLOY; } } @@ -130,10 +129,10 @@ public void updateMobState() { attackComp.onCollisionStart(hitboxComp.getFixture(), target); this.owner.getEntity().getEvents().trigger("meleeStart"); } else { - // Entity newProjectile = ProjectileFactory.createMobBall(PhysicsLayer.HUMANS, new Vector2(0, owner.getEntity().getPosition().y), new Vector2(2f,2f)); - // newProjectile.setPosition((float) (owner.getEntity().getPosition().x), (float) (owner.getEntity().getPosition().y)); - // newProjectile.setScale(-1f, 1f); - // ServiceLocator.getEntityService().register(newProjectile); + Entity newProjectile = ProjectileFactory.createMobBall(PhysicsLayer.HUMANS, new Vector2(0, owner.getEntity().getPosition().y), new Vector2(2f,2f)); + newProjectile.setPosition((float) (owner.getEntity().getPosition().x), (float) (owner.getEntity().getPosition().y)); + newProjectile.setScale(-1f, 1f); + ServiceLocator.getEntityService().register(newProjectile); // System.out.printf("ANIMATION: " + owner.getEntity().getComponent(AnimationRenderComponent.class).getCurrentAnimation() + "\n"); this.owner.getEntity().getEvents().trigger(FIRING); @@ -147,7 +146,7 @@ public void updateMobState() { case STOW -> { // currently stowing if (isTargetVisible()) { -// owner.getEntity().getEvents().trigger(DEPLOY); + owner.getEntity().getEvents().trigger(DEPLOY); mobState = STATE.DEPLOY; } else { owner.getEntity().getEvents().trigger(IDLE); diff --git a/source/core/src/main/com/csse3200/game/components/tasks/MobDodgeTask.java b/source/core/src/main/com/csse3200/game/components/tasks/MobDodgeTask.java index d7c1f546f..7cee70082 100644 --- a/source/core/src/main/com/csse3200/game/components/tasks/MobDodgeTask.java +++ b/source/core/src/main/com/csse3200/game/components/tasks/MobDodgeTask.java @@ -49,7 +49,8 @@ public void start() { super.start(); owner.getEntity().getEvents().trigger("wanderStart"); - endTime = timeSource.getTime() + (1 * DELAY_INTERVAL); + // endTime = timeSource.getTime() + (1 * DELAY_INTERVAL); + endTime = timeSource.getTime(); } /** @@ -60,10 +61,11 @@ public void start() { public void update() { super.update(); if (timeSource.getTime() >= endTime) { - owner.getEntity().getEvents().trigger("dodgeIncomingEntity", owner.getEntity().getCenterPosition()); - endTime = timeSource.getTime() + (1 * DELAY_INTERVAL); - } + owner.getEntity().getEvents().trigger("dodgeIncomingEntity", + owner.getEntity().getCenterPosition()); + endTime = timeSource.getTime() + DELAY_INTERVAL; // update time + } } /** diff --git a/source/core/src/main/com/csse3200/game/components/tasks/MobMeleeAttackTask.java b/source/core/src/main/com/csse3200/game/components/tasks/MobMeleeAttackTask.java new file mode 100644 index 000000000..461428870 --- /dev/null +++ b/source/core/src/main/com/csse3200/game/components/tasks/MobMeleeAttackTask.java @@ -0,0 +1,242 @@ +package com.csse3200.game.components.tasks; + +import com.badlogic.gdx.math.Vector2; +import com.badlogic.gdx.physics.box2d.Fixture; +import com.csse3200.game.ai.tasks.DefaultTask; +import com.csse3200.game.ai.tasks.PriorityTask; +import com.csse3200.game.components.TouchAttackComponent; +import com.csse3200.game.entities.Entity; +import com.csse3200.game.entities.Melee; +import com.csse3200.game.entities.Weapon; +import com.csse3200.game.entities.factories.ProjectileFactory; +import com.csse3200.game.physics.PhysicsEngine; +import com.csse3200.game.physics.PhysicsLayer; +import com.csse3200.game.physics.components.HitboxComponent; +import com.csse3200.game.physics.components.PhysicsMovementComponent; +import com.csse3200.game.physics.raycast.RaycastHit; +import com.csse3200.game.services.GameTime; +import com.csse3200.game.services.ServiceLocator; + +/** + * Task that allows mobs to shoot projectiles or melee attack towers + */ +public class MobMeleeAttackTask extends DefaultTask implements PriorityTask { + private static final int INTERVAL = 1; // time interval to scan for towers in + private static final short TARGET = PhysicsLayer.HUMANS; // mobs detecting for towers + // ^ fix this + + private static final String STOW = "wanderStart"; + private static final String DEPLOY = "deployStart"; + private static final String FIRING = "shootStart"; + private static final String IDLE = "stop"; + + private Fixture target; + + private final int priority; + private final float maxRange; + private Vector2 mobPosition = new Vector2(10f,10f); + private final Vector2 maxRangePosition = new Vector2(); + private final PhysicsEngine physics; + private GameTime timeSource; + private long endTime; + private final RaycastHit hit = new RaycastHit(); + + private final long delay = 1000; // delay between shots + private long startTime; + + private enum STATE { + IDLE, DEPLOY, FIRING, STOW + } + + private STATE mobState = STATE.IDLE; + + /** + * @param priority Task priority when targets are detected (0 when nothing detected). Must be a positive integer. + * @param maxRange Maximum effective range of the weapon mob. This determines the detection distance of targets + */ + public MobMeleeAttackTask(int priority, float maxRange) { + this.priority = priority; + this.maxRange = maxRange; + startTime = 0; + + physics = ServiceLocator.getPhysicsService().getPhysics(); + timeSource = ServiceLocator.getTimeSource(); + } + + /** + * Starts the task running, triggers the initial "idleStart" event. + */ + @Override + public void start() { + super.start(); + startTime = timeSource.getTime(); + this.mobPosition = owner.getEntity().getCenterPosition(); + this.maxRangePosition.set(0, mobPosition.y); + //owner.getEntity().getEvents().trigger(IDLE); + endTime = timeSource.getTime() + (INTERVAL * 500); +// owner.getEntity().getEvents().trigger("shootStart"); + } + + /** + * The update method is what is run every time the TaskRunner in the AiTaskComponent calls update(). + * Triggers events depending on the presence or otherwise of targets in the detection range + */ + @Override + public void update() { + updateMobState(); + + if (mobState == STATE.STOW) { + status = Status.FINISHED; + } + } + + /** + * Mob state machine. Updates mob state by scanning for towers, and + * triggers the appropriate events corresponding to the STATE enum. + */ + public void updateMobState() { + switch (mobState) { + + case IDLE -> { + if (isTargetVisible()) { + // targets detected in idle mode - start deployment + owner.getEntity().getEvents().trigger(DEPLOY); + mobState = STATE.DEPLOY; + } + } + + case DEPLOY -> { + // currently deploying, + if (isTargetVisible() || this.meleeOrProjectile() != null) { + owner.getEntity().getComponent(PhysicsMovementComponent.class).setEnabled(false); + this.owner.getEntity().getEvents().trigger(FIRING); + mobState = STATE.FIRING; + } else { + this.owner.getEntity().getEvents().trigger(STOW); + mobState = STATE.STOW; + } + } + + case FIRING -> { + // targets gone or cannot be attacked - stop firing + if (!isTargetVisible() || this.meleeOrProjectile() == null) { + this.owner.getEntity().getEvents().trigger(STOW); + mobState = STATE.STOW; + } else { + if (this.meleeOrProjectile() instanceof Melee) { + TouchAttackComponent attackComp = owner.getEntity().getComponent(TouchAttackComponent.class); + HitboxComponent hitboxComp = owner.getEntity().getComponent(HitboxComponent.class); + attackComp.onCollisionStart(hitboxComp.getFixture(), target); + this.owner.getEntity().getEvents().trigger("shootStart"); + } else { + Entity newProjectile = ProjectileFactory.createMobBall(PhysicsLayer.HUMANS, new Vector2(0, owner.getEntity().getPosition().y), new Vector2(2f,2f)); + newProjectile.setPosition((float) (owner.getEntity().getPosition().x), (float) (owner.getEntity().getPosition().y)); + newProjectile.setScale(-0.0f, 0.0f); + ServiceLocator.getEntityService().register(newProjectile); + +// System.out.printf("ANIMATION: " + owner.getEntity().getComponent(AnimationRenderComponent.class).getCurrentAnimation() + "\n"); + this.owner.getEntity().getEvents().trigger(FIRING); + mobState = STATE.STOW; + } + } + owner.getEntity().getComponent(PhysicsMovementComponent.class).setEnabled(true); + + } + + case STOW -> { + // currently stowing + if (isTargetVisible()) { + owner.getEntity().getEvents().trigger(DEPLOY); + mobState = STATE.DEPLOY; + } else { + owner.getEntity().getEvents().trigger(IDLE); + mobState = STATE.IDLE; + } + } + } + } + + /** + * For stopping the attack task + */ + @Override + public void stop() { + if (mobState == STATE.FIRING || mobState == STATE.DEPLOY) { + this.updateMobState(); + } else { + super.stop(); + owner.getEntity().getEvents().trigger(STOW); + } + } + + /** + * Returns the current priority of the task. + * @return active priority value if targets detected, inactive priority otherwise + */ + @Override + public int getPriority() { + if (status == Status.ACTIVE) { + return getActivePriority(); + } + return getInactivePriority(); + } + + /** + * Fetches the active priority of the Task if a target is visible. + * @return (int) active priority if a target is visible, -1 otherwise + */ + private int getActivePriority() { + if ((startTime + delay) < timeSource.getTime() && isTargetVisible() && this.meleeOrProjectile() != null) { + return priority; + } + return -1; + } + + /** + * Fetches the inactive priority of the Task if a target is not visible. + * @return (int) -1 if a target is not visible, active priority otherwise + */ + private int getInactivePriority() { + if ((startTime + delay) < timeSource.getTime() && isTargetVisible() && this.meleeOrProjectile() != null) { + return priority; + } + return -1; + } + + /** + * Uses a raycast to determine whether there are any targets in detection range + * @return true if a target is visible, false otherwise + */ + private boolean isTargetVisible() { + Vector2 newVector = new Vector2(owner.getEntity().getPosition().x - 10f, owner.getEntity().getPosition().y - 2f); + return physics.raycast(owner.getEntity().getPosition(), newVector, TARGET, hit); + } + + /** + * Uses a custom raycast method to find the closest target to the mob. Based on the distance to the + * target, the mob will choose a weapon to attack with. + * + * If the object does not have a CombatStatsComponent (which handles dealing damage etc), then + * the function will return null. If it returns null when the mob is in state FIRING or DEPLOY, it will not fire + * and will STOW. + * + * returns the Weapon (Melee or Projectile) the mob will use to attack the target. null if immune target or no target + * */ + private Weapon meleeOrProjectile() { +// Vector2 newVector = new Vector2(owner.getEntity().getPosition().x - 10f, owner.getEntity().getPosition().y - 2f); +// Fixture hitraycast = physics.raycastGetHit(owner.getEntity().getPosition(), newVector, TARGET); + setTarget(); + TouchAttackComponent comp = owner.getEntity().getComponent(TouchAttackComponent.class); + Weapon chosenWeapon = null; + if (comp != null) { + chosenWeapon = comp.chooseWeapon(target); + } + + return chosenWeapon; + } + + private void setTarget() { + Vector2 newVector = new Vector2(owner.getEntity().getPosition().x - 10f, owner.getEntity().getPosition().y - 2f); + target = physics.raycastGetHit(owner.getEntity().getPosition(), newVector, TARGET); + } +} diff --git a/source/core/src/main/com/csse3200/game/components/tasks/MobRangedAttackTask.java b/source/core/src/main/com/csse3200/game/components/tasks/MobRangedAttackTask.java new file mode 100644 index 000000000..e3885ae8b --- /dev/null +++ b/source/core/src/main/com/csse3200/game/components/tasks/MobRangedAttackTask.java @@ -0,0 +1,248 @@ +package com.csse3200.game.components.tasks; + +import com.badlogic.gdx.math.Vector2; +import com.badlogic.gdx.physics.box2d.Fixture; +import com.csse3200.game.ai.tasks.DefaultTask; +import com.csse3200.game.ai.tasks.PriorityTask; +import com.csse3200.game.components.TouchAttackComponent; +import com.csse3200.game.entities.Entity; +import com.csse3200.game.entities.Melee; +import com.csse3200.game.entities.Weapon; +import com.csse3200.game.entities.factories.ProjectileFactory; +import com.csse3200.game.physics.PhysicsEngine; +import com.csse3200.game.physics.PhysicsLayer; +import com.csse3200.game.physics.components.HitboxComponent; +import com.csse3200.game.physics.components.PhysicsMovementComponent; +import com.csse3200.game.physics.raycast.RaycastHit; +import com.csse3200.game.services.GameTime; +import com.csse3200.game.services.ServiceLocator; + +/** + * Task that allows mobs to shoot projectiles or melee attack towers + */ +public class MobRangedAttackTask extends DefaultTask implements PriorityTask { + private static final int INTERVAL = 1; // time interval to scan for towers in + private static final short TARGET = PhysicsLayer.HUMANS; // mobs detecting for towers + // ^ fix this + + private static final String STOW = "wanderStart"; + private static final String DEPLOY = "deployStart"; + private static final String FIRING = "shootStart"; + private static final String IDLE = "stop"; + + private Fixture target; + + private final int priority; + private final float maxRange; + private Vector2 mobPosition = new Vector2(10f,10f); + private final Vector2 maxRangePosition = new Vector2(); + private final PhysicsEngine physics; + private GameTime timeSource; + private long endTime; + private final RaycastHit hit = new RaycastHit(); + + private final long delay = 1000; // delay between shots + private long startTime; + + private enum STATE { + IDLE, DEPLOY, FIRING, STOW + } + + private STATE mobState = STATE.IDLE; + + /** + * @param priority Task priority when targets are detected (0 when nothing detected). Must be a positive integer. + * @param maxRange Maximum effective range of the weapon mob. This determines the detection distance of targets + */ + public MobRangedAttackTask(int priority, float maxRange) { + this.priority = priority; + this.maxRange = maxRange; + startTime = 0; + + physics = ServiceLocator.getPhysicsService().getPhysics(); + timeSource = ServiceLocator.getTimeSource(); + } + + /** + * Starts the task running, triggers the initial "idleStart" event. + */ + @Override + public void start() { + super.start(); + startTime = timeSource.getTime(); + this.mobPosition = owner.getEntity().getCenterPosition(); + this.maxRangePosition.set(0, mobPosition.y); + //owner.getEntity().getEvents().trigger(IDLE); + endTime = timeSource.getTime() + (INTERVAL * 500); +// owner.getEntity().getEvents().trigger("shootStart"); + } + + /** + * The update method is what is run every time the TaskRunner in the AiTaskComponent calls update(). + * Triggers events depending on the presence or otherwise of targets in the detection range + */ + @Override + public void update() { + updateMobState(); + + if (mobState == STATE.STOW) { + status = Status.FINISHED; + } + } + + /** + * Mob state machine. Updates mob state by scanning for towers, and + * triggers the appropriate events corresponding to the STATE enum. + */ + public void updateMobState() { + switch (mobState) { + + case IDLE -> { + if (isTargetVisible()) { + // targets detected in idle mode - start deployment + owner.getEntity().getEvents().trigger(DEPLOY); + mobState = STATE.DEPLOY; + } + } + + case DEPLOY -> { + // currently deploying, + if (isTargetVisible() || this.meleeOrProjectile() != null) { + owner.getEntity().getComponent(PhysicsMovementComponent.class).setEnabled(false); + this.owner.getEntity().getEvents().trigger(FIRING); + mobState = STATE.FIRING; + } else { + this.owner.getEntity().getEvents().trigger(STOW); + mobState = STATE.STOW; + } + } + + case FIRING -> { + // targets gone or cannot be attacked - stop firing + if (!isTargetVisible() || this.meleeOrProjectile() == null) { + this.owner.getEntity().getEvents().trigger(STOW); + mobState = STATE.STOW; + } else { + if (this.meleeOrProjectile() instanceof Melee) { + TouchAttackComponent attackComp = owner.getEntity().getComponent(TouchAttackComponent.class); + HitboxComponent hitboxComp = owner.getEntity().getComponent(HitboxComponent.class); + attackComp.onCollisionStart(hitboxComp.getFixture(), target); + Entity newProjectile = ProjectileFactory.createMobBall(PhysicsLayer.HUMANS, new Vector2(0, owner.getEntity().getPosition().y), new Vector2(2f,2f)); + newProjectile.setPosition((float) (owner.getEntity().getPosition().x), (float) (owner.getEntity().getPosition().y)); + newProjectile.setScale(-1f, 1f); + ServiceLocator.getEntityService().register(newProjectile); + + // System.out.printf("ANIMATION: " + owner.getEntity().getComponent(AnimationRenderComponent.class).getCurrentAnimation() + "\n"); + this.owner.getEntity().getEvents().trigger(FIRING); + } else { + Entity newProjectile = ProjectileFactory.createMobBall(PhysicsLayer.HUMANS, new Vector2(0, owner.getEntity().getPosition().y), new Vector2(2f,2f)); + newProjectile.setPosition((float) (owner.getEntity().getPosition().x), (float) (owner.getEntity().getPosition().y)); + newProjectile.setScale(-1f, 1f); + ServiceLocator.getEntityService().register(newProjectile); + + // System.out.printf("ANIMATION: " + owner.getEntity().getComponent(AnimationRenderComponent.class).getCurrentAnimation() + "\n"); + this.owner.getEntity().getEvents().trigger(FIRING); + mobState = STATE.STOW; + } + } + owner.getEntity().getComponent(PhysicsMovementComponent.class).setEnabled(true); + + } + + case STOW -> { + // currently stowing + if (isTargetVisible()) { + owner.getEntity().getEvents().trigger(DEPLOY); + mobState = STATE.DEPLOY; + } else { + owner.getEntity().getEvents().trigger(IDLE); + mobState = STATE.IDLE; + } + } + } + } + + /** + * For stopping the attack task + */ + @Override + public void stop() { + if (mobState == STATE.FIRING || mobState == STATE.DEPLOY) { + this.updateMobState(); + } else { + super.stop(); + owner.getEntity().getEvents().trigger(STOW); + } + } + + /** + * Returns the current priority of the task. + * @return active priority value if targets detected, inactive priority otherwise + */ + @Override + public int getPriority() { + if (status == Status.ACTIVE) { + return getActivePriority(); + } + return getInactivePriority(); + } + + /** + * Fetches the active priority of the Task if a target is visible. + * @return (int) active priority if a target is visible, -1 otherwise + */ + private int getActivePriority() { + if ((startTime + delay) < timeSource.getTime() && isTargetVisible() && this.meleeOrProjectile() != null) { + return priority; + } + return -1; + } + + /** + * Fetches the inactive priority of the Task if a target is not visible. + * @return (int) -1 if a target is not visible, active priority otherwise + */ + private int getInactivePriority() { + if ((startTime + delay) < timeSource.getTime() && isTargetVisible() && this.meleeOrProjectile() != null) { + return priority; + } + return -1; + } + + /** + * Uses a raycast to determine whether there are any targets in detection range + * @return true if a target is visible, false otherwise + */ + private boolean isTargetVisible() { + Vector2 newVector = new Vector2(owner.getEntity().getPosition().x - 10f, owner.getEntity().getPosition().y - 2f); + return physics.raycast(owner.getEntity().getPosition(), newVector, TARGET, hit); + } + + /** + * Uses a custom raycast method to find the closest target to the mob. Based on the distance to the + * target, the mob will choose a weapon to attack with. + * + * If the object does not have a CombatStatsComponent (which handles dealing damage etc), then + * the function will return null. If it returns null when the mob is in state FIRING or DEPLOY, it will not fire + * and will STOW. + * + * returns the Weapon (Melee or Projectile) the mob will use to attack the target. null if immune target or no target + * */ + private Weapon meleeOrProjectile() { +// Vector2 newVector = new Vector2(owner.getEntity().getPosition().x - 10f, owner.getEntity().getPosition().y - 2f); +// Fixture hitraycast = physics.raycastGetHit(owner.getEntity().getPosition(), newVector, TARGET); + setTarget(); + TouchAttackComponent comp = owner.getEntity().getComponent(TouchAttackComponent.class); + Weapon chosenWeapon = null; + if (comp != null) { + chosenWeapon = comp.chooseWeapon(target); + } + + return chosenWeapon; + } + + private void setTarget() { + Vector2 newVector = new Vector2(owner.getEntity().getPosition().x - 10f, owner.getEntity().getPosition().y - 2f); + target = physics.raycastGetHit(owner.getEntity().getPosition(), newVector, TARGET); + } +} diff --git a/source/core/src/main/com/csse3200/game/components/tasks/MobShootTask.java b/source/core/src/main/com/csse3200/game/components/tasks/MobShootTask.java index f339e4999..40c50142a 100644 --- a/source/core/src/main/com/csse3200/game/components/tasks/MobShootTask.java +++ b/source/core/src/main/com/csse3200/game/components/tasks/MobShootTask.java @@ -4,21 +4,15 @@ import com.badlogic.gdx.physics.box2d.Fixture; import com.csse3200.game.ai.tasks.DefaultTask; import com.csse3200.game.ai.tasks.PriorityTask; -import com.csse3200.game.components.TouchAttackComponent; import com.csse3200.game.entities.Entity; -import com.csse3200.game.entities.Melee; -import com.csse3200.game.entities.Weapon; import com.csse3200.game.entities.factories.ProjectileFactory; import com.csse3200.game.physics.PhysicsEngine; import com.csse3200.game.physics.PhysicsLayer; -import com.csse3200.game.physics.components.HitboxComponent; import com.csse3200.game.physics.components.PhysicsMovementComponent; import com.csse3200.game.physics.raycast.RaycastHit; -import com.csse3200.game.rendering.AnimationRenderComponent; import com.csse3200.game.services.GameTime; import com.csse3200.game.services.ServiceLocator; - /** * Task that allows mobs to shoot projectiles or melee attack towers */ diff --git a/source/core/src/main/com/csse3200/game/components/tasks/NewMobWanderTask.java b/source/core/src/main/com/csse3200/game/components/tasks/NewMobWanderTask.java deleted file mode 100644 index f8a196a50..000000000 --- a/source/core/src/main/com/csse3200/game/components/tasks/NewMobWanderTask.java +++ /dev/null @@ -1,157 +0,0 @@ -package com.csse3200.game.components.tasks; - -import com.badlogic.gdx.math.Vector2; -import com.csse3200.game.ai.tasks.DefaultTask; -import com.csse3200.game.ai.tasks.PriorityTask; -import com.csse3200.game.ai.tasks.Task; -import com.csse3200.game.components.CombatStatsComponent; -import com.csse3200.game.entities.Entity; -import com.csse3200.game.entities.factories.DropFactory; -import com.csse3200.game.rendering.AnimationRenderComponent; -import com.csse3200.game.services.ServiceLocator; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.csse3200.game.entities.factories.ProjectileFactory; -import com.csse3200.game.physics.PhysicsEngine; -import com.csse3200.game.physics.PhysicsLayer; -import com.csse3200.game.physics.raycast.RaycastHit; -import com.csse3200.game.services.GameTime; - -/** - * Wander around by moving a random position within a range of the starting position. Wait a little - * bit between movements. Requires an entity with a PhysicsMovementComponent. - */ -public class NewMobWanderTask extends DefaultTask implements PriorityTask { - private static final Logger logger = LoggerFactory.getLogger(MobWanderTask.class); - - private final float waitTime; - private Vector2 startPos; - private MovementTask movementTask; - private WaitTask waitTask; - private Task currentTask; - private boolean isDead = false; - private Vector2 mobPosition; - private final PhysicsEngine physics; - private static final short TARGET = PhysicsLayer.HUMANS; - private final RaycastHit hit = new RaycastHit(); - - /** - * @param waitTime How long in seconds to wait between wandering. - */ - public NewMobWanderTask(float waitTime) { - this.waitTime = waitTime; - physics = ServiceLocator.getPhysicsService().getPhysics(); - } - - @Override - public int getPriority() { - return 1; // Low priority task - } - - @Override - public void start() { - super.start(); - startPos = owner.getEntity().getPosition(); - - waitTask = new WaitTask(waitTime); - waitTask.create(owner); - movementTask = new MovementTask(getDirection()); - movementTask.create(owner); - - movementTask.start(); - currentTask = movementTask; - - this.owner.getEntity().getEvents().trigger("wanderStart"); - } - - @Override - public void update() { - - //Update the position of the mob - mobPosition = owner.getEntity().getPosition(); - - // If the mob is at zero health, kill the mob, - // play the death animation and stop the task - // This method is the idea of Ahmad who very kindly helped - // with section, massive props to him for his help! - if (!isDead && owner.getEntity().getComponent(CombatStatsComponent.class).isDead()) { - this.owner.getEntity().getEvents().trigger("dieStart"); - currentTask.stop(); - isDead = true; - } - - // Check if the mob has finished death animation - else if (isDead && owner.getEntity().getComponent(AnimationRenderComponent.class).isFinished()) { - - // Drop scrap at the mobs location for player - // to collect. - Entity scrap = DropFactory.createScrapDrop(); - scrap.setPosition(mobPosition.x,mobPosition.y); - ServiceLocator.getEntityService().register(scrap); - ServiceLocator.getWaveService().updateEnemyCount(); - - // Delete the mob. - owner.getEntity().setFlagForDelete(true); - - } - // If not dead, do normal things... - else if (!isDead) { - - if (currentTask.getStatus() != Status.ACTIVE) { - if (currentTask == movementTask) { - if (isTargetVisible()) { - Entity newProjectile = ProjectileFactory.createMobBall(PhysicsLayer.HUMANS, new Vector2(0, owner.getEntity().getPosition().y), new Vector2(2f,2f)); - newProjectile.setScale(-1f, 1f); - newProjectile.setPosition((float) (owner.getEntity().getPosition().x), (float) (owner.getEntity().getPosition().y)); - ServiceLocator.getEntityService().register(newProjectile); - - // System.out.printf("ANIMATION: " + owner.getEntity().getComponent(AnimationRenderComponent.class).getCurrentAnimation() + "\n"); - this.owner.getEntity().getEvents().trigger("shootStart"); - System.out.println("TESTING SHOOT"); - } - } else { - startMoving(); - - } - } - currentTask.update(); - } - } - - - private void startWaiting() { - logger.debug("Starting waiting"); - this.owner.getEntity().getEvents().trigger("stop"); - swapTask(waitTask); - } - - private void startMoving() { - logger.debug("Starting moving"); - movementTask.setTarget(getDirection()); - this.owner.getEntity().getEvents().trigger("wanderStart"); - swapTask(movementTask); - } - - private void swapTask(Task newTask) { - if (currentTask != null) { - currentTask.stop(); - } - currentTask = newTask; - currentTask.start(); - } - - private Vector2 getDirection() { - float y = startPos.y; - return new Vector2(0, y); - } - - /** - * Uses a raycast to determine whether there are any targets in detection range - * @return true if a target is visible, false otherwise - */ - private boolean isTargetVisible() { - Vector2 newVector = new Vector2(owner.getEntity().getPosition().x - 10f, owner.getEntity().getPosition().y - 2f); - return physics.raycast(owner.getEntity().getPosition(), newVector, TARGET, hit); - } -} diff --git a/source/core/src/main/com/csse3200/game/components/tasks/TowerCombatTask.java b/source/core/src/main/com/csse3200/game/components/tasks/TowerCombatTask.java index 9d1f74538..f67214ae7 100644 --- a/source/core/src/main/com/csse3200/game/components/tasks/TowerCombatTask.java +++ b/source/core/src/main/com/csse3200/game/components/tasks/TowerCombatTask.java @@ -79,7 +79,7 @@ public void start() { this.maxRangePosition.set(towerPosition.x + maxRange, towerPosition.y); // Default to idle mode owner.getEntity().getEvents().trigger(IDLE); - // Set up listener to change firerate + // Set up listener to change fire rate owner.getEntity().getEvents().addListener("addFireRate",this::changeFireRateInterval); endTime = timeSource.getTime() + (INTERVAL * 500); diff --git a/source/core/src/main/com/csse3200/game/components/tasks/bosstask/DemonBossTask.java b/source/core/src/main/com/csse3200/game/components/tasks/bosstask/DemonBossTask.java index 5597fbd08..e9fc0e514 100644 --- a/source/core/src/main/com/csse3200/game/components/tasks/bosstask/DemonBossTask.java +++ b/source/core/src/main/com/csse3200/game/components/tasks/bosstask/DemonBossTask.java @@ -38,7 +38,7 @@ public class DemonBossTask extends DefaultTask implements PriorityTask { private static final int Y_BOT_BOUNDARY = 1; private static final int BREATH_ANIM_TIME = 2; private static final int SMASH_RADIUS = 3; - private static final int MOVE_FORWARD_DELAY = 30; + private static final int MOVE_FORWARD_DELAY = 15; private static final float BREATH_DURATION = 4.2f; private static final int SMASH_DAMAGE = 30; private static final int CLEAVE_DAMAGE = 50; @@ -56,7 +56,7 @@ public class DemonBossTask extends DefaultTask implements PriorityTask { private DemonState prevState; private AnimationRenderComponent animation; private Entity demon; - private int numBalls = 6; + private int numBalls = 3; private static int xRightBoundary = 17; private static int xLeftBoundary = 12; private ProjectileEffects effect = ProjectileEffects.BURN; @@ -72,9 +72,7 @@ public class DemonBossTask extends DefaultTask implements PriorityTask { * The different demon states. */ private enum DemonState { - TRANSFORM, IDLE, CAST, CLEAVE, DEATH, BREATH, SMASH, TAKE_HIT, - WALK, TRANSFORM_REVERSE, SLIME_IDLE, SLIME_MOVE, PROJECTILE_EXPLOSION, - PROJECTILE_IDLE, SLIME_TAKE_HIT + TRANSFORM, IDLE, CAST, CLEAVE, DEATH, BREATH, SMASH, TAKE_HIT, WALK } /** @@ -102,6 +100,7 @@ public void start() { public void run() { changeState(DemonState.TRANSFORM); animate(); + demon.getEvents().trigger("demon_spawn_sound"); startFlag = true; } }, 0.1f); @@ -138,7 +137,7 @@ public void update() { changeState(DemonState.IDLE); // start sequence } - // detect death stages + // detect death stage if (health <= 0) { // spawn slimey boy Entity slimey = MobBossFactory.createSlimeyBoy(); @@ -151,8 +150,7 @@ public void update() { // detect half health if (health <= demon.getComponent(CombatStatsComponent.class).getMaxHealth() / 2 && !halfHealthFlag) { - halfHealth(); - halfHealthFlag = true; + changeState(DemonState.TAKE_HIT); } // detect sequence changes and runs the relevant state accordingly @@ -185,6 +183,12 @@ public void update() { } } } + case TAKE_HIT -> { + if (animation.isFinished()) { + halfHealth(); + halfHealthFlag = true; + } + } } } @@ -217,12 +221,6 @@ private void animate() { case CLEAVE -> demon.getEvents().trigger("demon_cleave"); case TAKE_HIT -> demon.getEvents().trigger("demon_take_hit"); case TRANSFORM -> demon.getEvents().trigger("transform"); - case TRANSFORM_REVERSE -> demon.getEvents().trigger("transform_reverse"); - case SLIME_IDLE -> demon.getEvents().trigger("idle"); - case SLIME_MOVE -> demon.getEvents().trigger("move"); - case SLIME_TAKE_HIT -> demon.getEvents().trigger("take_hit"); - case PROJECTILE_IDLE -> demon.getEvents().trigger("projectile_explosion"); - case PROJECTILE_EXPLOSION -> demon.getEvents().trigger("projectile_idle"); default -> logger.debug("Demon animation {state} not found"); } prevState = state; @@ -276,6 +274,16 @@ private void jump(Vector2 finalPos) { changeState(DemonState.SMASH); isJumping = true; + demon.getEvents().trigger("demon_roar_sound"); + + // play landing sound + Timer.schedule(new Timer.Task() { + @Override + public void run() { + demon.getEvents().trigger("demon_landing_sound"); + } + }, 1.8f); + jumpTask = new MovementTask(finalPos); jumpTask.create(owner); jumpTask.start(); @@ -284,8 +292,8 @@ private void jump(Vector2 finalPos) { } /** - * Returns a a random position 3 units away for the demon to jump to. - * + * Returns a random position 3 units away for the demon to jump to. + * * @return a position 3 units away from the demon to jump to */ private Vector2 getJumpPos() { @@ -295,6 +303,12 @@ private Vector2 getJumpPos() { return jumpPos; } + // jump backwards if right next to tower + if (currentPos.dst(ServiceLocator.getEntityService().getClosestEntityOfLayer( + demon, PhysicsLayer.HUMANS).getPosition()) < 2f) { + jumpPos = new Vector2(currentPos.x + JUMP_DISTANCE, currentPos.y); + } + float randomAngle = MathUtils.random(0, 2 * MathUtils.PI); float x = JUMP_DISTANCE * MathUtils.cos(randomAngle); float y = JUMP_DISTANCE * MathUtils.sin(randomAngle); @@ -316,7 +330,7 @@ private Vector2 getJumpPos() { /** * Returns a boolean to confirm whether the demon has completed a jump or not. - * + * * @return if demon has completed jump or not */ private boolean jumpComplete() { @@ -347,6 +361,7 @@ public void changeBreathAttack(int numBalls, ProjectileEffects effect, boolean a */ private void fireBreath() { changeState(DemonState.BREATH); + demon.getEvents().trigger("demon_breath_in_sound"); float delay = (BREATH_DURATION - BREATH_ANIM_TIME) / numBalls; @@ -394,37 +409,11 @@ private void applyAoeDamage(Array targets, int damage) { } /** -<<<<<<< HEAD - * Returns the closest human entity from a given array. - * - * @param targets array of human entities - * @return closest human entity - */ - private Entity getClosestHuman(Array targets) { - Entity closestEntity = null; - float closestDistance = SMASH_RADIUS; - - for (int i = 0; i < targets.size; i++) { - Entity targetEntity = targets.get(i); - Vector2 targetPosition = targetEntity.getPosition(); - float distance = currentPos.dst(targetPosition); - - if (distance < closestDistance) { - closestEntity = targetEntity; - closestDistance = distance; - } - } - return closestEntity; - } - - /** - * Change state to cleave and deals damage to target. -======= - * Change state to cleave and deal damage to target ->>>>>>> AOE-Projectile + * Change state to cleave and deals damage to target */ private void cleave() { changeState(DemonState.CLEAVE); + demon.getEvents().trigger("demon_roar_sound"); Entity target = ServiceLocator.getEntityService().getClosestEntityOfLayer(demon, PhysicsLayer.HUMANS); CombatStatsComponent targetCombatStats = target. @@ -432,6 +421,7 @@ private void cleave() { Timer.schedule(new Timer.Task() { @Override public void run() { + demon.getEvents().trigger("demon_cleave_sound"); targetCombatStats.hit(CLEAVE_DAMAGE); } }, 2f); @@ -448,13 +438,14 @@ private void halfHealth() { public void run() { isHealing = false; } - }, HEAL_TIMES); + }, (float) HEAL_TIMES / 2); // add health every 10s for (int i = 0; i < HEAL_TIMES; i++) { Timer.schedule(new Timer.Task() { @Override public void run() { + demon.getEvents().trigger("demon_heal_sound"); demon.getComponent(CombatStatsComponent.class).addHealth(HEALTH_TO_ADD); } }, (float) i /2); diff --git a/source/core/src/main/com/csse3200/game/components/tasks/bosstask/FinalBossMovementTask.java b/source/core/src/main/com/csse3200/game/components/tasks/bosstask/FinalBossMovementTask.java index 3cdf87858..34ebf7bae 100644 --- a/source/core/src/main/com/csse3200/game/components/tasks/bosstask/FinalBossMovementTask.java +++ b/source/core/src/main/com/csse3200/game/components/tasks/bosstask/FinalBossMovementTask.java @@ -120,7 +120,7 @@ private void startSwappingLane() { currentTask.stop(); - float laneHeight = (float) (viewportHeight / 8); + float laneHeight = (float) (viewportHeight) / 8; if (currLane == 0) { // Move up diff --git a/source/core/src/main/com/csse3200/game/components/tasks/bosstask/IceBabyTask.java b/source/core/src/main/com/csse3200/game/components/tasks/bosstask/IceBabyTask.java new file mode 100644 index 000000000..78599c6da --- /dev/null +++ b/source/core/src/main/com/csse3200/game/components/tasks/bosstask/IceBabyTask.java @@ -0,0 +1,334 @@ +package com.csse3200.game.components.tasks.bosstask; + +import com.badlogic.gdx.math.MathUtils; +import com.badlogic.gdx.math.Vector2; +import com.badlogic.gdx.utils.Array; +import com.badlogic.gdx.utils.Timer; +import com.csse3200.game.ai.tasks.DefaultTask; +import com.csse3200.game.ai.tasks.PriorityTask; +import com.csse3200.game.components.CombatStatsComponent; +import com.csse3200.game.components.tasks.MovementTask; +import com.csse3200.game.entities.Entity; +import com.csse3200.game.entities.factories.NPCFactory; +import com.csse3200.game.physics.PhysicsEngine; +import com.csse3200.game.physics.PhysicsLayer; +import com.csse3200.game.physics.components.HitboxComponent; +import com.csse3200.game.physics.components.PhysicsMovementComponent; +import com.csse3200.game.rendering.AnimationRenderComponent; +import com.csse3200.game.services.GameTime; +import com.csse3200.game.services.ServiceLocator; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class IceBabyTask extends DefaultTask implements PriorityTask { + /** Constant names */ + private static final int PRIORITY = 3; + private static final Vector2 ICEBABY_SPEED = new Vector2(1f, 1f); + private static final int MOVE_FORWARD_DELAY = 30; + private static final int SMASH_RADIUS = 3; + private static final int SMASH_DAMAGE = 30; + private static final int ATK3_DAMAGE = 50; + private static final float WALK_DISTANCE = 3.0f; + private static final float STOP_DISTANCE = 0.1f; + private static final int Y_TOP_BOUNDARY = 6; + private static final int Y_BOT_BOUNDARY = 1; + private static final Logger logger = LoggerFactory.getLogger(IceBabyTask.class); + /** Variable names */ + private PhysicsEngine physics; + private GameTime gameTime; + private STATE prevState; + private AnimationRenderComponent animation; + private Entity iceBaby; + private Vector2 currentPos; + private Vector2 walkPos; + private MovementTask walkTask; + private static int xRightBoundary = 17; + private static int xLeftBoundary = 12; + private boolean aoe = true; + private boolean startFlag = false; + private boolean isWalking; + /** Animation constants */ + private static final String IDLE = "startIdle"; + private static final String ATK1 = "start1_atk"; + private static final String ATK2 = "start2_atk"; + private static final String ATK3 = "start3_atk"; + private static final String DEATH = "startDeath"; + private static final String INTRO = "startIntro_or_revive"; + private static final String STAGGER = "startStagger"; + private static final String TAKEHIT = "startTake_hit"; + private static final String WALK = "startWalk"; + private enum STATE { + IDLE, ATK1, ATK2, ATK3, DEATH, INTRO, STAGGER, TAKEHIT, WALK + } + private STATE iceBabyState = STATE.IDLE; + + /** + * Constructor for IceBabyTask + */ + public IceBabyTask() { + physics = ServiceLocator.getPhysicsService().getPhysics(); + gameTime = ServiceLocator.getTimeSource(); + } + + //ice baby should be able to poop out little mobs - spawn new + //ice baby can also do aoe attack based on the animation + //ice baby does punches to towers once it is close + + /** + * Starts the Task and triggers for Ice Baby to be spawned + */ + @Override + public void start() { + super.start(); + iceBaby = owner.getEntity(); + animation = iceBaby.getComponent(AnimationRenderComponent.class); + currentPos = iceBaby.getPosition(); + iceBaby.getComponent(PhysicsMovementComponent.class).setSpeed(ICEBABY_SPEED); + Timer.schedule(new Timer.Task() { + @Override + public void run() { + changeState(STATE.INTRO); + animate(); + startFlag = true; + } + }, 0.1f); + + // shift demon's boundary left every 30s + for (int i = 1; i < 6; i++) { + Timer.schedule(new Timer.Task() { + @Override + public void run() { + xLeftBoundary -= 2; + xRightBoundary -= 2; + } + }, MOVE_FORWARD_DELAY * i); + } + + } + + /** + * Updates the boss to start attacking and spawning new mobs + */ + @Override + public void update() { + if (!startFlag) { + return; + } + animate(); + currentPos = iceBaby.getPosition(); + int health = iceBaby.getComponent(CombatStatsComponent.class).getHealth(); + + // handle initial demon transformation + if (animation.getCurrentAnimation().equals("intro_or_revive") && animation.isFinished()) { + changeState(STATE.IDLE); // start sequence + } + if (health <= 0) { + changeState(STATE.DEATH); + iceBaby.setFlagForDelete(true); + } + + switch (iceBabyState) { + case IDLE -> walk(getWalkPos()); + case WALK -> { + if (walkComplete()) { + changeState(STATE.IDLE); + } else { + spawnMob(); + } + } + case ATK1, ATK2 -> { + if (animation.isFinished()) { + ATK3(); + } + } + case ATK3 -> { + if (animation.isFinished()) { + changeState(STATE.IDLE); + } + } + } + } + + /** + * Changes the state of animation + * @param state - the new animation + */ + private void changeState(STATE state) { + prevState = this.iceBabyState; + this.iceBabyState = state; + } + + /** + * Trigger the specific animation to play + */ + private void animate() { + // Check if same animation is being called + if (prevState.equals(iceBabyState)) { + return; // skip rest of function + } + + switch (iceBabyState) { + case IDLE -> iceBaby.getEvents().trigger(IDLE); + case WALK -> iceBaby.getEvents().trigger(WALK); + case DEATH -> iceBaby.getEvents().trigger(DEATH); + case ATK1 -> iceBaby.getEvents().trigger(ATK1); + case ATK2 -> iceBaby.getEvents().trigger(ATK2); + case ATK3 -> iceBaby.getEvents().trigger(ATK3); + case TAKEHIT -> iceBaby.getEvents().trigger(TAKEHIT); + case INTRO -> iceBaby.getEvents().trigger(INTRO); + case STAGGER -> iceBaby.getEvents().trigger(STAGGER); + default -> logger.debug("iceBaby animation {state} not found"); + } + prevState = iceBabyState; + } + + /** + * Changes state of Ice Baby and moves it to the desired position. + * + * @param finalPos position for demon to jump to + */ + private void walk(Vector2 finalPos) { + changeState(STATE.WALK); + animate(); + isWalking = true; + + walkTask = new MovementTask(finalPos); + walkTask.create(owner); + walkTask.start(); + + logger.debug("Ice baby walk starting"); + } + + /** + * Returns a random position 3 units away for the ice Baby to walk to. + * + * @return a position 3 units away + */ + private Vector2 getWalkPos() { + // check if boundary has shifted causing demon to be out of bounds + if (currentPos.x > xRightBoundary) { + walkPos = new Vector2(currentPos.x - WALK_DISTANCE, currentPos.y); //jump back into boundary + return walkPos; + } + + float randomAngle = MathUtils.random(0, 2 * MathUtils.PI); + float x = WALK_DISTANCE * MathUtils.cos(randomAngle); + float y = WALK_DISTANCE * MathUtils.sin(randomAngle); + + // check boundaries + if (x + currentPos.x > xRightBoundary || x + currentPos.x < xLeftBoundary) { + x *= -1; + } + if (y + currentPos.y > Y_TOP_BOUNDARY || y + currentPos.y < Y_BOT_BOUNDARY) { + y *= -1; + } + + // get final jump position + float finalX = x + currentPos.x; + float finalY = y + currentPos.y; + walkPos = new Vector2(finalX, finalY); + return walkPos; + } + + /** + * Returns a boolean to confirm whether the ice baby has completed a walk or not. + * + * @return true if demon has completed walk or not + */ + private boolean walkComplete() { + changeState(STATE.ATK1); + animate(); + if (currentPos.dst(walkPos) <= STOP_DISTANCE && isWalking && animation.isFinished()) { + applyAoeDamage(getNearbyHumans(SMASH_RADIUS), SMASH_DAMAGE); // do damage upon landing + isWalking = false; + walkTask.stop(); + return true; + } + return false; + } + + /** + * Changes the state of the animation and deals damage to nearby humans + */ + private void ATK3() { + changeState(STATE.ATK3); + animate(); + Entity target = ServiceLocator.getEntityService().getClosestEntityOfLayer(iceBaby, + PhysicsLayer.HUMANS); + CombatStatsComponent targetCombatStats = target. + getComponent(CombatStatsComponent.class); + Timer.schedule(new Timer.Task() { + @Override + public void run() { + targetCombatStats.hit(ATK3_DAMAGE); + } + }, 2f); + } + + /** + * Creates a new mob triggered with the correct animation + */ + private void spawnMob() { + changeState(STATE.ATK2); + Entity newMob = NPCFactory.createSplittingWaterSlime(); + newMob.setPosition((float) (iceBaby.getPosition().x + 0.5), (float) (iceBaby.getPosition().y + 0.5)); + ServiceLocator.getEntityService().register(newMob); + } + + /** + * Applies aoe damage to nearby human entities. + * + * @param targets array of human entities to deal damage to + */ + private void applyAoeDamage(Array targets, int damage) { + for (int i = 0; i < targets.size; i++) { + Entity targetEntity = targets.get(i); + + CombatStatsComponent targetCombatStats = targetEntity. + getComponent(CombatStatsComponent.class); + if (targetCombatStats != null) { + targetCombatStats.hit(damage); + } + } + } + + /** + * Returns a list of nearby entities with PhysicsLayer.HUMAN. + * + * @return nearby entities with the PhysicsLayer of HUMAN + */ + private Array getNearbyHumans(int radius) { + Array nearbyEntities = ServiceLocator.getEntityService(). + getNearbyEntities(iceBaby, radius); + Array nearbyHumans = new Array<>(); + + // iterate through nearby entities checking if they have desired properties + for (int i = 0; i < nearbyEntities.size; i++) { + Entity targetEntity = nearbyEntities.get(i); + HitboxComponent targetHitbox = targetEntity.getComponent(HitboxComponent.class); + if (targetHitbox == null) { + break; + } + + // check target layer + if (!PhysicsLayer.contains(PhysicsLayer.HUMANS, targetHitbox. + getLayer())) { + break; + } + + nearbyHumans.add(targetEntity); + } + return nearbyHumans; + } + + /** + * Returns the priority of this task. + * + * @return priority of task + */ + @Override + public int getPriority() { + return PRIORITY; + } + +} diff --git a/source/core/src/main/com/csse3200/game/components/tasks/bosstask/PatrickDeathTask.java b/source/core/src/main/com/csse3200/game/components/tasks/bosstask/PatrickDeathTask.java new file mode 100644 index 000000000..97f7dacc4 --- /dev/null +++ b/source/core/src/main/com/csse3200/game/components/tasks/bosstask/PatrickDeathTask.java @@ -0,0 +1,40 @@ +package com.csse3200.game.components.tasks.bosstask; + +import com.csse3200.game.ai.tasks.DefaultTask; +import com.csse3200.game.ai.tasks.PriorityTask; +import com.csse3200.game.rendering.AnimationRenderComponent; + +public class PatrickDeathTask extends DefaultTask implements PriorityTask { + + private boolean startFlag = false; + private static final int PRIORITY = 3; + + /** + * What is run when patrick's death task is assigned + */ + @Override + public void start() { + super.start(); + startFlag = true; + owner.getEntity().getEvents().trigger("patrick_death"); + } + + /** + * What is run every frame + */ + @Override + public void update() { + if (startFlag && owner.getEntity().getComponent(AnimationRenderComponent.class). + isFinished()) { + owner.getEntity().setFlagForDelete(true); + } + } + + /** + * @return priority of task + */ + @Override + public int getPriority() { + return PRIORITY; + } +} diff --git a/source/core/src/main/com/csse3200/game/components/tasks/bosstask/PatrickTask.java b/source/core/src/main/com/csse3200/game/components/tasks/bosstask/PatrickTask.java index bbfb4d4e0..9e41941dd 100644 --- a/source/core/src/main/com/csse3200/game/components/tasks/bosstask/PatrickTask.java +++ b/source/core/src/main/com/csse3200/game/components/tasks/bosstask/PatrickTask.java @@ -8,6 +8,7 @@ import com.csse3200.game.components.CombatStatsComponent; import com.csse3200.game.components.ProjectileEffects; import com.csse3200.game.entities.Entity; +import com.csse3200.game.entities.factories.MobBossFactory; import com.csse3200.game.entities.factories.ProjectileFactory; import com.csse3200.game.physics.PhysicsEngine; import com.csse3200.game.physics.PhysicsLayer; @@ -18,6 +19,10 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +/** + * Patrick boss task that controls the boss' sequence and actions based on a predetermined sequence + * and the boss' current hp + */ public class PatrickTask extends DefaultTask implements PriorityTask { // Constants @@ -56,11 +61,17 @@ private enum PatrickState { IDLE, WALK, ATTACK, HURT, DEATH, SPELL, APPEAR } + /** + * Constructor for PatrickTask + */ public PatrickTask() { physics = ServiceLocator.getPhysicsService().getPhysics(); gameTime = ServiceLocator.getTimeSource(); } + /** + * What is called when the patrick task is assigned + */ @Override public void start() { super.start(); @@ -74,12 +85,17 @@ public void start() { @Override public void run() { changeState(PatrickState.APPEAR); + patrick.getEvents().trigger("patrick_appear_sound"); + patrick.getEvents().trigger("patrick_spawn_sound"); startFlag = true; spawnFlag = true; } }, 0.1f); } + /** + * Updates the sequence every frame + */ @Override public void update() { // give game time to load @@ -98,12 +114,24 @@ public void update() { } } + // check if patrick is dead + if (patrick.getComponent(CombatStatsComponent.class).getHealth() <= 0) { + // play patrick death animation + Entity deadPatrick = MobBossFactory.patrickDead(); + deadPatrick.setPosition(patrick.getPosition().x, patrick.getPosition().y); + deadPatrick.setScale(4f, 4f); + ServiceLocator.getEntityService().register(deadPatrick); + patrick.getEvents().trigger("patrick_scream_sound"); + patrick.setFlagForDelete(true); + } + animate(); int health = patrick.getComponent(CombatStatsComponent.class).getHealth(); // detect half health if (health <= patrick.getComponent(CombatStatsComponent.class).getMaxHealth() / 2 && !halfHealthFlag) { + patrick.getEvents().trigger("patrick_scream_sound"); halfHealth(); halfHealthFlag = true; } @@ -111,17 +139,23 @@ public void update() { // handle state switches switch (state) { case APPEAR -> { - if (spawnFlag) { + if (spawnFlag && animation.isFinished()) { meleeAttack(); spawnFlag = false; } else if (meleeFlag) { + Timer.schedule(new Timer.Task() { + @Override + public void run() { + patrick.getEvents().trigger("patrick_hit_sound"); + } + }, 1f); changeState(PatrickState.ATTACK); meleeFlag = false; } else if (rangeFlag) { // shoot 3 projectiles if (shotsFired > 2) { rangeFlag = false; - spawnFlag = true; + meleeAttack(); shotsFired = 0; // reset shots fired } else { changeState(PatrickState.IDLE); @@ -173,6 +207,9 @@ private void animate() { prevState = state; } + /** + * @return priority of this task + */ @Override public int getPriority() { return PRIORITY; @@ -196,6 +233,10 @@ private ProjectileEffects getEffect() { } } + /** + * Teleports patrick to the position given + * @param pos position for patrick to teleport to + */ private void teleport(Vector2 pos) { teleportTask = new PatrickTeleportTask(patrick, pos); teleportTask.create(owner); @@ -203,6 +244,9 @@ private void teleport(Vector2 pos) { teleportFlag = true; } + /** + * Patrick teleports to the closest human entity and attacks it + */ private void meleeAttack() { initialPos = patrick.getPosition(); meleeTarget = ServiceLocator.getEntityService().getClosestEntityOfLayer( @@ -211,17 +255,23 @@ private void meleeAttack() { meleeFlag = true; } - private void spawnRandProjectile(Vector2 destination) { + /** + * spawns a random effect projectile and increments the shots fired counter + * @param destination destination for projectile to travel to + */ + private void spawnRandProjectile(Vector2 destination, boolean aoe) { // spawn random projectile Entity projectile = ProjectileFactory.createEffectProjectile(PhysicsLayer.HUMANS, destination, new Vector2(2, 2), - getEffect(), false); + getEffect(), aoe); projectile.setPosition(patrick.getPosition().x, patrick.getPosition().y); projectile.setScale(-1f, 1f); ServiceLocator.getEntityService().register(projectile); - shotsFired++; } + /** + * teleports to a random location within given range + */ private void randomTeleport() { // teleport to random position float randomX = MathUtils.random(RANGE_MIN_X, RANGE_MAX_X); @@ -229,25 +279,31 @@ private void randomTeleport() { teleport(new Vector2(randomX, randomY)); } + /** + * performs a random teleport and a range attack + */ private void rangeAttack() { randomTeleport(); - spawnRandProjectile(new Vector2(0f, patrick.getPosition().y)); + spawnRandProjectile(new Vector2(0f, patrick.getPosition().y), false); + shotsFired++; } + /** + * when patrick is at half health, he spawns a bunch of random aoe effect projectiles + */ private void halfHealth() { float startAngle = (float) Math.toRadians(135); float endAngle = (float) Math.toRadians(225); float angleIncrement = (endAngle - startAngle) / (HALF_HEALTH_ATTACKS - 1); for (int i = 0; i < HALF_HEALTH_ATTACKS; i++) { - randomTeleport(); // calculate unit vectors for projectiles float currentAngle = startAngle + i * angleIncrement; float x = MathUtils.cos(currentAngle) * 20; float y = MathUtils.sin(currentAngle) * 20; Vector2 destination = new Vector2(x, y); - spawnRandProjectile(destination); + spawnRandProjectile(destination, true); } if (shotsFired == HALF_HEALTH_ATTACKS) { meleeFlag = true; diff --git a/source/core/src/main/com/csse3200/game/components/tasks/bosstask/PatrickTeleportTask.java b/source/core/src/main/com/csse3200/game/components/tasks/bosstask/PatrickTeleportTask.java index 54ef0e71a..621b0bf9d 100644 --- a/source/core/src/main/com/csse3200/game/components/tasks/bosstask/PatrickTeleportTask.java +++ b/source/core/src/main/com/csse3200/game/components/tasks/bosstask/PatrickTeleportTask.java @@ -1,11 +1,11 @@ package com.csse3200.game.components.tasks.bosstask; import com.badlogic.gdx.math.Vector2; +import com.badlogic.gdx.utils.Timer; import com.csse3200.game.ai.tasks.DefaultTask; import com.csse3200.game.components.CombatStatsComponent; import com.csse3200.game.components.tasks.MovementTask; import com.csse3200.game.entities.Entity; -import com.csse3200.game.entities.factories.MobBossFactory; import com.csse3200.game.rendering.AnimationRenderComponent; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -18,6 +18,7 @@ public class PatrickTeleportTask extends DefaultTask { private PatrickState prevState; private AnimationRenderComponent animation; private Status status = Status.INACTIVE; + private CombatStatsComponent combatStats; private int health; private enum PatrickState { CAST, APPEAR, SPELL, IDLE @@ -32,8 +33,17 @@ public PatrickTeleportTask(Entity patrick, Vector2 location) { public void start() { super.start(); animation = owner.getEntity().getComponent(AnimationRenderComponent.class); - health = owner.getEntity().getComponent(CombatStatsComponent.class).getHealth(); + combatStats = owner.getEntity().getComponent(CombatStatsComponent.class); + health = combatStats.getHealth(); changeState(PatrickState.CAST); + patrick.getEvents().trigger("patrick_thunder_sound"); + Timer.schedule(new Timer.Task() { + @Override + public void run() { + patrick.getEvents().trigger( + "patrick_cast_sound"); + } + }, 0.3f); } @Override @@ -43,6 +53,7 @@ public void update() { switch (state) { case CAST -> { if (animation.isFinished()) { + health = combatStats.getHealth(); patrick.setPosition(location); changeState(PatrickState.SPELL); } @@ -50,6 +61,8 @@ public void update() { case SPELL -> { if (animation.isFinished()) { changeState(PatrickState.APPEAR); + combatStats.setHealth(health); + patrick.getEvents().trigger("patrick_appear_sound"); } } case APPEAR -> { diff --git a/source/core/src/main/com/csse3200/game/components/tasks/bosstask/SlimeyBoyTask.java b/source/core/src/main/com/csse3200/game/components/tasks/bosstask/SlimeyBoyTask.java index 5cef0c8ec..bef8386d8 100644 --- a/source/core/src/main/com/csse3200/game/components/tasks/bosstask/SlimeyBoyTask.java +++ b/source/core/src/main/com/csse3200/game/components/tasks/bosstask/SlimeyBoyTask.java @@ -2,6 +2,7 @@ import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.utils.Array; +import com.badlogic.gdx.utils.Timer; import com.csse3200.game.ai.tasks.DefaultTask; import com.csse3200.game.ai.tasks.PriorityTask; import com.csse3200.game.components.CombatStatsComponent; @@ -10,6 +11,7 @@ import com.csse3200.game.physics.PhysicsLayer; import com.csse3200.game.physics.components.PhysicsMovementComponent; import com.csse3200.game.rendering.AnimationRenderComponent; +import com.csse3200.game.services.GameTime; import com.csse3200.game.services.ServiceLocator; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -30,11 +32,27 @@ public class SlimeyBoyTask extends DefaultTask implements PriorityTask { private SlimeState state = SlimeState.IDLE; // set initial state to random unused state private SlimeState prevState; private Entity targetEntity; + private final GameTime gameTime; + private long lastTimeBounced; + private static final long BOUNCE_TIME = 1600; + /** + * States that the slime cycles through + */ private enum SlimeState { IDLE, MOVE, PROJECTILE_EXPLOSION, PROJECTILE_IDLE, TAKE_HIT, TRANSFORM } + /** + * Constructor for this task + */ + public SlimeyBoyTask() { + gameTime = ServiceLocator.getTimeSource(); + } + + /** + * What is called when task is assigned + */ @Override public void start() { super.start(); @@ -43,8 +61,18 @@ public void start() { currentPos = owner.getEntity().getPosition(); // get current position slimey.getComponent(PhysicsMovementComponent.class).setSpeed(SLIMEY_SPEED); // set speed changeState(SlimeState.TRANSFORM); + slimey.getEvents().trigger("demon_death_sound"); + Timer.schedule(new Timer.Task() { + @Override + public void run() { + slimey.getEvents().trigger("slime_pop_sound"); + } + }, 6f); } + /** + * What is run every frame update + */ @Override public void update() { animate(); @@ -64,8 +92,13 @@ public void update() { slimey, MAX_RADIUS, PhysicsLayer.HUMANS), health); changeState(SlimeState.TAKE_HIT); } + if (gameTime.getTime() - lastTimeBounced >= BOUNCE_TIME) { + lastTimeBounced = gameTime.getTime(); + slimey.getEvents().trigger("slime_jump_sound"); + } } case TAKE_HIT -> { + slimey.getEvents().trigger("slimey_splat_sound"); slimey.setFlagForDelete(true); } } @@ -105,7 +138,9 @@ private void animate() { * Find the closest human entity and start moving towards them */ private void seekAndDestroy() { + lastTimeBounced = gameTime.getTime() - BOUNCE_TIME; changeState(SlimeState.MOVE); + targetEntity = ServiceLocator.getEntityService().getClosestEntityOfLayer( slimey, PhysicsLayer.HUMANS); Vector2 targetPos; @@ -146,6 +181,9 @@ private void applyAoeDamage(Array targets, int damage) { } } + /** + * @return priority of class + */ @Override public int getPriority() { return PRIORITY; diff --git a/source/core/src/main/com/csse3200/game/components/tasks/waves/LevelWaves.java b/source/core/src/main/com/csse3200/game/components/tasks/waves/LevelWaves.java index 0c59b6c59..54010fb54 100644 --- a/source/core/src/main/com/csse3200/game/components/tasks/waves/LevelWaves.java +++ b/source/core/src/main/com/csse3200/game/components/tasks/waves/LevelWaves.java @@ -65,7 +65,7 @@ public WaveClass getWave(int index) { public void spawnWave() { if (gameTime.getTime() >= startTime + spawnDelay * 1000) { do { - currentRandom = rand.nextInt(1, 7); + currentRandom = rand.nextInt(0, ServiceLocator.getMapService().getHeight()); } while (currentRandom == previousRandom); ServiceLocator.getWaveService().setNextLane(currentRandom); GridPoint2 randomPos = new GridPoint2(19, currentRandom); diff --git a/source/core/src/main/com/csse3200/game/components/tower/TNTDamageComponent.java b/source/core/src/main/com/csse3200/game/components/tower/TNTDamageComponent.java index 775653651..e7ba86ef6 100644 --- a/source/core/src/main/com/csse3200/game/components/tower/TNTDamageComponent.java +++ b/source/core/src/main/com/csse3200/game/components/tower/TNTDamageComponent.java @@ -124,6 +124,7 @@ private void applyDamage(Fixture me, Fixture other) { Body targetBody = physicsComponent.getBody(); Vector2 direction = target.getCenterPosition().sub(entity.getCenterPosition()).nor(); + direction.y = 0; Vector2 impulse = direction.scl(knockbackForce); targetBody.applyLinearImpulse(impulse, targetBody.getWorldCenter(), true); } diff --git a/source/core/src/main/com/csse3200/game/entities/factories/MobBossFactory.java b/source/core/src/main/com/csse3200/game/entities/factories/MobBossFactory.java index 06bbd6fcf..58d2fb773 100644 --- a/source/core/src/main/com/csse3200/game/entities/factories/MobBossFactory.java +++ b/source/core/src/main/com/csse3200/game/entities/factories/MobBossFactory.java @@ -6,6 +6,7 @@ import com.csse3200.game.components.*; import com.csse3200.game.components.bosses.DemonAnimationController; import com.csse3200.game.components.bosses.PatrickAnimationController; +import com.csse3200.game.components.bosses.IceBabyAnimationController; import com.csse3200.game.components.npc.Boss1AnimationController; import com.csse3200.game.components.npc.Boss2AnimationController; import com.csse3200.game.components.tasks.bosstask.*; @@ -19,6 +20,9 @@ import com.csse3200.game.rendering.AnimationRenderComponent; import com.csse3200.game.services.ServiceLocator; +/** + * Where all entities of mob bosses are created + */ public class MobBossFactory { private static final NPCConfigs configs = FileLoader.readClass(NPCConfigs.class, "configs/Boss.json"); @@ -27,8 +31,15 @@ public class MobBossFactory { private static final int DEMON_HEALTH = 5000; private static final int DEMON_ATTACK = 0; private static final int PATRICK_ATTACK = 0; - - // Create Demon Boss + private static final int PATRICK_HEALTH = 2500; + private static final int ICEBABY_ATTACK = 0; + private static final int ICEBABY_HEALTH = 3000; + + /** + * Creates new Demon boss with its correlating tasks and animations + * + * @return Demon boss + */ public static Entity createDemonBoss() { Entity demon = createBaseBoss(); @@ -64,6 +75,11 @@ public static Entity createDemonBoss() { return demon; } + /** + * Creates end state of demon boss + * + * @return Slimey Boy + */ public static Entity createSlimeyBoy() { Entity slimeyBoy = createBaseBoss(); @@ -96,8 +112,14 @@ public static Entity createSlimeyBoy() { return slimeyBoy; } + /** + * Creates new Patrick boss with correlating tasks and animations + * + * @param health - health of the boss + * @return Patrick Boss + */ public static Entity createPatrickBoss(int health) { - Entity demon = createBaseBoss(); + Entity patrick = createBaseBoss(); // Animation addition AnimationRenderComponent animator = new AnimationRenderComponent( @@ -115,17 +137,84 @@ public static Entity createPatrickBoss(int health) { .addTask(new PatrickTask()); // Component addition - demon + patrick .addComponent(animator) .addComponent(new PatrickAnimationController()) .addComponent(aiTaskComponent) - .addComponent(new CombatStatsComponent(health, PATRICK_ATTACK)); + .addComponent(new CombatStatsComponent(PATRICK_HEALTH, PATRICK_ATTACK)); // Scale demon - demon.getComponent(AnimationRenderComponent.class).scaleEntity(); - demon.scaleHeight(4f); - demon.scaleWidth(4f); - return demon; + patrick.getComponent(AnimationRenderComponent.class).scaleEntity(); + patrick.scaleHeight(4f); + patrick.scaleWidth(4f); + return patrick; + } + + /** + * Creates a patrick entity whose sole purpose is to display death animation + * @return patrick death entity + */ + public static Entity patrickDead() { + Entity patrick = createBaseBoss(); + + // Animation addition + AnimationRenderComponent animator = new AnimationRenderComponent( + ServiceLocator.getResourceService().getAsset("images/mobboss/patrick.atlas", TextureAtlas.class)); + animator.addAnimation("patrick_death", 0.2f, Animation.PlayMode.NORMAL); + + // AI task addition + AITaskComponent aiTaskComponent = new AITaskComponent() + .addTask(new PatrickDeathTask()); + + // Component addition + patrick + .addComponent(animator) + .addComponent(new PatrickAnimationController()) + .addComponent(aiTaskComponent) + .addComponent(new CombatStatsComponent(1, 0)); + + // Scale patrick + patrick.getComponent(AnimationRenderComponent.class).scaleEntity(); + patrick.scaleHeight(4f); + patrick.scaleWidth(4f); + return patrick; + } + + /** + * Creates a new ice boss and adds its correlating animations and tasks + * + * @return - Ice Baby Boss + */ + public static Entity createIceBoss() { + Entity iceBaby = createBaseBoss(); + AITaskComponent aiTaskComponent = new AITaskComponent() + .addTask(new IceBabyTask()); + + AnimationRenderComponent animator = new AnimationRenderComponent( + ServiceLocator.getResourceService().getAsset("images/mobboss/iceBaby.atlas", TextureAtlas.class)); + animator.addAnimation("idle", 0.2f, Animation.PlayMode.NORMAL); + animator.addAnimation("1_atk", 0.2f, Animation.PlayMode.NORMAL); + animator.addAnimation("2_atk", 0.2f, Animation.PlayMode.NORMAL); + animator.addAnimation("3_atk", 0.2f, Animation.PlayMode.NORMAL); + animator.addAnimation("death", 0.2f, Animation.PlayMode.NORMAL); + animator.addAnimation("intro_or_revive", 0.2f, Animation.PlayMode.NORMAL); + animator.addAnimation("stagger", 0.2f, Animation.PlayMode.NORMAL); + animator.addAnimation("take_hit", 0.2f, Animation.PlayMode.NORMAL); + animator.addAnimation("walk", 0.2f, Animation.PlayMode.NORMAL); + + iceBaby.addComponent(aiTaskComponent); + + iceBaby + .addComponent(animator) + .addComponent(new IceBabyAnimationController()) + .addComponent(aiTaskComponent) + .addComponent(new CombatStatsComponent(ICEBABY_HEALTH, ICEBABY_ATTACK)); + + iceBaby.getComponent(AnimationRenderComponent.class).scaleEntity(); + iceBaby.scaleHeight(4f); + iceBaby.scaleWidth(4f); + + return iceBaby; } // Create Boss King 1 @@ -185,8 +274,12 @@ public static Entity createMobBoss2() { return mobBoss2; } - // Create the base boss entity - private static Entity createBaseBoss() { + + /** + * Create base boss entity that all boss mobs will inherit + * @return base mob boss entity + */ + public static Entity createBaseBoss() { Entity boss = new Entity() .addComponent(new PhysicsComponent()) .addComponent(new ColliderComponent()) @@ -199,6 +292,9 @@ private static Entity createBaseBoss() { return boss; } + /** + * Throw IllegalStateException + */ private MobBossFactory() { throw new IllegalStateException("Instantiating static util class"); } diff --git a/source/core/src/main/com/csse3200/game/entities/factories/NPCFactory.java b/source/core/src/main/com/csse3200/game/entities/factories/NPCFactory.java index ec1ed1136..8b78adc02 100644 --- a/source/core/src/main/com/csse3200/game/entities/factories/NPCFactory.java +++ b/source/core/src/main/com/csse3200/game/entities/factories/NPCFactory.java @@ -17,11 +17,10 @@ import com.csse3200.game.components.npc.WaterSlimeAnimationController; import com.csse3200.game.components.npc.WizardAnimationController; import com.csse3200.game.components.npc.XenoAnimationController; -import com.csse3200.game.components.tasks.MobAttackTask; import com.csse3200.game.components.tasks.MobDodgeTask; -import com.csse3200.game.components.tasks.MobShootTask; +import com.csse3200.game.components.tasks.MobMeleeAttackTask; +import com.csse3200.game.components.tasks.MobRangedAttackTask; import com.csse3200.game.components.tasks.MobWanderTask; -import com.csse3200.game.components.tasks.NewMobWanderTask; import com.csse3200.game.entities.Entity; import com.csse3200.game.entities.Melee; import com.csse3200.game.entities.PredefinedWeapons; @@ -36,7 +35,6 @@ import com.csse3200.game.rendering.AnimationRenderComponent; import com.csse3200.game.rendering.TextureRenderComponent; import com.csse3200.game.services.ServiceLocator; - import java.util.ArrayList; import java.util.Arrays; import java.util.Currency; @@ -61,7 +59,7 @@ public class NPCFactory { * @return entity */ public static Entity createGhost() { - Entity ghost = createBaseNPC(); + Entity ghost = createMeleeBaseNPC(); BaseEntityConfig config = configs.ghost; /** AnimationRenderComponent animator = @@ -87,7 +85,7 @@ public static Entity createGhost() { * @return entity */ public static Entity createGhostKing() { - Entity ghostKing = createBaseNPC(); + Entity ghostKing = createMeleeBaseNPC(); GhostKingConfig config = configs.ghostKing; AnimationRenderComponent animator = @@ -112,7 +110,7 @@ public static Entity createGhostKing() { * @return entity */ public static Entity createSkeleton() { - Entity skeleton = createBaseNPC(); + Entity skeleton = createMeleeBaseNPC(); BaseEnemyConfig config = configs.xenoGrunt; ArrayList melee = new ArrayList<>(Arrays.asList(PredefinedWeapons.sword, PredefinedWeapons.kick)); // tester projectiles @@ -143,7 +141,7 @@ public static Entity createSkeleton() { * @return entity */ public static Entity createWizard() { - Entity wizard = createBaseNPC(); + Entity wizard = createRangedBaseNPC(); BaseEnemyConfig config = configs.xenoGrunt; ArrayList melee = new ArrayList<>(Arrays.asList(PredefinedWeapons.sword, PredefinedWeapons.kick)); // tester projectiles @@ -168,12 +166,12 @@ public static Entity createWizard() { return wizard; } /** - * Creates a wizard entity. + * Creates a water queen entity. * * @return entity */ public static Entity createWaterQueen() { - Entity wizard = createBaseNPC(); + Entity wizard = createRangedBaseNPC(); BaseEnemyConfig config = configs.xenoGrunt; ArrayList melee = new ArrayList<>(Arrays.asList(PredefinedWeapons.sword, PredefinedWeapons.kick)); // tester projectiles @@ -198,12 +196,12 @@ public static Entity createWaterQueen() { return wizard; } /** - * Creates a wizard entity. + * Creates a water slime entity. * * @return entity */ - public static Entity createWaterSlime() { - Entity waterSlime = createBaseNPC(); + public static Entity createBaseWaterSlime() { + Entity waterSlime = createMeleeBaseNPC(); BaseEnemyConfig config = configs.xenoGrunt; ArrayList melee = new ArrayList<>(Arrays.asList(PredefinedWeapons.sword, PredefinedWeapons.kick)); // tester projectiles @@ -215,7 +213,7 @@ public static Entity createWaterSlime() { ServiceLocator.getResourceService().getAsset("images/mobs/water_slime.atlas", TextureAtlas.class)); animator.addAnimation("water_slime_walk", 0.1f, Animation.PlayMode.LOOP); animator.addAnimation("water_slime_attack", 0.1f); - animator.addAnimation("water_slime_death", 0.1f); + animator.addAnimation("water_slime_death", 0.2f); animator.addAnimation("default", 0.1f); waterSlime .addComponent(new CombatStatsComponent(config.fullHeath, config.baseAttack, drops, melee, projectiles)) @@ -233,7 +231,7 @@ public static Entity createWaterSlime() { * @return entity */ public static Entity createFireWorm() { - Entity fireWorm = createBaseNPC(); + Entity fireWorm = createRangedBaseNPC(); BaseEnemyConfig config = configs.xenoGrunt; ArrayList melee = new ArrayList<>(Arrays.asList(PredefinedWeapons.sword, PredefinedWeapons.kick)); // tester projectiles @@ -263,7 +261,7 @@ public static Entity createFireWorm() { * @return entity */ public static Entity createDragonKnight() { - Entity dragonKnight = createBaseNPC(); + Entity dragonKnight = createMeleeBaseNPC(); BaseEnemyConfig config = configs.xenoGrunt; ArrayList melee = new ArrayList<>(Arrays.asList(PredefinedWeapons.sword, PredefinedWeapons.kick)); // tester projectiles @@ -295,7 +293,7 @@ public static Entity createDragonKnight() { * @return entity */ public static Entity createXenoGrunt() { - Entity xenoGrunt = createBaseNPC(); + Entity xenoGrunt = createMeleeBaseNPC(); BaseEnemyConfig config = configs.xenoGrunt; ArrayList melee = new ArrayList<>(Arrays.asList(PredefinedWeapons.sword, PredefinedWeapons.kick)); // tester projectiles @@ -323,18 +321,43 @@ public static Entity createXenoGrunt() { return xenoGrunt; } + /** + * Creates a generic NPC to be used as a base entity by more specific NPC creation methods. + * + * @return entity + */ + public static Entity createMeleeBaseNPC() { + AITaskComponent aiComponent = + new AITaskComponent() + .addTask(new MobWanderTask(new Vector2(2f, 2f), 2f)) + .addTask(new MobMeleeAttackTask(2, 2f)); + // .addTask(new MobAttackTask(2, 2f)); + // .addTask(new MeleeMobTask(new Vector2(2f, 2f), 2f)); - + // .addTask(new MobAttackTask(2, 40)); + Entity npc = + new Entity() + .addComponent(new PhysicsComponent()) + .addComponent(new PhysicsMovementComponent()) + .addComponent(new ColliderComponent()) + .addComponent(new HitboxComponent().setLayer(PhysicsLayer.XENO)) + .addComponent(new TouchAttackComponent(PhysicsLayer.HUMANS)) + .addComponent(aiComponent); + PhysicsUtils.setScaledCollider(npc, 0.3f, 0.5f); + return npc; + } /** * Creates a generic NPC to be used as a base entity by more specific NPC creation methods. * * @return entity */ - public static Entity createBaseNPC() { + public static Entity createRangedBaseNPC() { AITaskComponent aiComponent = new AITaskComponent() .addTask(new MobWanderTask(new Vector2(2f, 2f), 2f)) - .addTask(new MobAttackTask(2, 40)); + // .addTask(new MobAttackTask(2, 2f)); + .addTask(new MobRangedAttackTask(2, 2f)); + // .addTask(new MeleeMobTask(new Vector2(2f, 2f), 2f)); // .addTask(new MobAttackTask(2, 40)); Entity npc = @@ -353,37 +376,44 @@ private NPCFactory() { throw new IllegalStateException("Instantiating static util class"); } - // * COW'S TESTING ARENA DONT TOUCH - public static Entity createSplittingXenoGrunt() { - Entity splitXenoGrunt = createXenoGrunt() - // add the scaling yourself. can also scale the X and Y component, - // leading to some very interesting mob designs. - .addComponent(new SplitMoblings(7, 0.5f)) - .addComponent(new DodgingComponent(PhysicsLayer.PROJECTILE, 0.25f)); - - // * TEMPORARY TESTING FOR PROJECTILE DODGING - splitXenoGrunt.getComponent(AITaskComponent.class).addTask(new MobDodgeTask(new Vector2(2f, 2f), 2f, 5)); - return splitXenoGrunt; + /** + * Create Splitting water slime + * + * @return + */ + public static Entity createSplittingWaterSlime() { + Entity splitWaterSlime = createBaseWaterSlime() + + .addComponent(new SplitMoblings(7, 0.5f)); + + return splitWaterSlime; } + /** + * Create a dodging Dragon Knight + * + * @return + */ public static Entity createDodgingDragonKnight() { Entity fireWorm = createDragonKnight(); fireWorm.addComponent(new DodgingComponent(PhysicsLayer.PROJECTILE, 0.25f)); - fireWorm.getComponent(AITaskComponent.class).addTask(new MobDodgeTask(new Vector2(2f, 2f), 2f, 5)); return fireWorm; } - public static Entity createDeflectXenoGrunt() { - Entity deflectXenoGrunt = createXenoGrunt(); - deflectXenoGrunt.addComponent(new DeflectingComponent( + /** + * Creates a wizard that can deflect bullets + * @return + */ + public static Entity createDeflectWizard() { + Entity deflectWizard = createWizard(); + deflectWizard.addComponent(new DeflectingComponent( PhysicsLayer.PROJECTILE, PhysicsLayer.TOWER, 10)); - return deflectXenoGrunt; + return deflectWizard; } - } diff --git a/source/core/src/main/com/csse3200/game/entities/factories/PlayerFactory.java b/source/core/src/main/com/csse3200/game/entities/factories/PlayerFactory.java index 9686e829d..b8371a08f 100644 --- a/source/core/src/main/com/csse3200/game/entities/factories/PlayerFactory.java +++ b/source/core/src/main/com/csse3200/game/entities/factories/PlayerFactory.java @@ -44,7 +44,7 @@ public static Entity createPlayer() { .addComponent(new TouchAttackComponent(PhysicsLayer.NPC)) .addComponent(new HitboxComponent().setLayer(PhysicsLayer.HUMANS)) .addComponent(new PlayerActions()) - .addComponent(new CombatStatsComponent(1000, 5000)) + .addComponent(new CombatStatsComponent(1000, 0)) .addComponent(new InventoryComponent(stats.gold)) .addComponent(inputComponent) .addComponent(new PlayerStatsDisplay()); diff --git a/source/core/src/main/com/csse3200/game/entities/factories/TowerFactory.java b/source/core/src/main/com/csse3200/game/entities/factories/TowerFactory.java index 35f691af7..a029672d5 100644 --- a/source/core/src/main/com/csse3200/game/entities/factories/TowerFactory.java +++ b/source/core/src/main/com/csse3200/game/entities/factories/TowerFactory.java @@ -290,7 +290,7 @@ public static Entity createFireTower() { .getAsset(FIRE_TOWER_ATLAS, TextureAtlas.class)); animator.addAnimation(FIRE_TOWER_IDLE_ANIM, FIRE_TOWER_IDLE_SPEED, Animation.PlayMode.LOOP); animator.addAnimation(FIRE_TOWER_PREP_ATTACK_ANIM, FIRE_TOWER_PREP_ATTACK_SPEED, Animation.PlayMode.NORMAL); - animator.addAnimation(FIRE_TOWER_ATTACK_ANIM, FIRE_TOWER_ATTACK_SPEED, Animation.PlayMode.LOOP); + animator.addAnimation(FIRE_TOWER_ATTACK_ANIM, FIRE_TOWER_ATTACK_SPEED+ 0.25f, Animation.PlayMode.LOOP); animator.addAnimation(FIRE_TOWER_DEATH_ANIM, FIRE_TOWER_DEATH_SPEED, Animation.PlayMode.NORMAL); fireTower @@ -319,7 +319,7 @@ public static Entity createStunTower() { ServiceLocator.getResourceService() .getAsset(STUN_TOWER_ATLAS, TextureAtlas.class)); animator.addAnimation(STUN_TOWER_IDLE_ANIM, STUN_TOWER_IDLE_SPEED, Animation.PlayMode.LOOP); - animator.addAnimation(STUN_TOWER_ATTACK_ANIM, STUN_TOWER_ATTACK_SPEED, Animation.PlayMode.NORMAL); + animator.addAnimation(STUN_TOWER_ATTACK_ANIM, STUN_TOWER_ATTACK_SPEED+ 0.25f, Animation.PlayMode.LOOP); animator.addAnimation(STUN_TOWER_DEATH_ANIM, STUN_TOWER_DEATH_SPEED, Animation.PlayMode.NORMAL); stunTower diff --git a/source/core/src/main/com/csse3200/game/entities/factories/WaveFactory.java b/source/core/src/main/com/csse3200/game/entities/factories/WaveFactory.java index d059a6efb..c0fe2af57 100644 --- a/source/core/src/main/com/csse3200/game/entities/factories/WaveFactory.java +++ b/source/core/src/main/com/csse3200/game/entities/factories/WaveFactory.java @@ -18,13 +18,21 @@ public class WaveFactory { */ public static Entity createWaves() { HashMap mobs = new HashMap<>(); - mobs.put("Xeno", 3); - mobs.put("DodgingDragon", 4); + // mobs.put("Xeno", 1); + mobs.put("DodgingDragon", 3); + mobs.put("SplittingWaterSlime", 3); + mobs.put("DeflectWizard", 3); + mobs.put("WaterQueen", 3); + mobs.put("FireWorm", 3); + mobs.put("Skeleton", 3); + // mobs.put("DemonBoss", 1); + mobs.put("PatrickBoss", 1); + mobs.put("IceBoss", 1); HashMap mobs2 = new HashMap<>(); - mobs2.put("Xeno", 3); + // mobs2.put("Xeno", 3); WaveClass wave1 = new WaveClass(mobs); WaveClass wave2 = new WaveClass(mobs2); - LevelWaves level = new LevelWaves(10); + LevelWaves level = new LevelWaves(3); level.addWave(wave1); level.addWave(wave2); AITaskComponent aiComponent = diff --git a/source/core/src/main/com/csse3200/game/screens/DesertGameScreen.java b/source/core/src/main/com/csse3200/game/screens/DesertGameScreen.java deleted file mode 100644 index 649190860..000000000 --- a/source/core/src/main/com/csse3200/game/screens/DesertGameScreen.java +++ /dev/null @@ -1,196 +0,0 @@ -package com.csse3200.game.screens; - -import com.badlogic.gdx.Gdx; -import com.badlogic.gdx.ScreenAdapter; -import com.badlogic.gdx.graphics.OrthographicCamera; -import com.badlogic.gdx.graphics.Texture; -import com.badlogic.gdx.graphics.g2d.SpriteBatch; -import com.badlogic.gdx.math.Vector2; -import com.badlogic.gdx.scenes.scene2d.Stage; -import com.badlogic.gdx.utils.viewport.ScreenViewport; -import com.badlogic.gdx.utils.viewport.Viewport; -import com.csse3200.game.GdxGame; -import com.csse3200.game.areas.ForestGameArea; -import com.csse3200.game.areas.terrain.TerrainFactory; -import com.csse3200.game.components.gamearea.PerformanceDisplay; -import com.csse3200.game.components.maingame.MainGameActions; -import com.csse3200.game.entities.Entity; -import com.csse3200.game.entities.EntityService; -import com.csse3200.game.entities.factories.RenderFactory; -import com.csse3200.game.input.DropInputComponent; -import com.csse3200.game.input.InputComponent; -import com.csse3200.game.input.InputDecorator; -import com.csse3200.game.input.InputService; -import com.csse3200.game.physics.PhysicsEngine; -import com.csse3200.game.physics.PhysicsService; -import com.csse3200.game.rendering.RenderService; -import com.csse3200.game.rendering.Renderer; -import com.csse3200.game.services.*; -import com.csse3200.game.ui.terminal.Terminal; -import com.csse3200.game.ui.terminal.TerminalDisplay; -import com.csse3200.game.components.maingame.MainGameExitDisplay; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class DesertGameScreen extends ScreenAdapter { - private static final Logger logger = LoggerFactory.getLogger(DesertGameScreen.class); - private static final String[] mainGameTextures = {"images/heart.png"}; - private static final Vector2 CAMERA_POSITION = new Vector2(10f, 5.64f); - - private final GdxGame game; - private final Renderer renderer; - private final PhysicsEngine physicsEngine; - - private final Stage stage; - static int screenWidth = Gdx.graphics.getWidth(); - static int screenHeight = Gdx.graphics.getHeight(); - - private Entity ui; - - - public static int viewportWidth = screenWidth; - public static int viewportHeight= screenHeight; - - - - private OrthographicCamera camera; - private SpriteBatch batch; - - private Texture backgroundTexture; - - public DesertGameScreen(GdxGame game) { - this.game = game; - camera = new OrthographicCamera(); - camera.setToOrtho(false, viewportWidth, viewportHeight); - camera.position.set((float) (viewportWidth / 2), (float) (viewportHeight / 2), 0); - - batch = new SpriteBatch(); - - Viewport viewport = new ScreenViewport(camera); - stage = new Stage(viewport, new SpriteBatch()); - - - - logger.debug("Initialising main game screen services"); - ServiceLocator.registerTimeSource(new GameTime()); - - PhysicsService physicsService = new PhysicsService(); - ServiceLocator.registerPhysicsService(physicsService); - physicsEngine = physicsService.getPhysics(); - - ServiceLocator.registerInputService(new InputService()); - ServiceLocator.registerResourceService(new ResourceService()); - - ServiceLocator.registerCurrencyService(new CurrencyService()); - - ServiceLocator.registerEntityService(new EntityService()); - ServiceLocator.registerRenderService(new RenderService()); - ServiceLocator.registerGameEndService(new GameEndService()); - - renderer = RenderFactory.createRenderer(); - renderer.getCamera().getEntity().setPosition(CAMERA_POSITION); - renderer.getDebug().renderPhysicsWorld(physicsEngine.getWorld()); - InputComponent inputHandler = new DropInputComponent(renderer.getCamera().getCamera()); - ServiceLocator.getInputService().register(inputHandler); - - ServiceLocator.getCurrencyService().getDisplay().setCamera(renderer.getCamera().getCamera()); - - loadAssets(); - createUI(); - - logger.debug("Initialising main game screen entities"); - TerrainFactory terrainFactory = new TerrainFactory(renderer.getCamera()); - ForestGameArea forestGameArea = new ForestGameArea(terrainFactory); - forestGameArea.create(); - } - - @Override - public void render(float delta) { - physicsEngine.update(); - ServiceLocator.getEntityService().update(); - - // Check if the game has ended - if (ServiceLocator.getGameEndService().hasGameEnded()) { - ui.getEvents().trigger("lose"); - } - - batch.setProjectionMatrix(camera.combined); - batch.begin(); - batch.draw(backgroundTexture, 0, 0, viewportWidth, viewportHeight); - batch.end(); - - - renderer.render(); - stage.act(Math.min(Gdx.graphics.getDeltaTime(), 1 / 30f)); - stage.draw(); - } - - - - - @Override - public void resize(int width, int height) { - renderer.resize(width, height); - logger.trace("Resized renderer: ({} x {})", width, height); - } - - @Override - public void pause() { - logger.info("Game paused"); - } - - @Override - public void resume() { - logger.info("Game resumed"); - } - - @Override - public void dispose() { - logger.debug("Disposing main game screen"); - - renderer.dispose(); - unloadAssets(); - - ServiceLocator.getEntityService().dispose(); - ServiceLocator.getRenderService().dispose(); - ServiceLocator.getResourceService().dispose(); - - ServiceLocator.clear(); - } - - private void loadAssets() { - logger.debug("Loading assets"); - ResourceService resourceService = ServiceLocator.getResourceService(); - resourceService.loadTextures(mainGameTextures); - backgroundTexture = new Texture("images/Dusty_MoonBG.png"); // Load the background image - ServiceLocator.getResourceService().loadAll(); - } - - private void unloadAssets() { - logger.debug("Unloading assets"); - ResourceService resourceService = ServiceLocator.getResourceService(); - resourceService.unloadAssets(mainGameTextures); - } - - /** - * Creates the main game's ui including components for rendering ui elements to the screen and - * capturing and handling ui input. - */ - private void createUI() { - logger.debug("Creating ui"); - Stage stage = ServiceLocator.getRenderService().getStage(); - InputComponent inputComponent = - ServiceLocator.getInputService().getInputFactory().createForTerminal(); - - Entity ui = new Entity(); - ui.addComponent(new InputDecorator(stage, 10)) - .addComponent(new PerformanceDisplay()) - .addComponent(new MainGameActions(this.game)) - .addComponent(new MainGameExitDisplay()) - .addComponent(new Terminal()) - .addComponent(inputComponent) - .addComponent(new TerminalDisplay()); - - ServiceLocator.getEntityService().register(ui); - } -} \ No newline at end of file diff --git a/source/core/src/main/com/csse3200/game/screens/IceGameScreen.java b/source/core/src/main/com/csse3200/game/screens/IceGameScreen.java deleted file mode 100644 index e35c88b85..000000000 --- a/source/core/src/main/com/csse3200/game/screens/IceGameScreen.java +++ /dev/null @@ -1,196 +0,0 @@ -package com.csse3200.game.screens; - -import com.badlogic.gdx.Gdx; -import com.badlogic.gdx.ScreenAdapter; -import com.badlogic.gdx.graphics.OrthographicCamera; -import com.badlogic.gdx.graphics.Texture; -import com.badlogic.gdx.graphics.g2d.SpriteBatch; -import com.badlogic.gdx.math.Vector2; -import com.badlogic.gdx.scenes.scene2d.Stage; -import com.badlogic.gdx.utils.viewport.ScreenViewport; -import com.badlogic.gdx.utils.viewport.Viewport; -import com.csse3200.game.GdxGame; -import com.csse3200.game.areas.ForestGameArea; -import com.csse3200.game.areas.terrain.TerrainFactory; -import com.csse3200.game.components.gamearea.PerformanceDisplay; -import com.csse3200.game.components.maingame.MainGameActions; -import com.csse3200.game.entities.Entity; -import com.csse3200.game.entities.EntityService; -import com.csse3200.game.entities.factories.RenderFactory; -import com.csse3200.game.input.DropInputComponent; -import com.csse3200.game.input.InputComponent; -import com.csse3200.game.input.InputDecorator; -import com.csse3200.game.input.InputService; -import com.csse3200.game.physics.PhysicsEngine; -import com.csse3200.game.physics.PhysicsService; -import com.csse3200.game.rendering.RenderService; -import com.csse3200.game.rendering.Renderer; -import com.csse3200.game.services.*; -import com.csse3200.game.ui.terminal.Terminal; -import com.csse3200.game.ui.terminal.TerminalDisplay; -import com.csse3200.game.components.maingame.MainGameExitDisplay; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class IceGameScreen extends ScreenAdapter { - private static final Logger logger = LoggerFactory.getLogger(IceGameScreen.class); - private static final String[] mainGameTextures = {"images/heart.png"}; - private static final Vector2 CAMERA_POSITION = new Vector2(10f, 5.64f); - - private final GdxGame game; - private final Renderer renderer; - private final PhysicsEngine physicsEngine; - - private final Stage stage; - static int screenWidth = Gdx.graphics.getWidth(); - static int screenHeight = Gdx.graphics.getHeight(); - - private Entity ui; - - - public static int viewportWidth = screenWidth; - public static int viewportHeight= screenHeight; - - - - private OrthographicCamera camera; - private SpriteBatch batch; - - private Texture backgroundTexture; - - public IceGameScreen(GdxGame game) { - this.game = game; - camera = new OrthographicCamera(); - camera.setToOrtho(false, viewportWidth, viewportHeight); - camera.position.set((float) (viewportWidth / 2), (float) (viewportHeight / 2), 0); - - batch = new SpriteBatch(); - - Viewport viewport = new ScreenViewport(camera); - stage = new Stage(viewport, new SpriteBatch()); - - - - logger.debug("Initialising main game screen services"); - ServiceLocator.registerTimeSource(new GameTime()); - - PhysicsService physicsService = new PhysicsService(); - ServiceLocator.registerPhysicsService(physicsService); - physicsEngine = physicsService.getPhysics(); - - ServiceLocator.registerInputService(new InputService()); - ServiceLocator.registerResourceService(new ResourceService()); - - ServiceLocator.registerCurrencyService(new CurrencyService()); - - ServiceLocator.registerEntityService(new EntityService()); - ServiceLocator.registerRenderService(new RenderService()); - ServiceLocator.registerGameEndService(new GameEndService()); - - renderer = RenderFactory.createRenderer(); - renderer.getCamera().getEntity().setPosition(CAMERA_POSITION); - renderer.getDebug().renderPhysicsWorld(physicsEngine.getWorld()); - InputComponent inputHandler = new DropInputComponent(renderer.getCamera().getCamera()); - ServiceLocator.getInputService().register(inputHandler); - - ServiceLocator.getCurrencyService().getDisplay().setCamera(renderer.getCamera().getCamera()); - - loadAssets(); - createUI(); - - logger.debug("Initialising main game screen entities"); - TerrainFactory terrainFactory = new TerrainFactory(renderer.getCamera()); - ForestGameArea forestGameArea = new ForestGameArea(terrainFactory); - forestGameArea.create(); - } - - @Override - public void render(float delta) { - physicsEngine.update(); - ServiceLocator.getEntityService().update(); - - // Check if the game has ended - if (ServiceLocator.getGameEndService().hasGameEnded()) { - ui.getEvents().trigger("lose"); - } - - batch.setProjectionMatrix(camera.combined); - batch.begin(); - batch.draw(backgroundTexture, 0, 0, viewportWidth, viewportHeight); - batch.end(); - - - renderer.render(); - stage.act(Math.min(Gdx.graphics.getDeltaTime(), 1 / 30f)); - stage.draw(); - } - - - - - @Override - public void resize(int width, int height) { - renderer.resize(width, height); - logger.trace("Resized renderer: ({} x {})", width, height); - } - - @Override - public void pause() { - logger.info("Game paused"); - } - - @Override - public void resume() { - logger.info("Game resumed"); - } - - @Override - public void dispose() { - logger.debug("Disposing main game screen"); - - renderer.dispose(); - unloadAssets(); - - ServiceLocator.getEntityService().dispose(); - ServiceLocator.getRenderService().dispose(); - ServiceLocator.getResourceService().dispose(); - - ServiceLocator.clear(); - } - - private void loadAssets() { - logger.debug("Loading assets"); - ResourceService resourceService = ServiceLocator.getResourceService(); - resourceService.loadTextures(mainGameTextures); - backgroundTexture = new Texture("images/Dusty_MoonBG.png"); // Load the background image - ServiceLocator.getResourceService().loadAll(); - } - - private void unloadAssets() { - logger.debug("Unloading assets"); - ResourceService resourceService = ServiceLocator.getResourceService(); - resourceService.unloadAssets(mainGameTextures); - } - - /** - * Creates the main game's ui including components for rendering ui elements to the screen and - * capturing and handling ui input. - */ - private void createUI() { - logger.debug("Creating ui"); - Stage stage = ServiceLocator.getRenderService().getStage(); - InputComponent inputComponent = - ServiceLocator.getInputService().getInputFactory().createForTerminal(); - - Entity ui = new Entity(); - ui.addComponent(new InputDecorator(stage, 10)) - .addComponent(new PerformanceDisplay()) - .addComponent(new MainGameActions(this.game)) - .addComponent(new MainGameExitDisplay()) - .addComponent(new Terminal()) - .addComponent(inputComponent) - .addComponent(new TerminalDisplay()); - - ServiceLocator.getEntityService().register(ui); - } -} \ No newline at end of file diff --git a/source/core/src/main/com/csse3200/game/screens/LavaGameScreen.java b/source/core/src/main/com/csse3200/game/screens/LavaGameScreen.java deleted file mode 100644 index a0ec8d06f..000000000 --- a/source/core/src/main/com/csse3200/game/screens/LavaGameScreen.java +++ /dev/null @@ -1,196 +0,0 @@ -package com.csse3200.game.screens; - -import com.badlogic.gdx.Gdx; -import com.badlogic.gdx.ScreenAdapter; -import com.badlogic.gdx.graphics.OrthographicCamera; -import com.badlogic.gdx.graphics.Texture; -import com.badlogic.gdx.graphics.g2d.SpriteBatch; -import com.badlogic.gdx.math.Vector2; -import com.badlogic.gdx.scenes.scene2d.Stage; -import com.badlogic.gdx.utils.viewport.ScreenViewport; -import com.badlogic.gdx.utils.viewport.Viewport; -import com.csse3200.game.GdxGame; -import com.csse3200.game.areas.ForestGameArea; -import com.csse3200.game.areas.terrain.TerrainFactory; -import com.csse3200.game.components.gamearea.PerformanceDisplay; -import com.csse3200.game.components.maingame.MainGameActions; -import com.csse3200.game.entities.Entity; -import com.csse3200.game.entities.EntityService; -import com.csse3200.game.entities.factories.RenderFactory; -import com.csse3200.game.input.DropInputComponent; -import com.csse3200.game.input.InputComponent; -import com.csse3200.game.input.InputDecorator; -import com.csse3200.game.input.InputService; -import com.csse3200.game.physics.PhysicsEngine; -import com.csse3200.game.physics.PhysicsService; -import com.csse3200.game.rendering.RenderService; -import com.csse3200.game.rendering.Renderer; -import com.csse3200.game.services.*; -import com.csse3200.game.ui.terminal.Terminal; -import com.csse3200.game.ui.terminal.TerminalDisplay; -import com.csse3200.game.components.maingame.MainGameExitDisplay; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class LavaGameScreen extends ScreenAdapter { - private static final Logger logger = LoggerFactory.getLogger(LavaGameScreen.class); - private static final String[] mainGameTextures = {"images/heart.png"}; - private static final Vector2 CAMERA_POSITION = new Vector2(10f, 5.64f); - - private final GdxGame game; - private final Renderer renderer; - private final PhysicsEngine physicsEngine; - - private final Stage stage; - static int screenWidth = Gdx.graphics.getWidth(); - static int screenHeight = Gdx.graphics.getHeight(); - - private Entity ui; - - - public static int viewportWidth = screenWidth; - public static int viewportHeight= screenHeight; - - - - private OrthographicCamera camera; - private SpriteBatch batch; - - private Texture backgroundTexture; - - public LavaGameScreen(GdxGame game) { - this.game = game; - camera = new OrthographicCamera(); - camera.setToOrtho(false, viewportWidth, viewportHeight); - camera.position.set((float) (viewportWidth / 2), (float) (viewportHeight / 2), 0); - - batch = new SpriteBatch(); - - Viewport viewport = new ScreenViewport(camera); - stage = new Stage(viewport, new SpriteBatch()); - - - - logger.debug("Initialising main game screen services"); - ServiceLocator.registerTimeSource(new GameTime()); - - PhysicsService physicsService = new PhysicsService(); - ServiceLocator.registerPhysicsService(physicsService); - physicsEngine = physicsService.getPhysics(); - - ServiceLocator.registerInputService(new InputService()); - ServiceLocator.registerResourceService(new ResourceService()); - - ServiceLocator.registerCurrencyService(new CurrencyService()); - - ServiceLocator.registerEntityService(new EntityService()); - ServiceLocator.registerRenderService(new RenderService()); - ServiceLocator.registerGameEndService(new GameEndService()); - - renderer = RenderFactory.createRenderer(); - renderer.getCamera().getEntity().setPosition(CAMERA_POSITION); - renderer.getDebug().renderPhysicsWorld(physicsEngine.getWorld()); - InputComponent inputHandler = new DropInputComponent(renderer.getCamera().getCamera()); - ServiceLocator.getInputService().register(inputHandler); - - ServiceLocator.getCurrencyService().getDisplay().setCamera(renderer.getCamera().getCamera()); - - loadAssets(); - createUI(); - - logger.debug("Initialising main game screen entities"); - TerrainFactory terrainFactory = new TerrainFactory(renderer.getCamera()); - ForestGameArea forestGameArea = new ForestGameArea(terrainFactory); - forestGameArea.create(); - } - - @Override - public void render(float delta) { - physicsEngine.update(); - ServiceLocator.getEntityService().update(); - - // Check if the game has ended - if (ServiceLocator.getGameEndService().hasGameEnded()) { - ui.getEvents().trigger("lose"); - } - - batch.setProjectionMatrix(camera.combined); - batch.begin(); - batch.draw(backgroundTexture, 0, 0, viewportWidth, viewportHeight); - batch.end(); - - - renderer.render(); - stage.act(Math.min(Gdx.graphics.getDeltaTime(), 1 / 30f)); - stage.draw(); - } - - - - - @Override - public void resize(int width, int height) { - renderer.resize(width, height); - logger.trace("Resized renderer: ({} x {})", width, height); - } - - @Override - public void pause() { - logger.info("Game paused"); - } - - @Override - public void resume() { - logger.info("Game resumed"); - } - - @Override - public void dispose() { - logger.debug("Disposing main game screen"); - - renderer.dispose(); - unloadAssets(); - - ServiceLocator.getEntityService().dispose(); - ServiceLocator.getRenderService().dispose(); - ServiceLocator.getResourceService().dispose(); - - ServiceLocator.clear(); - } - - private void loadAssets() { - logger.debug("Loading assets"); - ResourceService resourceService = ServiceLocator.getResourceService(); - resourceService.loadTextures(mainGameTextures); - backgroundTexture = new Texture("images/Dusty_MoonBG.png"); // Load the background image - ServiceLocator.getResourceService().loadAll(); - } - - private void unloadAssets() { - logger.debug("Unloading assets"); - ResourceService resourceService = ServiceLocator.getResourceService(); - resourceService.unloadAssets(mainGameTextures); - } - - /** - * Creates the main game's ui including components for rendering ui elements to the screen and - * capturing and handling ui input. - */ - private void createUI() { - logger.debug("Creating ui"); - Stage stage = ServiceLocator.getRenderService().getStage(); - InputComponent inputComponent = - ServiceLocator.getInputService().getInputFactory().createForTerminal(); - - Entity ui = new Entity(); - ui.addComponent(new InputDecorator(stage, 10)) - .addComponent(new PerformanceDisplay()) - .addComponent(new MainGameActions(this.game)) - .addComponent(new MainGameExitDisplay()) - .addComponent(new Terminal()) - .addComponent(inputComponent) - .addComponent(new TerminalDisplay()); - - ServiceLocator.getEntityService().register(ui); - } -} \ No newline at end of file diff --git a/source/core/src/main/com/csse3200/game/screens/LevelSelectScreen.java b/source/core/src/main/com/csse3200/game/screens/LevelSelectScreen.java index 93a78401c..bf2de6a5c 100644 --- a/source/core/src/main/com/csse3200/game/screens/LevelSelectScreen.java +++ b/source/core/src/main/com/csse3200/game/screens/LevelSelectScreen.java @@ -104,38 +104,11 @@ private void spawnPlanetBorders() { logger.info("Loading level {}", planet[4]); GameLevelData.setSelectedLevel(planet[4]); game.setScreen(new TurretSelectionScreen(game)); -// if (planet[4] == 0) { -// handleDesertPlanetClick(); -// game.setScreen(new TurretSelectionScreen(game)); -// } else if (planet[4] == 1) { -// handleIcePlanetClick(); -// game.setScreen(new TurretSelectionScreen(game)); -// } else if (planet[4] == 2) { -// handleLavaPlanetClick(); -// game.setScreen(new TurretSelectionScreen(game)); -// } } } } } - private void handleDesertPlanetClick() { - // Implement logic for when the desert planet is clicked - logger.info("Desert planet clicked."); - game.setScreen(new DesertGameScreen(game)); // Load the DesertGameScreen - } - - private void handleIcePlanetClick() { - // Implement logic for when the ice planet is clicked - logger.info("Ice planet clicked."); - game.setScreen(new IceGameScreen(game)); // Load the IceGameScreen - } - - private void handleLavaPlanetClick() { - // Implement logic for when the lava planet is clicked - logger.info("Lava planet clicked."); - game.setScreen(new LavaGameScreen(game)); // Load the LavaGameScreen - } // TODO: Make it display information about the planet @Override diff --git a/source/core/src/main/com/csse3200/game/screens/MainGameScreen.java b/source/core/src/main/com/csse3200/game/screens/MainGameScreen.java index 0ca778809..a86e63e09 100644 --- a/source/core/src/main/com/csse3200/game/screens/MainGameScreen.java +++ b/source/core/src/main/com/csse3200/game/screens/MainGameScreen.java @@ -9,7 +9,6 @@ import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.utils.viewport.ScreenViewport; -import com.badlogic.gdx.utils.viewport.Viewport; import com.csse3200.game.GdxGame; import com.csse3200.game.areas.ForestGameArea; import com.csse3200.game.areas.terrain.TerrainFactory; @@ -41,7 +40,7 @@ */ public class MainGameScreen extends ScreenAdapter { private static final Logger logger = LoggerFactory.getLogger(MainGameScreen.class); - private static final String[] mainGameTextures = {"images/heart.png","images/ice_bg.png","images/lava_bg.png","images/desert_bg.png"}; + private static final String[] mainGameTextures = {"images/heart.png","images/ice_bg.png","images/lava_bg.png","images/desert_bg.png","images/terrain_use.png"}; private static final Vector2 CAMERA_POSITION = new Vector2(10f, 5.64f); private final GdxGame game; @@ -68,7 +67,7 @@ public MainGameScreen(GdxGame game) { this.game = game; camera = new OrthographicCamera(); camera.setToOrtho(false, viewportWidth, viewportHeight); - camera.position.set((float) (viewportWidth / 2), (float) (viewportHeight / 2), 0); + camera.position.set((float) (viewportWidth) / 2, (float) (viewportHeight) / 2, 0); batch = new SpriteBatch(); @@ -97,15 +96,14 @@ public MainGameScreen(GdxGame game) { renderer.getDebug().renderPhysicsWorld(physicsEngine.getWorld()); InputComponent inputHandler = new DropInputComponent(renderer.getCamera().getCamera()); ServiceLocator.getInputService().register(inputHandler); - ServiceLocator.getCurrencyService().getDisplay().setCamera(renderer.getCamera().getCamera()); loadAssets(); createUI(); - + ServiceLocator.registerMapService(new MapService(renderer.getCamera())); logger.debug("Initialising main game screen entities"); - TerrainFactory terrainFactory = new TerrainFactory(renderer.getCamera()); - ForestGameArea forestGameArea = new ForestGameArea(terrainFactory); +// TerrainFactory terrainFactory = new TerrainFactory(renderer.getCamera()); + ForestGameArea forestGameArea = new ForestGameArea(); forestGameArea.create(); } diff --git a/source/core/src/main/com/csse3200/game/services/MapService.java b/source/core/src/main/com/csse3200/game/services/MapService.java new file mode 100644 index 000000000..e677c9586 --- /dev/null +++ b/source/core/src/main/com/csse3200/game/services/MapService.java @@ -0,0 +1,76 @@ +package com.csse3200.game.services; + +import com.csse3200.game.areas.terrain.TerrainComponent; +import com.csse3200.game.areas.terrain.TerrainFactory; +import com.csse3200.game.components.CameraComponent; +import com.csse3200.game.entities.Entity; + +/** + * Provides services related to map functionalities such as tiles and lanes in genral. + */ +public class MapService { + + private Entity entity; + private final TerrainFactory terrainFactory; + + /** + * Constructs a new MapService instance based on the provided camera. + * + * @param camera The camera component used for the terrain creation. + */ + public MapService(CameraComponent camera) { + this.terrainFactory = new TerrainFactory(camera); + this.entity = new Entity().addComponent(terrainFactory.createTerrain(TerrainFactory.TerrainType.ALL_DEMO)); + } + + /** + * Constructs a new MapService instance using the given entity and terrain factory. + * + * @param entity The entity associated with this service. + * @param terrainFactory The terrain factory used for creating terrains. + */ + public MapService(Entity entity, TerrainFactory terrainFactory) { + this.entity = entity; + this.terrainFactory = terrainFactory; + } + + /** + * Returns the associated entity. + * + * @return The entity related to this map service. + */ + public Entity getEntity() { + + return this.entity; + } + + /** + * Retrieves the terrain component from the entity. + * + * @return The terrain component of the associated entity. + */ + public TerrainComponent getComponent() { + + return entity.getComponent(TerrainComponent.class); + } + + /** + * Returns the height of the Grid. + * + * @return Height of the Grid. + */ + public int getHeight() { + + return entity.getComponent(TerrainComponent.class).getMapBounds(0).y; + } + + /** + * Returns the width of the Grid. + * + * @return Width of the Grid. + */ + public int getWidth() { + + return entity.getComponent(TerrainComponent.class).getMapBounds(0).x; + } +} diff --git a/source/core/src/main/com/csse3200/game/services/ServiceLocator.java b/source/core/src/main/com/csse3200/game/services/ServiceLocator.java index 12d53a83f..449b7f11a 100644 --- a/source/core/src/main/com/csse3200/game/services/ServiceLocator.java +++ b/source/core/src/main/com/csse3200/game/services/ServiceLocator.java @@ -26,6 +26,7 @@ public class ServiceLocator { private static ResourceService resourceService; private static GameEndService gameEndService; private static WaveService waveService; + private static MapService mapService; public static CurrencyService getCurrencyService() { return currencyService; @@ -61,6 +62,8 @@ public static GameEndService getGameEndService() { public static WaveService getWaveService() { return waveService; } + public static MapService getMapService() { return mapService; } + public static void registerCurrencyService(CurrencyService service) { logger.debug("Registering currency service {}", service); currencyService = service; @@ -105,6 +108,11 @@ public static void registerWaveService(WaveService source) { waveService = source; } + public static void registerMapService(MapService source) { + logger.debug("Registering wave service {}", source); + mapService = source; + } + public static void clear() { entityService = null; renderService = null; @@ -113,6 +121,8 @@ public static void clear() { inputService = null; resourceService = null; gameEndService = null; + waveService = null; + mapService = null; } private ServiceLocator() { diff --git a/source/core/src/test/com/csse3200/game/areas/terrain/TerrainComponentTest.java b/source/core/src/test/com/csse3200/game/areas/terrain/TerrainComponentTest.java index 6761b39b9..72961fb8d 100644 --- a/source/core/src/test/com/csse3200/game/areas/terrain/TerrainComponentTest.java +++ b/source/core/src/test/com/csse3200/game/areas/terrain/TerrainComponentTest.java @@ -3,12 +3,23 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.mock; +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.Input; import com.badlogic.gdx.graphics.OrthographicCamera; +import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.graphics.g2d.TextureRegion; +import com.badlogic.gdx.maps.MapLayers; import com.badlogic.gdx.maps.tiled.TiledMap; import com.badlogic.gdx.maps.tiled.TiledMapRenderer; +import com.badlogic.gdx.maps.tiled.TiledMapTile; +import com.badlogic.gdx.maps.tiled.TiledMapTileLayer; import com.badlogic.gdx.math.Vector2; import com.csse3200.game.areas.terrain.TerrainComponent.TerrainOrientation; import com.csse3200.game.extensions.GameExtension; +import static org.mockito.Mockito.*; + +import com.csse3200.game.services.ResourceService; +import com.csse3200.game.services.ServiceLocator; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -35,6 +46,42 @@ void shouldConvertPositionHexagonal() { TerrainComponent component = makeComponent(TerrainOrientation.HEXAGONAL, 3f); } + @Test + void shouldHighlightTileOnHover1() { + + TerrainComponent component = makeComponent(TerrainOrientation.ORTHOGONAL, 1f); + + // Mock Gdx input to return specific mouse position + Gdx.input = mock(Input.class); + when(Gdx.input.getX()).thenReturn(2); + when(Gdx.input.getY()).thenReturn(4); + + + MapLayers mockLayers = mock(MapLayers.class); + when(component.getMap().getLayers()).thenReturn(mockLayers); + + TiledMapTileLayer mockTileLayer = mock(TiledMapTileLayer.class); + when(mockLayers.get(0)).thenReturn(mockTileLayer); + + TiledMapTileLayer.Cell mockCell = mock(TiledMapTileLayer.Cell.class); + when(mockTileLayer.getCell(2, 4)).thenReturn(mockCell); + + TiledMapTile mockTile = mock(TiledMapTile.class); + when(mockCell.getTile()).thenReturn(mockTile); + + + Texture mockTexture = mock(Texture.class); + ServiceLocator.registerResourceService(mock(ResourceService.class)); + when(ServiceLocator.getResourceService().getAsset("images/highlight_tile.png", Texture.class)) + .thenReturn(mockTexture); + + + component.hoverHighlight(); + + // Verify that the tile's texture region was changed + verify(mockTile).setTextureRegion(any(TextureRegion.class)); + } + private static TerrainComponent makeComponent(TerrainOrientation orientation, float tileSize) { OrthographicCamera camera = mock(OrthographicCamera.class); TiledMap map = mock(TiledMap.class); diff --git a/source/core/src/test/com/csse3200/game/areas/terrain/TerrainFactoryTest.java b/source/core/src/test/com/csse3200/game/areas/terrain/TerrainFactoryTest.java new file mode 100644 index 000000000..c70237fd5 --- /dev/null +++ b/source/core/src/test/com/csse3200/game/areas/terrain/TerrainFactoryTest.java @@ -0,0 +1,63 @@ +package com.csse3200.game.areas.terrain; + +import com.badlogic.gdx.graphics.OrthographicCamera; +import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.maps.tiled.TiledMap; +import com.badlogic.gdx.maps.tiled.TiledMapTileLayer; +import com.badlogic.gdx.maps.tiled.renderers.OrthogonalTiledMapRenderer; +import com.csse3200.game.components.CameraComponent; +import com.csse3200.game.services.ResourceService; +import com.csse3200.game.services.ServiceLocator; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.*; + +public class TerrainFactoryTest { + + private TerrainFactory terrainFactory; + private CameraComponent mockedCameraComponent; + private OrthogonalTiledMapRenderer mockedRenderer; + private ResourceService mockResourceService; + private Texture mockTexture; + + @BeforeEach + public void setUp() { + // Create mocks + mockedCameraComponent = mock(CameraComponent.class); + mockedRenderer = mock(OrthogonalTiledMapRenderer.class); + mockResourceService = mock(ResourceService.class); + mockTexture = mock(Texture.class); + + + ServiceLocator.registerResourceService(mockResourceService); + + + OrthographicCamera mockedCamera = mock(OrthographicCamera.class); + when(mockedCameraComponent.getCamera()).thenReturn(mockedCamera); + + + terrainFactory = spy(new TerrainFactory(mockedCameraComponent)); + + + // When createRenderer is called on terrainFactory return the mockedRenderer + doReturn(mockedRenderer).when(terrainFactory).createRenderer(any(TiledMap.class), anyFloat()); + } + + @Test + public void testCreateTerrainGeneral() { + // Given the texture is taken from the ResourceService + when(mockResourceService.getAsset("images/terrain_use.png", Texture.class)).thenReturn(mockTexture); + + + TerrainComponent terrainComponent = terrainFactory.createTerrain(TerrainFactory.TerrainType.ALL_DEMO); + TiledMapTileLayer layer = (TiledMapTileLayer) terrainComponent.getMap().getLayers().get(0); + + // the terrainComponent should not be null + assertNotNull(terrainComponent, "TerrainComponent should not be null"); + assertEquals(6,layer.getHeight()); // 6 lanes + assertEquals(20,layer.getWidth()); // 20 tiles per lane + + } +} diff --git a/source/core/src/test/com/csse3200/game/components/DeflectingComponentTest.java b/source/core/src/test/com/csse3200/game/components/DeflectingComponentTest.java new file mode 100644 index 000000000..735af2f17 --- /dev/null +++ b/source/core/src/test/com/csse3200/game/components/DeflectingComponentTest.java @@ -0,0 +1,263 @@ +package com.csse3200.game.components; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertNotNull; +import static org.mockito.Mockito.atLeastOnce; +import static org.mockito.Mockito.atMostOnce; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; + +import com.badlogic.gdx.math.Vector2; +import com.badlogic.gdx.physics.box2d.Fixture; +import com.csse3200.game.components.npc.DeflectingComponent; +import com.csse3200.game.entities.Entity; +import com.csse3200.game.entities.EntityService; +import com.csse3200.game.entities.factories.NPCFactory; +import com.csse3200.game.entities.factories.ProjectileFactory; +import com.csse3200.game.events.listeners.EventListener2; +import com.csse3200.game.extensions.GameExtension; +import com.csse3200.game.physics.PhysicsLayer; +import com.csse3200.game.physics.PhysicsService; +import com.csse3200.game.physics.components.ColliderComponent; +import com.csse3200.game.physics.components.HitboxComponent; +import com.csse3200.game.physics.components.PhysicsMovementComponent; +import com.csse3200.game.rendering.DebugRenderer; +import com.csse3200.game.rendering.RenderService; +import com.csse3200.game.services.GameTime; +import com.csse3200.game.services.ResourceService; +import com.csse3200.game.services.ServiceLocator; + +@ExtendWith(GameExtension.class) +public class DeflectingComponentTest { + Entity baseMob; + private static final int DEFAULT_ATTACK = 10; + private static final int DEFAULT_DEFENSE = 10; + private static final int DEFAULT_DEFLECT_AMOUNT = 5; + private static final int BASE_Y_COORD = 3; + private static final float VALID_POSITION_X = 3; + private static final float VALID_POSITION_Y = 3; + + private final String[] atlas = { + "images/projectiles/basic_projectile.atlas" + }; + + @BeforeEach + public void setUp() { + GameTime gameTime = mock(GameTime.class); + when(gameTime.getDeltaTime()).thenReturn(0.02f); + ServiceLocator.registerTimeSource(gameTime); + + ServiceLocator.registerPhysicsService(new PhysicsService()); + + ServiceLocator.registerEntityService(new EntityService()); + + RenderService render = new RenderService(); + render.setDebug(mock(DebugRenderer.class)); + ServiceLocator.registerRenderService(render); + + ResourceService resourceService = new ResourceService(); + ServiceLocator.registerResourceService(resourceService); + resourceService.loadTextureAtlases(atlas); + resourceService.loadAll(); + + baseMob = createDeflectMob(DEFAULT_DEFLECT_AMOUNT, + VALID_POSITION_X, + VALID_POSITION_Y); + } + + @Test + public void shouldNotBeNull() { + assertNotNull("Deflecting component does not exist", + baseMob.getComponent(DeflectingComponent.class)); + } + + @Test + public void shouldNotBeDisposed() { + Entity projectile = createProjectile(VALID_POSITION_X, VALID_POSITION_Y); + + triggerCollisionStart(baseMob, projectile); + ServiceLocator.getPhysicsService().getPhysics().update(); + ServiceLocator.getEntityService().update(); + + assertFalse("disposed flag should be false after collision start", + projectile.getFlagForDelete()); + } + + @Test + public void shouldBeDisposedWhenDisabled() { + Entity projectile = createProjectile(VALID_POSITION_X, VALID_POSITION_Y); + baseMob.getComponent(DeflectingComponent.class).setEnabled(false); + + triggerCollisionStart(baseMob, projectile); + ServiceLocator.getPhysicsService().getPhysics().update(); + ServiceLocator.getEntityService().update(); + + assertFalse("collision set disposed flag to true", + projectile.getFlagForDelete()); + } + + @Test + public void shouldInvokeDeflectProjEvent() { + EventListener2 deflectProj = mock(EventListener2.class); + Entity projectile = createProjectile(VALID_POSITION_X, VALID_POSITION_Y); + + baseMob.getEvents().addListener("collisionStart", deflectProj); + triggerCollisionStart(baseMob, projectile); + + ServiceLocator.getPhysicsService().getPhysics().update(); + ServiceLocator.getEntityService().update(); + + verify(deflectProj).handle(baseMob.getComponent(ColliderComponent.class).getFixture(), + projectile.getComponent(ColliderComponent.class).getFixture()); + } + + @Test + public void shouldInvokeXAmtTimes() { + EventListener2 deflectProj = mock(EventListener2.class); + Entity mob = createDeflectMob(3, VALID_POSITION_Y, VALID_POSITION_X); + Entity projectile = createProjectile(VALID_POSITION_X, VALID_POSITION_Y); + Entity projectile2 = createProjectile(VALID_POSITION_X, VALID_POSITION_Y); + Entity projectile3 = createProjectile(VALID_POSITION_X, VALID_POSITION_Y); + + projectile.getComponent(TouchAttackComponent.class) + .setDisposeOnHit(false); + + mob.getEvents().addListener("collisionStart", deflectProj); + + triggerCollisionStart(mob, projectile); + ServiceLocator.getPhysicsService().getPhysics().update(); + ServiceLocator.getEntityService().update(); + triggerCollisionStart(mob, projectile2); + ServiceLocator.getPhysicsService().getPhysics().update(); + ServiceLocator.getEntityService().update(); + triggerCollisionStart(mob, projectile3); + ServiceLocator.getPhysicsService().getPhysics().update(); + ServiceLocator.getEntityService().update(); + + verify(deflectProj, atLeastOnce()).handle( + mob.getComponent(ColliderComponent.class).getFixture(), + projectile.getComponent(ColliderComponent.class).getFixture()); + + verify(deflectProj, atLeastOnce()).handle( + mob.getComponent(ColliderComponent.class).getFixture(), + projectile2.getComponent(ColliderComponent.class).getFixture()); + + verify(deflectProj, atLeastOnce()).handle( + mob.getComponent(ColliderComponent.class).getFixture(), + projectile3.getComponent(ColliderComponent.class).getFixture()); + } + + @Test + public void shouldInvokeAtMostOnce() { + EventListener2 deflectProj = mock(EventListener2.class); + Entity mob = createDeflectMob(1, VALID_POSITION_Y, VALID_POSITION_X); + Entity projectile = createProjectile(VALID_POSITION_X, VALID_POSITION_Y); + + projectile.getComponent(TouchAttackComponent.class) + .setDisposeOnHit(false); + + mob.getEvents().addListener("collisionStart", deflectProj); + triggerCollisionStart(mob, projectile); + ServiceLocator.getPhysicsService().getPhysics().update(); + ServiceLocator.getEntityService().update(); + triggerCollisionStart(mob, projectile); + ServiceLocator.getPhysicsService().getPhysics().update(); + ServiceLocator.getEntityService().update(); + + verify(deflectProj, atMostOnce()).handle( + mob.getComponent(ColliderComponent.class).getFixture(), + projectile.getComponent(ColliderComponent.class).getFixture()); + } + + @Test + public void shouldReverseProjScaleX() { + Entity projectile = createProjectile(VALID_POSITION_X, VALID_POSITION_Y); + + float initialX = projectile.getScale().x; + + triggerCollisionStart(baseMob, projectile); + ServiceLocator.getPhysicsService().getPhysics().update(); + ServiceLocator.getEntityService().update(); + + assertEquals("image should be reversed horizontally", + -initialX, projectile.getScale().x, 0.1f); + } + + @Test + public void shouldRemainSameHealth() { + Entity projectile = createProjectile(VALID_POSITION_X, VALID_POSITION_Y); + int health = baseMob.getComponent(CombatStatsComponent.class) + .getHealth(); + + triggerCollisionStart(baseMob, projectile); + ServiceLocator.getPhysicsService().getPhysics().update(); + ServiceLocator.getEntityService().update(); + + assertEquals("Should have same health after collision", health, + baseMob.getComponent(CombatStatsComponent.class).getHealth()); + } + + @Test + public void shouldNotChangeHealthWhenDisabled() { + Entity projectile = createProjectile(VALID_POSITION_X, VALID_POSITION_Y); + baseMob.getComponent(CombatStatsComponent.class).setHealth(100); + int health = baseMob.getComponent(CombatStatsComponent.class).getHealth(); + baseMob.getComponent(DeflectingComponent.class).setEnabled(false); + + triggerCollisionStart(baseMob, projectile); + ServiceLocator.getPhysicsService().getPhysics().update(); + ServiceLocator.getEntityService().update(); + + assertNotEquals("Should not have same health after collision", health, + baseMob.getComponent(CombatStatsComponent.class).getHealth()); + } + + Entity createDeflectMob(int amount, float posX, float posY) { + Entity mob = NPCFactory.createRangedBaseNPC(); + mob.addComponent(new DeflectingComponent(PhysicsLayer.PROJECTILE, + PhysicsLayer.TOWER, amount)); + mob.addComponent(new CombatStatsComponent(DEFAULT_ATTACK, DEFAULT_DEFENSE)); + + mob.setPosition(posX, posY); + ServiceLocator.getEntityService().register(mob); + + return mob; + } + + Entity createProjectile(float posX, float posY) { + Entity projectile = ProjectileFactory.createBaseProjectile( + baseMob.getComponent(ColliderComponent.class).getLayer(), + new Vector2(100, BASE_Y_COORD), new Vector2(2f, 2f)); + + projectile.getComponent(PhysicsMovementComponent.class) + .setTarget(new Vector2(100, BASE_Y_COORD)); + + projectile.setPosition(posX, posY); + ServiceLocator.getEntityService().register(projectile); + return projectile; + } + + void triggerCollisionStart(Entity mob, Entity projectile) { + mob.getEvents().trigger("collisionStart", + projectile.getComponent(HitboxComponent.class).getFixture(), + mob.getComponent(HitboxComponent.class).getFixture()); + } + + void triggerCollisionEnd(Entity mob, Entity projectile) { + mob.getEvents().trigger("collisionEnd", + projectile.getComponent(HitboxComponent.class).getFixture(), + mob.getComponent(HitboxComponent.class).getFixture()); + } + + void triggerCollision(Entity mob, Entity projectile) { + triggerCollisionStart(mob, projectile); + triggerCollisionEnd(mob, projectile); + } +} diff --git a/source/core/src/test/com/csse3200/game/components/DodgingComponentTest.java b/source/core/src/test/com/csse3200/game/components/DodgingComponentTest.java new file mode 100644 index 000000000..95e0b60fd --- /dev/null +++ b/source/core/src/test/com/csse3200/game/components/DodgingComponentTest.java @@ -0,0 +1,126 @@ +package com.csse3200.game.components; + +import static org.junit.Assert.assertNotNull; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; + +import com.badlogic.gdx.math.Vector2; +import com.csse3200.game.ai.tasks.AITaskComponent; +import com.csse3200.game.components.npc.DodgingComponent; +import com.csse3200.game.components.tasks.MobDodgeTask; +import com.csse3200.game.components.tasks.MobWanderTask; +import com.csse3200.game.entities.Entity; +import com.csse3200.game.entities.EntityService; +import com.csse3200.game.entities.factories.NPCFactory; +import com.csse3200.game.entities.factories.ProjectileFactory; +import com.csse3200.game.events.listeners.EventListener1; +import com.csse3200.game.extensions.GameExtension; +import com.csse3200.game.physics.PhysicsLayer; +import com.csse3200.game.physics.PhysicsService; +import com.csse3200.game.physics.components.ColliderComponent; +import com.csse3200.game.rendering.DebugRenderer; +import com.csse3200.game.rendering.RenderService; +import com.csse3200.game.services.GameTime; +import com.csse3200.game.services.ResourceService; +import com.csse3200.game.services.ServiceLocator; + +@ExtendWith(GameExtension.class) +public class DodgingComponentTest { + Entity baseMob, baseProjectile; + private static final float VALID_POSITION_Y = 4; + private static final float VALID_POSITION_X = 7; + private static final float DEFAULT_RANGE_DETECTION = 1f; + MobWanderTask task; + + @BeforeEach + public void setUp() { + GameTime gameTime = mock(GameTime.class); + when(gameTime.getDeltaTime()).thenReturn(0.02f); + ServiceLocator.registerTimeSource(gameTime); + ServiceLocator.registerPhysicsService(new PhysicsService()); + + ServiceLocator.registerEntityService(new EntityService()); + + RenderService render = new RenderService(); + render.setDebug(mock(DebugRenderer.class)); + ServiceLocator.registerRenderService(render); + + ResourceService resourceService = new ResourceService(); + ServiceLocator.registerResourceService(resourceService); + + baseMob = createDodgeMob(VALID_POSITION_X, + VALID_POSITION_Y, + DEFAULT_RANGE_DETECTION, + 1.75f); + task = new MobDodgeTask(new Vector2(2f, 2f), 2f, 5); + } + + @Test + public void shouldNotBeNullComponent() { + assertNotNull("Dodging combat component should not be null", + baseMob.getComponent(DodgingComponent.class)); + } + + @Test + public void shouldNotBeNullTask() { + assertNotNull("Mob dodging tasks should not be null", + baseMob.getComponent(AITaskComponent.class)); + } + + @Test + public void shouldInvokeDodgeEvent() { + EventListener1 dodgeProj = mock(EventListener1.class); + baseMob.getComponent(AITaskComponent.class).addTask(task); + baseMob.getEvents().addListener(DodgingComponent.DODGE_EVENT, dodgeProj); + Vector2 mobPos = baseMob.getCenterPosition(); + task.start(); + Entity projectile = createProjectile(VALID_POSITION_X - + (DEFAULT_RANGE_DETECTION / 2), + VALID_POSITION_Y); + + ServiceLocator.getPhysicsService().getPhysics().update(); + ServiceLocator.getEntityService().update(); + task.update(); + + verify(dodgeProj).handle(mobPos); + } + + Entity createDodgeMob(float posX, float posY) { + Entity mob = NPCFactory.createRangedBaseNPC(); + mob.addComponent(new CombatStatsComponent(10, 10)); + mob.addComponent(new DodgingComponent(PhysicsLayer.PROJECTILE)); + + ServiceLocator.getEntityService().register(mob); + mob.setPosition(posX, posY); + return mob; + } + + Entity createDodgeMob(float posX, float posY, float rangeDetection, + float dodgeSpeed) { + Entity mob = NPCFactory.createRangedBaseNPC(); + mob.addComponent(new CombatStatsComponent(10, 10)); + mob.addComponent(new DodgingComponent(PhysicsLayer.PROJECTILE, rangeDetection, dodgeSpeed)); + + ServiceLocator.getEntityService().register(mob); + mob.setPosition(posX, posY); + + return mob; + } + + Entity createProjectile(float posX, float posY) { + Entity projectile = ProjectileFactory.createBaseProjectile(baseMob + .getComponent(ColliderComponent.class).getLayer(), + new Vector2(100, VALID_POSITION_Y), new Vector2(2f, 2f)); + + projectile.addComponent(new CombatStatsComponent(10, 10)); + ServiceLocator.getEntityService().register(projectile); + projectile.setPosition(posX, posY); + + return projectile; + } +} diff --git a/source/core/src/test/com/csse3200/game/components/SplitMoblingsTest.java b/source/core/src/test/com/csse3200/game/components/SplitMoblingsTest.java new file mode 100644 index 000000000..81731a2ff --- /dev/null +++ b/source/core/src/test/com/csse3200/game/components/SplitMoblingsTest.java @@ -0,0 +1,360 @@ +package com.csse3200.game.components; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoInteractions; +import static org.mockito.Mockito.when; + +import java.util.ArrayList; +import java.util.Arrays; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.extension.ExtendWith; + +import com.badlogic.gdx.math.Vector2; +import com.csse3200.game.components.npc.SplitMoblings; +import com.csse3200.game.entities.Entity; +import com.csse3200.game.entities.EntityService; +import com.csse3200.game.entities.factories.NPCFactory; +import com.csse3200.game.entities.factories.ProjectileFactory; +import com.csse3200.game.events.listeners.EventListener0; +import com.csse3200.game.extensions.GameExtension; +import com.csse3200.game.physics.PhysicsService; +import com.csse3200.game.physics.components.ColliderComponent; +import com.csse3200.game.physics.components.HitboxComponent; +import com.csse3200.game.rendering.DebugRenderer; +import com.csse3200.game.rendering.RenderService; +import com.csse3200.game.services.GameTime; +import com.csse3200.game.services.ResourceService; +import com.csse3200.game.services.ServiceLocator; +import com.csse3200.game.services.WaveService; + +@ExtendWith(GameExtension.class) +public class SplitMoblingsTest { + private static final int BASE_Y_COORD = 3; + private static final int BASE_AMOUNT = 5; + private final String[] atlas = { + "images/mobs/water_slime.atlas", + }; + + Entity baseMob; + + @BeforeEach + public void setUp() { + GameTime gameTime = mock(GameTime.class); + when(gameTime.getDeltaTime()).thenReturn(0.02f); + ServiceLocator.registerTimeSource(gameTime); + + ServiceLocator.registerPhysicsService(new PhysicsService()); + + ServiceLocator.registerEntityService(new EntityService()); + + RenderService render = new RenderService(); + render.setDebug(mock(DebugRenderer.class)); + ServiceLocator.registerRenderService(render); + + ResourceService resourceService = new ResourceService(); + ServiceLocator.registerResourceService(resourceService); + resourceService.loadTextureAtlases(atlas); + resourceService.loadAll(); + + WaveService waveService = new WaveService(); + ServiceLocator.registerWaveService(waveService); + + baseMob = createSplitMob(BASE_AMOUNT); + } + + @Test + public void shouldNotBeNull() { + Entity mob = createSplitMob(5); + assertNotNull("Mobling components does not exists", + mob.getComponent(SplitMoblings.class)); + } + + @Test + public void shouldHaveAsset() { + Entity projectile = createDummyProjectile(); + + baseMob.setPosition(SplitMoblings.MIN_X_BOUNDS + 2, SplitMoblings.MIN_Y_BOUNDS + 2); + projectile.setPosition(SplitMoblings.MIN_X_BOUNDS + 2, SplitMoblings.MIN_Y_BOUNDS + 2); + + for (Entity entity : ServiceLocator.getEntityService().getEntities()) { + if (entity.equals(baseMob) || entity.equals(projectile)) + continue; + + assertTrue("moblings does not contain the right asset", + ServiceLocator.getResourceService().containsAsset(atlas[0], entity.getClass())); + + } + } + + @Test + public void shouldBeDisposedAfterDeath() { + Entity projectile = createDummyProjectile(); + projectile.getComponent(CombatStatsComponent.class).setBaseAttack(20); + + baseMob.setPosition(SplitMoblings.MIN_X_BOUNDS + 2, SplitMoblings.MIN_Y_BOUNDS + 2); + projectile.setPosition(SplitMoblings.MIN_X_BOUNDS + 2, SplitMoblings.MIN_Y_BOUNDS + 2); + + triggerCollision(baseMob, projectile); + ServiceLocator.getPhysicsService().getPhysics().update(); + ServiceLocator.getEntityService().update(); + + assertEquals("mob health should be 0", 0, + baseMob.getComponent(CombatStatsComponent.class).getHealth()); + + assertTrue("Mob should be dead with a health of 0", + baseMob.getComponent(CombatStatsComponent.class).isDead()); + + assertFalse("Mob's deletion flag should be true", + baseMob.getFlagForDelete()); + } + + @Test + public void shouldInvokeDieStartEventAfterDeath() { + EventListener0 dieStart = mock(EventListener0.class); + baseMob.getComponent(CombatStatsComponent.class).setHealth(0); + + // mob is dead + assertTrue("mob is not dead when health is set to 0", + baseMob.getComponent(CombatStatsComponent.class).isDead()); + + baseMob.getEvents().addListener(SplitMoblings.DIE_START_EVENT, dieStart); + ServiceLocator.getEntityService().update(); + + // Verify dieStart event handler + verify(dieStart).handle(); + } + + @Test + public void shouldNotInvokeDieStartEventNoDeath() { + EventListener0 dieStart = mock(EventListener0.class); + + assertFalse("mob is dead when health is not 0", + baseMob.getComponent(CombatStatsComponent.class).isDead()); + + baseMob.getEvents().addListener(SplitMoblings.DIE_START_EVENT, dieStart); + + verifyNoInteractions(dieStart); + } + + @Test + public void shouldSplitCorrectAmount() { + Entity projectile = createDummyProjectile(); + + int allEntities = ServiceLocator.getEntityService().getEntities().size; + + projectile.getComponent(CombatStatsComponent.class).setBaseAttack(10); + baseMob.getComponent(CombatStatsComponent.class).setHealth(10); + + // Valid bounds for mob spawn + baseMob.setPosition(SplitMoblings.MIN_X_BOUNDS + 2, SplitMoblings.MIN_Y_BOUNDS + 2); + projectile.setPosition(SplitMoblings.MIN_X_BOUNDS + 2, SplitMoblings.MIN_Y_BOUNDS + 2); + + triggerCollision(baseMob, projectile); + ServiceLocator.getPhysicsService().getPhysics().update(); + ServiceLocator.getEntityService().update(); + + assertEquals("amount of mobs spawn do not match the correct anount initialised", + allEntities + BASE_AMOUNT, + ServiceLocator.getEntityService().getEntities().size); + } + + @Test + public void shouldNotSplitCorrectAmountOutOfBounds() { + Entity projectile = createDummyProjectile(); + + int allEntities = ServiceLocator.getEntityService().getEntities().size; + + projectile.getComponent(CombatStatsComponent.class).setBaseAttack(10); + baseMob.getComponent(CombatStatsComponent.class).setHealth(10); + + // Valid bounds, but spawned projectiles should be a lesser amount + baseMob.setPosition(SplitMoblings.MIN_X_BOUNDS, SplitMoblings.MIN_Y_BOUNDS); + projectile.setPosition(SplitMoblings.MIN_X_BOUNDS, SplitMoblings.MIN_Y_BOUNDS); + + triggerCollision(baseMob, projectile); + ServiceLocator.getPhysicsService().getPhysics().update(); + ServiceLocator.getEntityService().update(); + + assertNotEquals("amount of mobs spawn matches the amount initialised when spawned location is out of bounds", + allEntities + BASE_AMOUNT, + ServiceLocator.getEntityService().getEntities().size); + } + + @Test + public void shouldSpawnWithinRangeAmountOne() { + Entity mob = createSplitMob(1); + Entity projectile = createDummyProjectile(); + + mob.setPosition(SplitMoblings.MIN_X_BOUNDS + 2, SplitMoblings.MIN_Y_BOUNDS + 2); + projectile.setPosition(SplitMoblings.MIN_X_BOUNDS + 2, SplitMoblings.MIN_Y_BOUNDS + 2); + + triggerCollision(mob, projectile); + + ServiceLocator.getPhysicsService().getPhysics().update(); + ServiceLocator.getEntityService().update(); + + // Should spawn with a default offset distance to the left. + Entity mobling = ServiceLocator.getEntityService().getEntityAtPosition( + SplitMoblings.MIN_X_BOUNDS + 2 - (float) SplitMoblings.OFFSET_DISTANCE, + SplitMoblings.MIN_Y_BOUNDS + 2); + + assertNotNull("mobling failed to spawn within range", + mobling); + } + + @Test + public void shouldSpawnWithinRangeMultipleAmount() { + Entity projectile = createDummyProjectile(); + Entity mobThree = createSplitMob(3); + Entity mobSeven = createSplitMob(7); + + ArrayList initialEntities = new ArrayList( + Arrays.asList(mobThree, baseMob, mobSeven, projectile)); + + int nearbyEntities = ServiceLocator.getEntityService().getNearbyEntities(projectile, + (float) SplitMoblings.OFFSET_DISTANCE).size; + + // assertEquals(1, nearbyEntities); + + for (Entity entity : initialEntities) { + entity.setPosition( + SplitMoblings.MIN_X_BOUNDS + 5, SplitMoblings.MIN_Y_BOUNDS + 5); + } + + projectile.getComponent(TouchAttackComponent.class) + .setDisposeOnHit(false); + + for (Entity entity : initialEntities.subList(0, + initialEntities.size() - 1)) { + triggerCollision(entity, projectile); + } + + ServiceLocator.getPhysicsService().getPhysics().update(); + ServiceLocator.getEntityService().update(); + + assertEquals("incorrect number of moblings spawned within range", + nearbyEntities + 3 + 5 + 7, + ServiceLocator.getEntityService().getNearbyEntities(projectile, + + // 0.2f is delta float consideration + (float) SplitMoblings.OFFSET_DISTANCE + 0.2f).size); + } + + @Test + public void shouldScaleBasedOnParamsSingleAmt() { + float scale = 1.5f; + Entity mob = createSplitMob(1, scale); + Entity projectile = createDummyProjectile(); + + float initialScaleX = mob.getScale().x; + float initialScaleY = mob.getScale().y; + + mob.setPosition(SplitMoblings.MIN_X_BOUNDS + 2, SplitMoblings.MIN_Y_BOUNDS + 2); + projectile.setPosition(SplitMoblings.MIN_X_BOUNDS + 2, SplitMoblings.MIN_Y_BOUNDS + 2); + + triggerCollision(mob, projectile); + ServiceLocator.getPhysicsService().getPhysics().update(); + ServiceLocator.getEntityService().update(); + + Entity mobling = ServiceLocator.getEntityService().getEntityAtPosition( + SplitMoblings.MIN_X_BOUNDS + 2 - (float) SplitMoblings.OFFSET_DISTANCE, + SplitMoblings.MIN_Y_BOUNDS + 2); + + assertEquals("Scaling X does not match based on params (1.5f)", + initialScaleX * scale, mobling.getScale().x, 0.1); + assertEquals("Scaling Y does not match based on params (1.5f)", + initialScaleY * scale, mobling.getScale().y, 0.1); + } + + @Test + public void shouldScaleXAndYbasedOnParamsMultiAmt() { + float scaleX = 0.5f; + float scaleY = 1.75f; + Entity mob = createSplitMob(5, scaleX, scaleY); + Entity projectile = createDummyProjectile(); + + float initialScaleX = mob.getScale().x; + float initialScaleY = mob.getScale().y; + + mob.setPosition(SplitMoblings.MIN_X_BOUNDS + 3, SplitMoblings.MIN_Y_BOUNDS + 3); + projectile.setPosition(SplitMoblings.MIN_X_BOUNDS + 3, SplitMoblings.MIN_Y_BOUNDS + 3); + + triggerCollision(mob, projectile); + ServiceLocator.getPhysicsService().getPhysics().update(); + ServiceLocator.getEntityService().update(); + + for (Entity mobling : ServiceLocator.getEntityService().getNearbyEntities(mob, + (float) SplitMoblings.OFFSET_DISTANCE + 0.5f)) { + if (mobling.equals(projectile)) + continue; + + assertEquals("Scaling X does not match based on params (0.5f)", + initialScaleX * scaleX, + mobling.getScale().x, + 0.1); + + assertEquals("Scaling Y does not match based on params (1.75f)", + initialScaleY * scaleY, + mobling.getScale().y, + 0.1); + } + } + + Entity createSplitMob(int amount) { + Entity mob = NPCFactory.createRangedBaseNPC(); + mob.addComponent(new CombatStatsComponent(10, 10)); + mob.addComponent(new SplitMoblings(amount)); + ServiceLocator.getEntityService().register(mob); + return mob; + } + + Entity createSplitMob(int amount, float scale) { + Entity mob = NPCFactory.createRangedBaseNPC(); + mob.addComponent(new SplitMoblings(amount, scale)); + mob.addComponent(new CombatStatsComponent(10, 10)); + ServiceLocator.getEntityService().register(mob); + return mob; + } + + Entity createSplitMob(int amount, float scaleX, float scaleY) { + Entity mob = NPCFactory.createRangedBaseNPC(); + mob.addComponent(new SplitMoblings(amount, scaleX, scaleY)); + mob.addComponent(new CombatStatsComponent(10, 10)); + ServiceLocator.getEntityService().register(mob); + return mob; + } + + Entity createDummyProjectile() { + Entity projectile = ProjectileFactory.createBaseProjectile(baseMob + .getComponent(ColliderComponent.class).getLayer(), + new Vector2(100, BASE_Y_COORD), new Vector2(2f, 2f)); + + ServiceLocator.getEntityService().register(projectile); + return projectile; + } + + void triggerCollisionEnd(Entity mob, Entity projectile) { + mob.getEvents().trigger("collisionEnd", + projectile.getComponent(HitboxComponent.class).getFixture(), + mob.getComponent(HitboxComponent.class).getFixture()); + } + + void triggerCollisionStart(Entity mob, Entity projectile) { + mob.getEvents().trigger("collisionStart", + projectile.getComponent(HitboxComponent.class).getFixture(), + mob.getComponent(HitboxComponent.class).getFixture()); + } + + void triggerCollision(Entity mob, Entity projectile) { + triggerCollisionStart(mob, projectile); + triggerCollisionEnd(mob, projectile); + } +} diff --git a/source/core/src/test/com/csse3200/game/entities/factories/MobBossFactoryTest.java b/source/core/src/test/com/csse3200/game/entities/factories/MobBossFactoryTest.java new file mode 100644 index 000000000..54ef36834 --- /dev/null +++ b/source/core/src/test/com/csse3200/game/entities/factories/MobBossFactoryTest.java @@ -0,0 +1,278 @@ +package com.csse3200.game.entities.factories; + +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import com.badlogic.gdx.graphics.g2d.TextureAtlas; +import com.csse3200.game.components.*; +import com.csse3200.game.components.bosses.DemonAnimationController; +import com.csse3200.game.components.bosses.IceBabyAnimationController; +import com.csse3200.game.components.bosses.PatrickAnimationController; +import com.csse3200.game.entities.Entity; +import com.csse3200.game.extensions.GameExtension; +import com.csse3200.game.physics.PhysicsService; +import com.csse3200.game.physics.components.ColliderComponent; +import com.csse3200.game.physics.components.HitboxComponent; +import com.csse3200.game.physics.components.PhysicsComponent; +import com.csse3200.game.physics.components.PhysicsMovementComponent; +import com.csse3200.game.rendering.AnimationRenderComponent; +import com.csse3200.game.rendering.DebugRenderer; +import com.csse3200.game.rendering.RenderService; +import com.csse3200.game.services.GameTime; +import com.csse3200.game.services.ResourceService; +import com.csse3200.game.services.ServiceLocator; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; + +@ExtendWith(GameExtension.class) +class MobBossFactoryTest { + + private Entity baseBoss; + private Entity demon; + private Entity slimeyBoy; + private Entity patrick; + private Entity deadPatrick; + private Entity iceBaby; + + private final String[] texture = { + "images/mobboss/demon.png", + "images/mobboss/demon2.png", + "images/mobboss/patrick.png", + "images/mobboss/iceBaby.png" + }; + + private final String[] atlas = { + "images/mobboss/demon.atlas", + "images/mobboss/patrick.atlas", + "images/mobboss/iceBaby.atlas", + }; + + private final String[] animations = { + "demon_walk", + "demon_cleave", + "demon_take_hit", + "demon_idle", + "demon_death", + "demon_cast_spell", + "demon_fire_breath", + "demon_smash", + "demon_take_hit", + "idle", + "move", + "projectile_explosion", + "projectile_idle", + "take_hit", + "transform", + "transform_reverse", + "idle", + "1_atk", + "2_atk", + "3_atk", + "death", + "intro_or_revive", + "stagger", + "take_hit", + "walk", + "patrick_attack", + "patrick_cast", + "patrick_death", + "patrick_hurt", + "patrick_idle", + "patrick_spell", + "patrick_walk" + }; + + private static final String[] sounds = { + "sounds/mobBoss/iceBabySound.mp3", + "sounds/mobBoss/iceBabyAOE.mp3", + "sounds/mobBoss/mobSpawnStomp.mp3", + "sounds/mobBoss/demonBreath.mp3", + "sounds/mobBoss/demonSpawn.wav", + "sounds/mobBoss/demonAttack.wav", + "sounds/mobBoss/demonBreathIn.mp3", + "sounds/mobBoss/demonLand.mp3", + "sounds/mobBoss/demonJump.mp3", + "sounds/mobBoss/demonHeal.mp3", + "sounds/mobBoss/demonCleave.mp3", + "sounds/mobBoss/demonDeath.mp3", + "sounds/mobBoss/slimeySplat.mp3", + "sounds/mobBoss/slimeJump.mp3", + "sounds/mobBoss/slimePop.mp3", + "sounds/mobBoss/patrickAttack.mp3", + "sounds/mobBoss/patrickAppear.mp3", + "sounds/mobBoss/patrickScream.mp3", + "sounds/mobBoss/patrickSpell.mp3", + "sounds/mobBoss/patrickSpawn.mp3", + "sounds/mobBoss/patrickCast.mp3", + "sounds/mobBoss/patrickThunder.mp3", + "sounds/mobBoss/patrickHit.mp3" + }; + + @BeforeEach + public void setUp() { + GameTime gameTime = mock(GameTime.class); + when(gameTime.getDeltaTime()).thenReturn(0.02f); + ServiceLocator.registerTimeSource(gameTime); + ServiceLocator.registerPhysicsService(new PhysicsService()); + RenderService render = new RenderService(); + render.setDebug(mock(DebugRenderer.class)); + ServiceLocator.registerRenderService(render); + ResourceService resourceService = new ResourceService(); + ServiceLocator.registerResourceService(resourceService); + resourceService.loadTextures(texture); + resourceService.loadTextureAtlases(atlas); + resourceService.loadSounds(sounds); + resourceService.loadAll(); + ServiceLocator.getResourceService() + .getAsset("images/mobboss/demon.atlas", TextureAtlas.class); + baseBoss = MobBossFactory.createBaseBoss(); + demon = MobBossFactory.createDemonBoss(); + slimeyBoy = MobBossFactory.createSlimeyBoy(); + patrick = MobBossFactory.createPatrickBoss(3000); + deadPatrick = MobBossFactory.patrickDead(); + iceBaby = MobBossFactory.createIceBoss(); + } + + @Test + public void testCreateMobBossNotNull() { + assertNotNull(baseBoss, "Base Boss should not be null."); + assertNotNull(demon, "Demon Boss should not be null."); + assertNotNull(slimeyBoy, "Slimey Boy should not be null."); + assertNotNull(patrick, "Patrick Boss should not be null."); + assertNotNull(deadPatrick, "Dead Patrick Boss should not be null."); + assertNotNull(iceBaby, "Ice Baby Boss should not be null."); + } + + @Test + public void testMobBossPhysicsComponent() { + assertNotNull(baseBoss.getComponent(PhysicsComponent.class), + "Base Boss does not have physics component."); + assertNotNull(demon.getComponent(PhysicsComponent.class), + "Demon Boss does not have physics component."); + assertNotNull(slimeyBoy.getComponent(PhysicsComponent.class), + "Slimey Boy does not have physics component."); + assertNotNull(patrick.getComponent(PhysicsComponent.class), + "Patrick Boss does not have physics component."); + assertNotNull(deadPatrick.getComponent(PhysicsComponent.class), + "Dead Patrick Boss does not have physics component."); + assertNotNull(iceBaby.getComponent(PhysicsComponent.class), + "Ice Baby Boss does not have physics component."); + } + + @Test + public void testMobBossColliderComponent() { + assertNotNull(baseBoss.getComponent(ColliderComponent.class), + "Base Boss does not have collider component."); + assertNotNull(demon.getComponent(ColliderComponent.class), + "Demon Boss does not have collider component."); + assertNotNull(slimeyBoy.getComponent(ColliderComponent.class), + "Slimey Boy does not have collider component."); + assertNotNull(patrick.getComponent(ColliderComponent.class), + "Patrick Boss does not have collider component."); + assertNotNull(deadPatrick.getComponent(ColliderComponent.class), + "Dead Patrick Boss does not have collider component."); + assertNotNull(iceBaby.getComponent(ColliderComponent.class), + "Ice Baby Boss does not have collider component."); + } + + @Test + public void testMobBossPhysicsMovementComponent() { + assertNotNull(baseBoss.getComponent(PhysicsMovementComponent.class), + "Base Boss does not have physics movement component."); + assertNotNull(demon.getComponent(PhysicsMovementComponent.class), + "Demon Boss does not have physics movement component."); + assertNotNull(slimeyBoy.getComponent(PhysicsMovementComponent.class), + "Slimey Boy does not have physics movement component."); + assertNotNull(patrick.getComponent(PhysicsMovementComponent.class), + "Patrick Boss does not have physics movement component."); + assertNotNull(deadPatrick.getComponent(PhysicsMovementComponent.class), + "Dead Patrick Boss does not have physics movement component."); + assertNotNull(iceBaby.getComponent(PhysicsMovementComponent.class), + "Ice Baby Boss does not have physics movement component."); + } + + @Test + public void testMobBossHitboxComponent() { + assertNotNull(baseBoss.getComponent(HitboxComponent.class), + "Base Boss does not have hitbox component."); + assertNotNull(demon.getComponent(HitboxComponent.class), + "Demon Boss does not have hitbox component."); + assertNotNull(slimeyBoy.getComponent(HitboxComponent.class), + "Slimey Boy does not have hitbox component."); + assertNotNull(patrick.getComponent(HitboxComponent.class), + "Patrick Boss does not have hitbox component."); + assertNotNull(deadPatrick.getComponent(HitboxComponent.class), + "Dead Patrick Boss does not have hitbox component."); + assertNotNull(iceBaby.getComponent(HitboxComponent.class), + "Ice Baby Boss does not have hitbox component."); + } + @Test + public void testMobBossTouchAttackComponent() { + assertNotNull(baseBoss.getComponent(TouchAttackComponent.class), + "Base Boss does not have touch attack component."); + assertNotNull(demon.getComponent(TouchAttackComponent.class), + "Base Boss does not have touch attack component."); + assertNotNull(slimeyBoy.getComponent(TouchAttackComponent.class), + "Slimey Boy does not have touch attack component."); + assertNotNull(patrick.getComponent(TouchAttackComponent.class), + "Patrick Boss does not have touch attack component."); + assertNotNull(deadPatrick.getComponent(TouchAttackComponent.class), + "Dead Patrick Boss does not have touch attack component."); + assertNotNull(iceBaby.getComponent(TouchAttackComponent.class), + "Ice Baby Boss does not have touch attack component."); + } + + @Test + public void testMobBossCombatStats(){ + assertEquals(5000, demon.getComponent(CombatStatsComponent.class).getHealth(), + "Demon Boss health should be 5000."); + assertEquals(0, demon.getComponent(CombatStatsComponent.class).getBaseAttack(), + "Demon Boss base attack should be 0."); + assertEquals(500, slimeyBoy.getComponent(CombatStatsComponent.class).getHealth(), + "Slimey Boy health should be 500."); + assertEquals(0, slimeyBoy.getComponent(CombatStatsComponent.class).getBaseAttack(), + "Slimey Boy base attack should be 0."); + assertEquals(2500, patrick.getComponent(CombatStatsComponent.class).getHealth(), + "Patrick Boss health should be 2500."); + assertEquals(0, patrick.getComponent(CombatStatsComponent.class).getBaseAttack(), + "Patrick Boss base attack should be 0."); + assertEquals(1, deadPatrick.getComponent(CombatStatsComponent.class).getHealth(), + "Dead Patrick Boss health should be 1."); + assertEquals(0, deadPatrick.getComponent(CombatStatsComponent.class).getBaseAttack(), + "Dead Patrick Boss base attack should be 0."); + assertEquals(3000, iceBaby.getComponent(CombatStatsComponent.class).getHealth(), + "Ice Baby Boss health should be 3000."); + assertEquals(0, iceBaby.getComponent(CombatStatsComponent.class).getBaseAttack(), + "Ice Baby Boss base attack should be 0."); + } + + @Test + public void testMobBossAnimationRenderComponent() { + assertNotNull(demon.getComponent(AnimationRenderComponent.class), + "Demon Boss does not have an animation render component."); + assertNotNull(slimeyBoy.getComponent(AnimationRenderComponent.class), + "Slimey Boy does not have an animation render component."); + assertNotNull(patrick.getComponent(AnimationRenderComponent.class), + "Patrick Boss does not have an animation render component."); + assertNotNull(deadPatrick.getComponent(AnimationRenderComponent.class), + "Dead Patrick Boss does not have an animation render component."); + assertNotNull(iceBaby.getComponent(AnimationRenderComponent.class), + "Ice Baby does not have an animation render component."); + } + + @Test + public void testMobBossAnimationController() { + assertNotNull(demon.getComponent(DemonAnimationController.class), + "Demon Boss does not have an animation controller."); + assertNotNull(slimeyBoy.getComponent(DemonAnimationController.class), + "Slimey Boy does not have an animation controller."); + assertNotNull(patrick.getComponent(PatrickAnimationController.class), + "Patrick Boss does not have an animation controller."); + assertNotNull(deadPatrick.getComponent(PatrickAnimationController.class), + "Dead Patrick Boss does not have an animation controller."); + assertNotNull(iceBaby.getComponent(IceBabyAnimationController.class), + "Ice Baby Boss does not have an animation controller."); + } +} diff --git a/source/core/src/test/com/csse3200/game/entities/factories/NPCFactoryTest.java b/source/core/src/test/com/csse3200/game/entities/factories/NPCFactoryTest.java index 906a1a640..355828fad 100644 --- a/source/core/src/test/com/csse3200/game/entities/factories/NPCFactoryTest.java +++ b/source/core/src/test/com/csse3200/game/entities/factories/NPCFactoryTest.java @@ -1,7 +1,16 @@ package com.csse3200.game.entities.factories; -import com.badlogic.gdx.graphics.g2d.TextureAtlas; +import com.csse3200.game.ai.tasks.AITaskComponent; import com.csse3200.game.components.CombatStatsComponent; +import com.csse3200.game.components.npc.DeflectingComponent; +import com.csse3200.game.components.npc.DodgingComponent; +import com.csse3200.game.components.npc.DragonKnightAnimationController; +import com.csse3200.game.components.npc.FireWormAnimationController; +import com.csse3200.game.components.npc.SkeletonAnimationController; +import com.csse3200.game.components.npc.SplitMoblings; +import com.csse3200.game.components.npc.WaterQueenAnimationController; +import com.csse3200.game.components.npc.WaterSlimeAnimationController; +import com.csse3200.game.components.npc.WizardAnimationController; import com.csse3200.game.entities.Entity; import com.csse3200.game.extensions.GameExtension; import com.csse3200.game.physics.PhysicsService; @@ -26,7 +35,20 @@ @ExtendWith(GameExtension.class) public class NPCFactoryTest { - private Entity xenoGrunt; + private Entity rangedBaseNpc; + private Entity meleeBaseNpc; + + private Entity waterSlime; + private Entity waterQueen; + private Entity fireWorm; + private Entity dragonKnight; + private Entity wizard; + private Entity skeleton; + + private Entity splitWaterSlime; + private Entity deflectWizard; + private Entity dodgingDragonKnight; + private Entity towerTarget; private Entity engineerTarget; private Entity playerTarget; @@ -36,12 +58,24 @@ public class NPCFactoryTest { "images/towers/turret01.png", "images/towers/wallTower.png" }; - private final String[] atlas = {"images/towers/turret01.atlas", - "images/mobs/xenoGrunt.atlas"}; + private final String[] atlas = { + "images/towers/turret01.atlas", + // "images/mobs/rangedBaseNpc.atlas", + "images/mobs/water_queen.atlas", + "images/mobs/water_slime.atlas", + "images/mobs/dragon_knight.atlas", + "images/mobs/skeleton.atlas", + "images/mobs/wizard.atlas", + "images/mobs/fire_worm.atlas" + }; private static final String[] sounds = { "sounds/towers/gun_shot_trimmed.mp3", "sounds/towers/deploy.mp3", - "sounds/towers/stow.mp3" + "sounds/towers/stow.mp3", + "sounds/mobs/waterQueenSpell.mp3", + "sounds/mobs/boneBreak.mp3", + "sounds/mobs/fireWormRoar.mp3", + "sounds/mobs/wizardSpell.mp3" }; @@ -60,55 +94,268 @@ public void setUp() { resourceService.loadTextureAtlases(atlas); resourceService.loadSounds(sounds); resourceService.loadAll(); - ServiceLocator.getResourceService() - .getAsset("images/mobs/xenoGrunt.atlas", TextureAtlas.class); + + //playerTarget = PlayerFactory.createPlayer(); //towerTarget = TowerFactory.createBaseTower(); //engineerTarget = EngineerFactory.createEngineer(); - xenoGrunt = NPCFactory.createXenoGrunt(); + // xenoGrunt = NPCFactory.createXenoGrunt(); + rangedBaseNpc = NPCFactory.createRangedBaseNPC(); + meleeBaseNpc = NPCFactory.createMeleeBaseNPC(); + + waterSlime = NPCFactory.createBaseWaterSlime(); + waterQueen = NPCFactory.createWaterQueen(); + dragonKnight = NPCFactory.createDragonKnight(); + fireWorm = NPCFactory.createFireWorm(); + skeleton = NPCFactory.createSkeleton(); + wizard = NPCFactory.createWizard(); + + splitWaterSlime = NPCFactory.createSplittingWaterSlime(); + deflectWizard = NPCFactory.createDeflectWizard(); + dodgingDragonKnight = NPCFactory.createDodgingDragonKnight(); + } + + @Test + public void testCreateRangedBaseNpcNotNull() { + assertNotNull(rangedBaseNpc, "base Ranged NPC should not be null"); + } + + @Test + public void testCreateRangedBaseNpcHasColliderComponent() { + assertNotNull(rangedBaseNpc.getComponent(ColliderComponent.class), + "Fire Worm should have ColliderComponent"); + } + + @Test + public void testCreateRangedBaseNpcHasHitboxComponent() { + assertNotNull(rangedBaseNpc.getComponent(HitboxComponent.class), + "Fire Worm should have HitboxComponent"); + } + + @Test + public void testCreateRangedBaseNpcHasPhysicsComponent() { + assertNotNull(rangedBaseNpc.getComponent(PhysicsComponent.class), + "Fire Worm should have PhysicsComponent"); + } + + @Test + public void testCreateRangedBaseNpcHasPhysicsMovementComponent() { + assertNotNull(rangedBaseNpc.getComponent(PhysicsMovementComponent.class), + "Fire Worm should have PhysicsMovementComponent"); + } + + @Test + public void testCreateRangedBaseNpcHasAIComponent() { + assertNotNull(rangedBaseNpc.getComponent(AITaskComponent.class), + "Fire Worm should have PhysicsMovementComponent"); + } + @Test + public void testCreateMeleeBaseNpcNotNull() { + assertNotNull(meleeBaseNpc, "base Ranged NPC should not be null"); + } + + @Test + public void testCreateMeleeBaseNpcHasColliderComponent() { + assertNotNull(meleeBaseNpc.getComponent(ColliderComponent.class), + "Fire Worm should have ColliderComponent"); + } + + @Test + public void testCreateMeleeBaseNpcHasHitboxComponent() { + assertNotNull(meleeBaseNpc.getComponent(HitboxComponent.class), + "Fire Worm should have HitboxComponent"); + } + + @Test + public void testCreateMeleeBaseNpcHasPhysicsComponent() { + assertNotNull(meleeBaseNpc.getComponent(PhysicsComponent.class), + "Fire Worm should have PhysicsComponent"); + } + + @Test + public void testCreateMeleeBaseNpcHasPhysicsMovementComponent() { + assertNotNull(meleeBaseNpc.getComponent(PhysicsMovementComponent.class), + "Fire Worm should have PhysicsMovementComponent"); + } + + @Test + public void testCreateMeleeBaseNpcHasAIComponent() { + assertNotNull(rangedBaseNpc.getComponent(AITaskComponent.class), + "Fire Worm should have PhysicsMovementComponent"); + } + + @Test + public void testCreateWaterSlime() { + assertNotNull(waterSlime, "Water Slime should not be null"); + } + + @Test + public void testWaterSlimeCombatStatsComponent() { + assertEquals(100, waterSlime.getComponent(CombatStatsComponent.class).getHealth(), + "Health should be 100"); + assertEquals(10, waterSlime.getComponent(CombatStatsComponent.class).getBaseAttack(), + "BaseAttack should be 10"); + } + + @Test + public void waterSlimeHasAnimationComponent() { + assertNotNull(waterSlime.getComponent(AnimationRenderComponent.class), + "Water Slime should have AnimationRenderComponent"); + } + + @Test + public void testCreateWaterSlimeHasAnimationController() { + assertNotNull(waterSlime.getComponent(WaterSlimeAnimationController.class), + "Water Slime should have an Animation Controller"); + } + + @Test + public void testSplitWaterSlime() { + assertNotNull(splitWaterSlime, "Water Slime should not be Null"); } @Test - public void testCreateXenoGruntNotNull() { - assertNotNull(xenoGrunt, "Xeno Grunt should not be null"); + public void testSplitWaterSlimeHasSplittingComponent() { + Entity splitWaterSlime = NPCFactory.createSplittingWaterSlime(); + assertNotNull(splitWaterSlime.getComponent(SplitMoblings.class), + "Split water slimes should have a splitting component"); } @Test - public void testCreateXenoGruntHasColliderComponent() { - assertNotNull(xenoGrunt.getComponent(ColliderComponent.class), - "Xeno Grunt should have ColliderComponent"); + public void testCreateWaterQueenNotNull() { + assertNotNull(waterQueen, "Water Queen should not be null"); } @Test - public void testCreateXenoGruntHasHitboxComponent() { - assertNotNull(xenoGrunt.getComponent(HitboxComponent.class), - "Xeno Grunt should have HitboxComponent"); + public void testWaterQueenCombatStatsComponent() { + assertEquals(100, waterQueen.getComponent(CombatStatsComponent.class).getHealth(), + "Health should be 100"); + assertEquals(10, waterQueen.getComponent(CombatStatsComponent.class).getBaseAttack(), + "BaseAttack should be 10"); + } + + @Test + public void waterQueenHasAnimationComponent() { + assertNotNull(waterQueen.getComponent(AnimationRenderComponent.class), + "Water Queen should have AnimationRenderComponent"); + } + + @Test + public void testCreateWaterQueenHasAnimationController() { + assertNotNull(waterQueen.getComponent(WaterQueenAnimationController.class), + "Water Queen should have an Animation controller"); + } + + @Test + public void testCreateFireWormNotNull() { + assertNotNull(fireWorm, "Fire Worm should not be null"); + } + + @Test + public void testFireWormCombatStatsComponent() { + assertEquals(100, fireWorm.getComponent(CombatStatsComponent.class).getHealth(), + "Health should be 100"); + assertEquals(10, fireWorm.getComponent(CombatStatsComponent.class).getBaseAttack(), + "BaseAttack should be 10"); + } + + @Test + public void fireWormHasAnimationComponent() { + assertNotNull(fireWorm.getComponent(AnimationRenderComponent.class), + "Fire Worm should have AnimationRenderComponent"); + } + + @Test + public void fireWormHasAnimationController() { + assertNotNull(fireWorm.getComponent(FireWormAnimationController.class), + "Fire Worm should have AnimationRenderComponent"); + } + @Test + public void testCreateDragonKnightNotNull() { + assertNotNull(dragonKnight, "Dragon Knight should not be null"); + } + + @Test + public void testDragonKnightCombatStatsComponent() { + assertEquals(100, dragonKnight.getComponent(CombatStatsComponent.class).getHealth(), + "Health should be 100"); + assertEquals(10, dragonKnight.getComponent(CombatStatsComponent.class).getBaseAttack(), + "BaseAttack should be 10"); + } + + @Test + public void dragonKnightHasAnimationComponent() { + assertNotNull(dragonKnight.getComponent(AnimationRenderComponent.class), + "Dragon Knight should have AnimationRenderComponent"); + } + + @Test + public void dragonKnightHasAnimationController() { + assertNotNull(dragonKnight.getComponent(DragonKnightAnimationController.class), + "Dragon Knight should have Animation Controller"); + } + + @Test + public void dodgingDragonKnightHasDodgingComponent() { + assertNotNull(dodgingDragonKnight.getComponent(DodgingComponent.class), + "Dragon Knight should have AnimationRenderComponent"); + } + + @Test + public void testCreateWizardNotNull() { + assertNotNull(wizard, "Wizard should not be null"); + } + + @Test + public void testWizardCombatStatsComponent() { + assertEquals(100, wizard.getComponent(CombatStatsComponent.class).getHealth(), + "Health should be 100"); + assertEquals(10, wizard.getComponent(CombatStatsComponent.class).getBaseAttack(), + "BaseAttack should be 10"); + } + + @Test + public void wizardHasAnimationComponent() { + assertNotNull(wizard.getComponent(AnimationRenderComponent.class), + "Wizard should have AnimationRenderComponent"); } @Test - public void testCreateXenoGruntHasPhysicsComponent() { - assertNotNull(xenoGrunt.getComponent(PhysicsComponent.class), - "Xeno Grunt should have PhysicsComponent"); + public void wizardHasAnimationController() { + assertNotNull(wizard.getComponent(WizardAnimationController.class), + "Wizard should have Animation Controller"); } @Test - public void testXenoGruntCombatStatsComponent() { - assertEquals(100, xenoGrunt.getComponent(CombatStatsComponent.class).getHealth(), + public void dodgingWizardHasDeflectingComponent() { + assertNotNull(deflectWizard.getComponent(DeflectingComponent.class), + "Deflecting Wizard should have Deflecting component"); + } + + @Test + public void testCreateSkeletonNotNull() { + assertNotNull(skeleton, "skeleton should not be null"); + } + + @Test + public void testSkeletonCombatStatsComponent() { + assertEquals(100, skeleton.getComponent(CombatStatsComponent.class).getHealth(), "Health should be 100"); - assertEquals(10, xenoGrunt.getComponent(CombatStatsComponent.class).getBaseAttack(), + assertEquals(10, skeleton.getComponent(CombatStatsComponent.class).getBaseAttack(), "BaseAttack should be 10"); } @Test - public void xenoGruntHasAnimationComponent() { - assertNotNull(xenoGrunt.getComponent(AnimationRenderComponent.class), - "Xeno Grunt should have AnimationRenderComponent"); + public void skeletonHasAnimationComponent() { + assertNotNull(skeleton.getComponent(AnimationRenderComponent.class), + "skeleton should have AnimationRenderComponent"); } @Test - public void testCreateXenoGruntHasPhysicsMovementComponent() { - assertNotNull(xenoGrunt.getComponent(PhysicsMovementComponent.class), - "Xeno Grunt should have PhysicsMovementComponent"); + public void skeletonHasAnimationController() { + assertNotNull(skeleton.getComponent(SkeletonAnimationController.class), + "skeleton should have an Animation Controller"); } + } diff --git a/source/core/src/test/com/csse3200/game/services/MapServiceTest.java b/source/core/src/test/com/csse3200/game/services/MapServiceTest.java new file mode 100644 index 000000000..bf1173095 --- /dev/null +++ b/source/core/src/test/com/csse3200/game/services/MapServiceTest.java @@ -0,0 +1,58 @@ +package com.csse3200.game.services; + +import com.badlogic.gdx.math.GridPoint2; +import com.csse3200.game.areas.terrain.TerrainComponent; +import com.csse3200.game.areas.terrain.TerrainFactory; + +import com.csse3200.game.entities.Entity; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import static org.mockito.Mockito.*; + +public class MapServiceTest { + + private TerrainFactory mockTerrainFactory; + private TerrainComponent mockTerrainComponent; + private Entity mockEntity; + + + @BeforeEach + public void setUp() { + mockTerrainFactory = mock(TerrainFactory.class); + mockTerrainComponent = mock(TerrainComponent.class); + mockEntity = mock(Entity.class); + + + when(mockTerrainFactory.createTerrain(TerrainFactory.TerrainType.ALL_DEMO)).thenReturn(mockTerrainComponent); + when(mockEntity.getComponent(TerrainComponent.class)).thenReturn(mockTerrainComponent); + + } + + @Test + public void testConstructor() { + MapService mapService = new MapService(mockEntity, mockTerrainFactory); + + assertEquals(mockTerrainComponent, mapService.getComponent()); + + } + + @Test + public void testGetHeight() { + when(mockTerrainComponent.getMapBounds(0)).thenReturn(new GridPoint2(5,2)); // Example Point class to represent x and y + MapService mapService = new MapService(mockEntity, mockTerrainFactory); + + assertEquals(2, mapService.getHeight()); + } + + @Test + public void testGetWidth() { + when(mockTerrainComponent.getMapBounds(0)).thenReturn(new GridPoint2(5, 10)); // Example Point class to represent x and y + MapService mapService = new MapService(mockEntity, mockTerrainFactory); + + assertEquals(5, mapService.getWidth()); + } + +}