как назначить элемент для объекта, который имеет тип класса, который я сделал - PullRequest
0 голосов
/ 15 октября 2019

У меня есть модель, созданная с использованием 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

}
...