Re: New Cargo Transportation Scheme [CTS] – Discussion ...
Posted: 17 Apr 2008 12:13
Could it be that everyone is talking about something else here? Regardless of labels or classes, the primary question seems to be if there should be some kind of abstraction layer between the actual cargoes and the vehicles transporting them. The obvious difficulties of some vehicle set authors with the current options seem to promote that idea. Now an abstraction layer should group cargoes by their properties, possibly in various dimensions. From the top of my head, not claiming completeness:
- aggregate: is it fluid or bulky?
- dumpable: can you heap it up and shovel it around (for example coal or grain)?
- edibility: is it edible or inedible?
- weather affected: should it be protected from weather influence or not?
- refrigerated: should it be kept cool?
- valuable: should it be kept safe from intruders?
- lifeform: is it human, animal or lifeless?
- express: does it need a fast delivery?
A cargo set author would define one value of each dimension for each cargo. Coal for example would be bulky, dumpable, inedible, non-weather-affected, non-refrigerated, invaluable, lifeless and non-express. A vehicle set author would then provide vehicles also with a value for each dimension. Cargo can only be transported in a vehicle if it matches all the dimension values of the vehicle. For greater flexibility each dimension may also allow a "don't care" value which matches all values of that dimension on the cargo side. A box car has bulky, don't care, don't care, don't care, uncool, invaluable, lifeless and slow. From this perspective we only need _one_ abstraction layer, not two. In fact any secondary labelling mechanism seems to be redundant and a waste of bits. How to squeeze all that into 32 (?) bits I don't know, but it should be possible.
The benefit is obvious though. Both, the cargo and vehicle authors don't need to explicitly support the other side, but only define general properties of their vehicles and cargoes to be compatible with _all_ sets of the other side that also do that.
- aggregate: is it fluid or bulky?
- dumpable: can you heap it up and shovel it around (for example coal or grain)?
- edibility: is it edible or inedible?
- weather affected: should it be protected from weather influence or not?
- refrigerated: should it be kept cool?
- valuable: should it be kept safe from intruders?
- lifeform: is it human, animal or lifeless?
- express: does it need a fast delivery?
A cargo set author would define one value of each dimension for each cargo. Coal for example would be bulky, dumpable, inedible, non-weather-affected, non-refrigerated, invaluable, lifeless and non-express. A vehicle set author would then provide vehicles also with a value for each dimension. Cargo can only be transported in a vehicle if it matches all the dimension values of the vehicle. For greater flexibility each dimension may also allow a "don't care" value which matches all values of that dimension on the cargo side. A box car has bulky, don't care, don't care, don't care, uncool, invaluable, lifeless and slow. From this perspective we only need _one_ abstraction layer, not two. In fact any secondary labelling mechanism seems to be redundant and a waste of bits. How to squeeze all that into 32 (?) bits I don't know, but it should be possible.
The benefit is obvious though. Both, the cargo and vehicle authors don't need to explicitly support the other side, but only define general properties of their vehicles and cargoes to be compatible with _all_ sets of the other side that also do that.