TerrariaClone icon indicating copy to clipboard operation
TerrariaClone copied to clipboard

I get an array error after one click

Open Jark5455 opened this issue 6 years ago • 4 comments

console output after one click in game

Exception in thread java.lang.ArrayIndexOutOfBoundsException: 1203 at TerrariaClone.updateApp(TerrariaClone.java:3283) at TerrariaClone$1$1.actionPerformed(TerrariaClone.java:2119) at javax.swing.Timer.fireActionPerformed(Timer.java:313) at javax.swing.Timer$DoPostEvent.run(Timer.java:245) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Jark5455 avatar Jul 06 '18 01:07 Jark5455

It's not a bug, it's a feature; please refer to the README:

Unfortunately, it's only working in the academic sense, since it's so slow that you only get about 0.03 FPS and it crashes when you click the mouse button. But, somewhere in there is a working game. You know, sort of.

raxod502 avatar Jul 06 '18 15:07 raxod502

I don't think there is a working game in this anywhere, so we must destroy it.

voidnull000 avatar Sep 09 '18 15:09 voidnull000

With a little bit of work and debugging, I found the error. On TerrariaCClone line 3929 if (blocks[layer][uy][ux] != 0 && Arrays.asList(BLOCKTOOLS.get(blocks[layer][uy][ux])).contains(inventory.tool())) {

The issue is that on the array the array limit for "uy" is 192 yet you are asking for a number off the array,1202, could you have made a mistake and meant to type 120

Jark5455 avatar Oct 21 '18 18:10 Jark5455

fixed, replace 3690-3691 with this if ((layer < blocks.length && uy < blocks[layer].length && ux < blocks[layer][uy].length) && blocks[layer][uy][ux] >= 8 && blocks[layer][uy][ux] <= 14 || blocks[layer][uy][ux] == 17 || blocks[layer][uy][ux] == 23 || blocks[layer][uy][ux] >= 80 && blocks[layer][uy][ux] <= 82) { this breaks the physics of the game but you can atleast right click to be able to use your tools, replace 3363 with this if ((layer < blocks.length && uy < blocks[layer].length && ux < blocks[layer][uy].length) && but you cannot break blocks I still have not found out why the character cannot move

Jark5455 avatar Oct 21 '18 19:10 Jark5455