Hi i have a problem , my game was working fine but some thing went wrong (may be with compiler)
I have a class and an interface , and there is an erro says that class does not override a method
The problem is it actually ovverides it ,and i have tried to change name of a method and of both class and interface - but error is allways the same , it does not even changes method name , what could i do ? here is error
//////
run:
dic 01, 2019 5:18:43 AM com.jme3.system.JmeDesktopSystem initialize
INFORMAZIONI: Running on jMonkeyEngine 3.2-stable
- Branch: HEAD
- Git Hash: f85624a
- Build Date: 2018-03-06
dic 01, 2019 5:18:44 AM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFORMAZIONI: LWJGL 2.9.3 context running on thread jME3 Main - Graphics Adapter: aticfx64
- Driver Version: 8.17.10.1669
- Scaling Factor: 1
dic 01, 2019 5:18:44 AM com.jme3.renderer.opengl.GLRenderer loadCapabilitiesCommon
INFORMAZIONI: OpenGL Renderer Information - Vendor: ATI Technologies Inc.
- Renderer: AMD Radeon ™ R9 200 Series
- OpenGL Version: 4.6.13571 Compatibility Profile Context 19.9.3 26.20.13025.1004
- GLSL Version: 4.60
- Profile: Compatibility
dic 01, 2019 5:18:44 AM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFORMAZIONI: Audio Renderer Information - Device: OpenAL Soft
- Vendor: OpenAL Community
- Renderer: OpenAL Soft
- Version: 1.1 ALSOFT 1.15.1
- Supported channels: 64
- ALC extensions: ALC_ENUMERATE_ALL_EXT ALC_ENUMERATION_EXT ALC_EXT_CAPTURE ALC_EXT_DEDICATED ALC_EXT_disconnect ALC_EXT_EFX ALC_EXT_thread_local_context ALC_SOFT_loopback
- AL extensions: AL_EXT_ALAW AL_EXT_DOUBLE AL_EXT_EXPONENT_DISTANCE AL_EXT_FLOAT32 AL_EXT_IMA4 AL_EXT_LINEAR_DISTANCE AL_EXT_MCFORMATS AL_EXT_MULAW AL_EXT_MULAW_MCFORMATS AL_EXT_OFFSET AL_EXT_source_distance_model AL_LOKI_quadriphonic AL_SOFT_buffer_samples AL_SOFT_buffer_sub_data AL_SOFTX_deferred_updates AL_SOFT_direct_channels AL_SOFT_loop_points AL_SOFT_source_latency
dic 01, 2019 5:18:44 AM com.jme3.audio.openal.ALAudioRenderer initOpenAL
AVVERTENZA: Pausing audio device not supported.
dic 01, 2019 5:18:44 AM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFORMAZIONI: Audio effect extension version: 1.0
dic 01, 2019 5:18:44 AM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFORMAZIONI: Audio max auxiliary sends: 4
dic 01, 2019 5:18:44 AM com.jme3.app.LegacyApplication handleError
GRAVE: Uncaught exception thrown in Thread[jME3 Main,5,main]
java.lang.ExceptionInInitializerError
at NoblesOrigins.Classes.Virtual.General.VirtualWallet.(VirtualWallet.java:20)
at NoblesOrigins.Classes.Inventory.PersonalInventory.(PersonalInventory.java:18)
at NoblesOrigins.Classes.Riempietori.VirtualFillerOnStartUp.createPlayerVirtualLord(VirtualFillerOnStartUp.java:311)
at NoblesOrigins.Classes.Riempietori.VirtualFillerOnStartUp.createPlayerClassAndAllBelow(VirtualFillerOnStartUp.java:249)
at mygame.NoblesOriginsExe.simpleInitApp(NoblesOriginsExe.java:90)
at com.jme3.app.SimpleApplication.initialize(SimpleApplication.java:220)
at com.jme3.system.lwjgl.LwjglAbstractDisplay.initInThread(LwjglAbstractDisplay.java:130)
at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:211)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.RuntimeException: Uncompilable source code - NoblesOrigins.Classes.Equipment.WeaponComposingClasses.Weapon is not abstract and does not override abstract method getDammageToShield(int) in NoblesOrigins.Classes.Virtual.General.Feudal.CloseCombatWeaponInterface
at NoblesOrigins.Classes.Inventory.InventoryObjects.InventoryObjectParent.(InventoryObjectParent.java:34)
… 9 more
BUILD SUCCESSFUL (total time: 10 seconds)
//////
now here is the class
public class Weapon extends InventoryObjectParent implements
CloseCombatWeaponInterface
{
Node weaponBody;
int lvl;
float lenght;
float dammageCutting=1;
float dammagePoke=1;
float dammageBlunt=1;
float speed;
public EquipmentGiver equipmentGiver;// who gave it
float durability;
float maxDurability;
int weaponType;//0 bastone , 1 oneHandedSword,2 1hPike,3 twoHPike,4 2HSword
///
public Node createAndAddBody(AssetManager assetManager){
Node node= (Node)assetManager.loadModel("Models/Stuff/LVL0/untitled.j3o");
if(weaponType==0){
node=(Node)assetManager.loadModel("Models/Stuff/LVL0/untitled.j3o");
}
if(weaponType==1){
if(getLvl()==3){
node=(Node)assetManager.loadModel("");
}
}
if(weaponType==2){
if(getLvl()==1){
node=(Node)assetManager.loadModel("");
}
}
weaponBody=node;//adds to object
return node;
}
///
////// interface
@Override
public int getDammageToShield(int attackEnergy) {
return (int) (attackEnergy*(dammageBlunt+dammageCutting+dammagePoke));
}
@Override
public int getType() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public int maxDuration() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public int remDuration() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public float getLenghtWeaponReach() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public int getBluntDammage() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public int cuttingDammage() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public int pokeDammage() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public float hitThatArmourAndRetDamTOHp(Armour armour, int powerHit, int attackType) {
float dammageToHp=0;
if(armour!=null){
if(weaponType==1){//1h sword
if(attackType==1){//center poke and cut
dammageToHp+= ((powerHit/3*2)*getDammagePoke() - ((powerHit/3*2)*getDammagePoke()/100*armour.getArmourPoke()));
dammageToHp+= ((powerHit/3*1)*getDammageCutting() - ((powerHit/3*2)*getDammageCutting()/100*armour.getArmourCutting()));
dammageToHp=armour.plateGetHit(dammageToHp);
}else{
if(attackType==2||attackType==3||attackType==4||attackType==5){
dammageToHp+= ((powerHit)*getDammageCutting() - ((powerHit)*getDammageCutting()/100*armour.getArmourCutting()));
dammageToHp=armour.plateGetHit(dammageToHp);
}
}
}else{
if(weaponType==2||weaponType==0){//if 1hSpear or stick
if(attackType==1){//center poke and cut
dammageToHp+= ((powerHit)*getDammagePoke() - ((powerHit)*getDammagePoke()/100*armour.getArmourPoke()));
dammageToHp=armour.plateGetHit(dammageToHp);
}else{
if(attackType==2||attackType==3||attackType==4||attackType==5){
dammageToHp+= ((powerHit)*getDammageBlunt()- ((powerHit)*getDammageBlunt()/100*armour.getArmourBlunt()));
dammageToHp=armour.plateGetHit(dammageToHp);
}
}
}
}
}else{
}
if(dammageToHp<0){dammageToHp=0;}
return dammageToHp;
}
@Override
public Node getNode(NodesGiver nodesGiver) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
/////////////////
public void makeWeapon1HSwordLVL1(){
this.lvl = 5;
this.lenght = 0.56f;
this.dammageCutting = 10;
this.speed = 0.1f;
this.durability = 30;
this.weaponType = 1;
}
public void makeWeapon1HSwordLVL5(){
this.lvl = 5;
this.lenght = 0.56f;
this.dammageCutting = 10;
this.speed = 0.1f;
this.durability = 30;
this.weaponType = 1;
}
public void makeWeapon1HSpearLVL5(){
this.lvl = 5;
this.lenght = 0.80f;
this.dammageCutting = 1;
this.dammagePoke=10;
this.speed = 0.1f;
this.durability = 30;
this.weaponType = 1;
}
@Override
public Node getNodeBody(NodesGiver nodesGiver) {
setBodyString(getBodyString());
return super.getNodeBody(nodesGiver); Tools | Templates.
}
String getRightString(){
if(weaponType==1){
return "Models/Stuff/LVL0/untitled.j3o";
}else{
return "Models/Stuff/LVL0/untitled.j3o";
}
}
//////////////////////////////
public Weapon(int lvl, float lenght, float dammageCutting,float dammagePoke,float dammageBlunt,
float speed, float durability, int weaponType) {
this.lvl = lvl;
this.lenght = lenght;
this.dammageCutting = dammageCutting;
this.dammagePoke=dammagePoke;
this.dammageBlunt=dammageBlunt;
this.speed = speed;
this.durability = durability;
this.weaponType = weaponType;
}
and here is interface
public interface CloseCombatWeaponInterface {
int getType();
int getWeight();
int maxDuration();
int remDuration();
float getLenghtWeaponReach();//
int getBluntDammage();
int cuttingDammage();
int pokeDammage();
int getDammageToShield(int attackEnergy);
Node getNode(NodesGiver nodesGiver);
public float hitThatArmourAndRetDamTOHp(Armour armour,int powerHit,int attackType);
}