From: Matthias T. <mt...@gm...> - 2005-09-18 16:44:43
|
Sorry, a bad system crash killed my proxy, so my reply comes a little late: Miguel Angel Blanch Lardin wrote: > I am not really satisfied with the solution for the attributes problem. > I am rechecking sourcecode and I will perhaps try to provide a better > solution. It was a try and now we know better... > In fact my first change is going to be restorage of Delta^2 thing ( > applyDifferences thing ) as they are two methods very fragile that can > introduce lots of bugs. > > On the way I have found this: > //deleted.add(new RPObject(new RPObject.ID(object))); > deleted.add((RPObject) object.copy()); > > [ I will fix these ] > > The idea is that by creating a new object with just the ID we save the > process of copying the whole object ( a process that can be slow ). There was a problem with sending only the ID. Somehow the RPClass went missing (there is a default Class, but it vanished after a copy somewhere). Thats the reason I send the whole object. > PD: > Ok, after checking the whole code I think the error is at RPClass and > anon attributes. > > I still don't think it is a good idea to have totally random > attributes created at server. And in fact I think that it is not a > good idea to have a single class Item to encapsulate very diferent > things like shields, armors, swords, keys, potions, doors, furniture, > etc... Hm...I don't see an item as sword or shield but as an entity which does not move and does not have its own logic. So all thats different between items are their 'properties'. So why create a dozen of (nearly empty) classes which differ only in the RPClass they register and use. That very bad coding style and noone (from outside) will understand easily what's going on there. The annonymous attributes stuff may not be the best solution, but it was definetly a step in the right direction. Of course you do not have to use this Item-Class for each and every item you create. But a class for each weapon or each armor (as it was before) is not a good idea too. I think this is stuff for marauroa 1.1. As we proceed to add new stuff to stendhal this issue will come back anyway. Regards Matthias PS: What does PD: stand for? |