The reason for this strange difference is historical. In former versions (long before jPCT-AE existed), there was no Light-class in jPCT. The only way to add lights was to use the methods that exist in World for that. But i never felt satisfied with these methods, because the way they work feels clunky and slightly wrong. So i decided to add a little more OOish way of doing it, but i didn't want to break existing code, so i added the Light class. I put this into the util-package, because it was just that: A helper class that eases handling lights. The general rule for stuff in the util-package is, that it eases the handling for some things but it doesn't add anything that wouldn't be possible without it.
When doing jPCT-AE, i took the chance to hide/modify the light-related methods in World and rely on the Light class only. But now, the precondition that everything in util is just a helper to ease things that could be done with the classes in the core package wasn't true anymore. So i had to move Light into the core.
I've been bitten by this decision myself and i might move Light into the core in jPCT one day. Until then, this is what i do: I split my project into three parts. One contains the common stuff and will be compiled against jPCT-AE. The other two are platform specific for desktop and Android and include the common package. In the desktop part, i add this class:
package com.threed.jpct;
/**
*
* @author EgonOlsen
*
*/
public class Light extends com.threed.jpct.util.Light {
private static final long serialVersionUID = 1L;
public Light(World arg0) {
super(arg0);
setAttenuation(-1);
}
public SimpleVector getPosition(SimpleVector store) {
store.set(super.getPosition());
return store;
}
}