yh people seemed to go on a tangent :P. The problem he was talking about is the cursor showing up even when he calls:
[java]
flyCam.setEnabled(false);
inputManager.setCursorVisible(false);[/java]
and thats because registerWithInput() is called after simpleInit() not before, which executes this line:
[java]inputManager.setCursorVisible(dragToRotate || !isEnabled());[/java]
hence showing the cursor again
Yes exactly. Thatās the point wezrule.
OffTopic: Iām still very angry that I got downvoted for the post in which I thanked pspeed for the help. This is just not the good way dealing with the community. (Will this also get a downvote )?
@universe said:
OffTopic: I'm still very angry that I got downvoted for the post in which I thanked pspeed for the help. This is just not the good way dealing with the community. (Will this also get a downvote ;) )?
The thumbs are anonymous and somebody in the community seems to run around with a hate cap at the moment ;) I don't think any of the devs thumbed you down (in that post, I thumbed you down in your second post).
OK. Again thanks to pspeed for the important hint.
This code works fine:
[java]
AppState flyCamState = stateManager.getState(FlyCamAppState.class);
if (flyCamState != null) {
stateManager.detach(flyCamState);
}
inputManager.setCursorVisible(false);
[/java]
Itās a very strange, but clean semantic, so itās fine. But please document the behaviour of the FlyCam. Others might fall into the same pit. I still wonder if the behaviour of registerWithInput is the way to go - but if there is a clean possibility to remove the flyCam, thatās all we need to have totally correct semantics.
Unfortunately just two of six developers/contributors could help But thanks to those who did.
@normen:
You might be right, but the downvotes came right after the devposts. But I donāt want to blame without reason, so I recover my statement and put it into the trash bin.
@universe said:
Unfortunately just two of six developers/contributors could help :( But thanks to those who did.
Dafuq? Please compare time and amount of help to that you got with the last product you bought for money.
@universe said:
You might be right, but the downvotes came right after the devposts. But I don't want to blame without reason, so I recover my statement and put it into the trash bin.
This forum is very very active, you never know who reads what you write and when they do. At any instance, the thumbs are a open and anonymous way to express ones opinion so its pointless to complain.
ā¦This flycam thing was completely reworked by Paulā¦
You now have an AppState that is handling the camera and is attached to the simple application in the default constructor.
If you donāt want the FlyCamAppState to be added to your simple application you just have to redefine the constructor of your SimpleApplication like that
[java]
public MySimpleApplication() {
super(new StatsAppState(), new DebugKeysAppState());
}
[/java]
or you can even initialize it with no appState at all like this
[java]
public MySimpleApplication() {
super((AppState[])null);
}
[/java]
then you can disable the cursor like you did in the simpleInit as you wish.
The reason why flyCam.setEnabled is still there is to keep backward compatibility with user code, because, as you may know, thatās also a capital thing when developing a library.
The only grief that could be done is that this method should have been deprecatedā¦but reallyā¦is that that flawed??
In the end you are right the previous way of doing it was flawedā¦and has been fixedā¦but you were so eager to show off that you fail to find the proper way of doing itā¦
What about posting a patch next time? this is constructive⦠also building it you would have understood that this is not an issue at all and this would have save a lot of time to everyoneā¦
This is far from being a SERIOUS issue, calm down, youāll hit harder walls making a gameā¦
Also please drop the aggressive attitude, we do know we do mistakes, and we are ready to talk about itā¦except when weāre being yelled at for no reasonā¦
OK, I say it another way:
Just two of six developers/contributors participating here helped and the other four wasted their time with not useful answers and offenses.
To invest free time in supporting people is no licence to shout phrases like āyour parents blablablabaā - are we clear?
@nehon:
Why not mark it as @Deprecated? It would help a lot
Iām not aggressive on how you make mistakes in coding, iām angry about how some of you are answering posts.
@universe said:
Just two of six developers/contributors participating here helped and the other four wasted their time with not useful answers and offenses.
To invest free time in supporting people is no licence to shout phrases like "your parents blablablaba" - are we clear?
@nehon:
Why not mark it as @Deprecated? It would help a lot :(
I'm not aggressive on how you make mistakes in coding, i'm angry about how some of you are answering posts.
And what would you expect from that really? isn't that aggressive?
Who started to insult whom parents?
EDIT:
This might have been a reaction to my second post. But is it a SANE reaction? I just pointed out that things are not done by overriding the class. There were no insults or stuff in my post - just technical aspects.
EDIT2:
Sorry, the first word of this post was totally wrong!
Sad that you donāt admit that it was one of your team that started this whole insultig stuff. But donāt blame me for beeing aggressive (i call it just angry) then.
I donāt see any ācloseā button for this thread, so would please one of you be so nice to shut this stuff - problem is solved.
@universe said:
Who started to insult whom parents?
EDIT:
This might have been a reaction to my second post. But is it a SANE reaction? I just pointed out that things are not done by overriding the class. There were no insults or stuff in my post - just technical aspects.
EDIT2:
Sorry, the first word of this post was totally wrong!
Nobody insulted anyones parents, technically a question was posed. You seem to be out for trouble in the way you take everything literal. Let me recap what I saw here and add the between-the-lines parts that apparently went by you:
You got an answer from a core developer of the engine that the solution to your specific issue is that you override the methods that don't do what you want. This implies that a) your issue has been understood and b) there is no interest in changing this behavior. Then you proceeded to explain the issue as if it was not understood with a tone that completely justified the then following comment by @sploreg which translated means: "I see you get agitated, my stance towards this doesn't change." From then on the whole thing became a completely pointless flow of "a proper library should be like this" arguments and nitpicking on how the communication should happen and who said what.
I again have to question the point of your actions, if you want jME3 to get better you should see by now that its not the way to make that happen. If you want your game to work you should by now know you will probably write your own CamController anyway. Only if you want to have fights on an internet forum this maybe makes sense.
@universe said:
a) oh i'm sorry - the experience hides the bugs - i missed that point
b) I expect that all API elements are working as expected (i.e. at least as documented). This is purposeful for any developer trying to use the stuff provided by the engine. And if there is an adapter class that takes care of some things I don't want to take care of, it should work flawlessly so I can use it.
a) Its not a bug and again why being so cocky? Where is your free resource I can complain about? Oh right, your try to "contribute" right here, thats something I could complain about all day long :P
b) You clearly didn't use a lot of open source software yet (Edit: as I forgot you cannot read between the lines, this means "jme is a very well documented and clean library compared to many other projects" -- I can see you typing your "oh so you say jme is automatically shit because its open source? hahah" post)
Your second post already started deriding the technical competence of the jme project team. (Iām not a member of that team, just to make that clear.)
And youāre seriously believing you didnāt start this little flamewar?
Besides, you have been constantly escalating the flamewar. There was some escalating from the dev side, too, but itās quite clear that you were far more agressive here.
I find it hard to believe Iām actually saying this, since I did have my quarrels with a specific dev team member⦠but I stand by my word: itās not the devs who are the main culprits in this flamewar.
And now Iām stepping down from my little soapbox
And I certainly wonāt even look into the technical side of this.
Too much mud and acid flying around here.
EDIT: I was responding to @universe, not to @normen.
Sorry for the overlap.
Your second post already started deriding the technical competence of the jme project team.
No, not the team - but a specific member of that team. Someone telling me that overriding a class is a clean approach for solving issues must be either uninterested or something worse...
So there is no - technical - reason why my second post should not be correct. And actually, as pspeed pointed out, there IS a solution without overriding the class. So my doubt in the "competence" of sploreg was justified. I am completely aware that it is impossible for a team member to know all stuff about the whole project - especially when it is such a big project. But we all should be at the point that the first answer of the dev team was not helpful and that's all I pointed out in my second post. I'm really sorry if this pissed him off - that was not my intention. My intention was to demonstrate how much workaround and how less solution that was. No personal attack but a technical attack. A good developer withstands with technical arguments. Others withstand with personal offenses. And this special dev member chose the second way. Though, you are right that there is no reason for pushing this up.
So enough of this. Fortunately there actually were people that helped a lot by providing a clean solution and I am very thankful for this. So this topic can be closed.
Kinda jading discussing with you as you silently ignore everything that you donāt want to read or answer to but as you openly start questioning the competence of our valued team members here now I wonāt just let this bullshit be the last post.
@universe said:
No, not the team
Yes, you spoke about the whole engine which is a team effort. Also you used "we" in your fictive inner monologue.
@universe said:
So there is no - technical - reason why my second post should not be correct.
technically 90% of your post is incorrect, from the inner monologue to the assumption jme doesn't work in testing environments right down to the core problem of the issue. And I agree that it is the beginning of this thread being a flame thread, if it was "technical" you'd actually show a flaw in our thinking instead of puppeteering us as idiots in your mind.
I usually steer clear of threads like this - but as a neutral observer Iād like to unite everyone in hatred of me by saying that neither side of the argument (not including those who came in with constructive posts) is really coming off very well here
To be specific (in order of appearance in the thread):
@universe You have come across as arrogant and demanding. In particular taking what is in fact a real but minor and easily worked around bug and elevating its severity disproportionately. You were presented with a work around almost immediately and the correct solution within a few hours. Thatās excellent for unpaid support and a little more patience in the first place would have given you the better answer you were looking at once the more informed developer was available. If the reply irritated you you would have been much better leaving it for a while to see if anyone else responded rather than making an attack that could well have seemed like it was aimed at the entire project.
@sploreg Your reply about tact was provocative and triggered the initial escalation.
@madjack Yours was an insult aimed at his parents. I imagine you thought you were being funny, but between strangers on the internet itās not always easy to judge the tone of things and on top of the reply above I can understand why it made the OP angry.
@normen You made some good points but it did rather feel like you were jumping on the bandwagon to attack the messenger not the message.
Now, in the interest of moving on can we be happy that the correct way to control the initial states of SimpleApplication has been described? @universe can submit a patch for the missing documentation on flycams behaviour and we can all go back to our regularly scheduled programming
Right, everyone hates me now. My work here is done.
So I donāt hate you @zarch, because you are completely right. Especially with this statement:
In particular taking what is in fact a real but minor and easily worked around bug
But this is something some of the developers don't want to realize, cauz they're on the "we have fantatstic experience and there are no bugs" trip.
The severity is a complicated thing.... surely there are many more important things, but this is just something that MUST NOT happen. My experience - if I also may talk about experience now - in software architecture says: never let a program change states unexpectedly!
Yes, I should have waited some time. And yes I should have ask a question like "are there no other ways than workarounding it?" instead of flaming sploreg for his way too short and not useful answer. Afterwards I think there would have been much better ways to get the dev team thinking about that issue instead of flaming one of them who is obisously not interested in thinking about this issue. So I initially decided to go the wrong way in communication - but the technical points stay unreplied. There is still no reason, why the registerWithInput method should change cursor visibilty (please think about SRP). And @normen says that 90% of my posts are incorrect but gives NO technical reason for it. He even did not refer to my point acording to the SRP - a well known and commonly used principle in software design. You see what's wrong?
Finally I'd like to emphasize a lot that I am really aware of that you ALL dev team members and contributors did a great job in constructing this engine. It is very useful and many things work as one would expect. What would be the cherry on top of the cake is, that you start taking feedback seriously - even if it is the first posting of a forum member. I'm really no newbie in software architecture and I can see an anti pattern if it's there. You may say that you don't care about this class right now cauz you have other things to do. You may say that you realize it, but it's not important for you. But you may not say, that "there is no bug" after two or three other forum members recognized it as a bug.
PS:
I would be very interested in a reply to @toolforger ! You did not respect his posting anyways as you prefered to battle with me:
Honestly, you may well know what you are talking about but no-one here has a clue who you are. Youāre just another guy who came barging in and started shouting about how things should be done. You also said several things that seemed like an attack on the running and structure of the entire project which was guaranteed to further alienate people.
While there were valid parts in your message your tone throughout was very superior and arrogant, which is not the best way to get a group of strangers to do anything for youā¦
http://imgs.xkcd.com/comics/duty_calls.png
Iām going to make this final reply then I really suggest people let the topic die. As I said at the start no-one is coming out of it looking great.
The single responsibility principle is valid. But itās not the entire story. As already explained the class you were using is intended to allow people to get off the ground fast and then use as a starting point for writing their own (or even completely replace). I know I replaced it entirely almost immediately in my project. Itās not a core library class and as a result is not a priority for the development team to spend their time on.
Yes it should be more clearly labelled as such but itās expected that most people with a project complex enough for it to become an issue will be replacing it long before that. If you would like to submit a patch with extra documentation or with a backwardly compatible bug fix then please do so.
@normen with his first response actually answered most of your questions. Go back and read it again on the first page. On the second page [edit: nehon not normen] then explained exactly how you remove the flycam so itās never added in the first place - thus solving all potential problems with it. In both cases you actually attacked him and essentially ignored the post because by that point you were feeling under attack and more interested in fighting than in listening to the responses.
This entire thread could have been reduced to your initial question and those two replies and everyone would leave with just as much information and a much happier feelingā¦You will notice that the dev who actually made the changes normen was telling you about about entered the thread but left immediately without reading any more because of how far the discussion had devolved. You lost the perfect chance to get the perfect answer right there.
In a flame war all sides are to blame - as any side can stop it at any time. All you need to do is realise where things are going and refuse to sink any further into the mire.
Right, Iām out of here. Hopefully this thread can die now but Iāve said my piece. Peace out.
@universe: I said 90% of your second post is wrong. You just donāt stop talking bullshit do you? And you keep ignoring all points made against you and keep holding on to that straw of āthis camera-input related class modifies the cursor, oh no! cursor hasnāt got anything to do with input, oh no!ā It could be funny but I really start to disrespect you twisting and turning the truth to make some point. Iād be grateful if you just didnāt give feedback anymore, its not useful anyway.
PS: toolforger talked to you Iām afraid, I already had my talks and also fights with him and he has way more discussion culture than you have
Edit: @zarch, theres some places where you need to put āpaulā instead of my name ^^
@normen said:
Edit: @zarch, theres some places where you need to put "paul" instead of my name ^^
Ahh, my mistake. The post on the second page was by @nehon not @normen. I keep misreading you as each other in posts. :( I propose that we have a normen/nehon fight and the loser has to rename to something more different :D
Right, really out now :)