У меня есть модель, созданная с использованием metadepth (.mdepth), и логика, стоящая за ней, написана с помощью eol. У меня есть класс типа Contents, который элемент с именем position типа Cell и наследуется классом с именем fire. По сути, я хочу установить содержимое новой позиции Fire в определенную ячейку, но ничего не работает, и я не знаю, в чем проблема, так как у меня есть доступ к требуемому огню, и я могу распечатать всеего содержание, но я просто не могу их изменить.
mdepth:
Node Cell : Place {
number: int; //To know which cell this is, used for placement and outputs
//can only move in 4 directions: N, E, S, W and contains cells or walls W: 0, N: 1, E: 2, S: 3
SouthCell: Adjacent;
EastCell: Adjacent;
NorthCell: Adjacent;
WestCell: Adjacent;
contents: Contents; //the Contents of the cell, standard empty?????
doors: Door[0..*] {unique}; //when navigating between cells you need to know where the exit is
//room: Room; //to know in wich cell the room is located */
}
Node Contents {
position: Cell; // each Contents belongs to a cell
}
Node Fire : Contents {
name: String = "Fire";
}
EOL:
operation Cell burnCell(){
var fire = Fire.createInstance();
fire.position = self;
("Fire "+fire.name+" created, position: "+fire.position).println();//position is staying empty
self.contents := fire; //assignment not working
("burn cell:"+ self.number + " contents: " + self.contents).println();//contents isn't updating
}