コード例 #1
0
 def get_cmd(self):
     if isinstance(self.target, BlockRef):
         target = self.target.as_cmdref()
     elif isinstance(self.target, EntitySelection):
         target = c.EntityReference(self.target.as_resolve())
     else:
         assert False
     return c.DataModifyValue(target, c.NbtPath(self.path), self.action,
                              self.source)
コード例 #2
0
 def apply(self, out, func):
     direct = self.var._direct_nbt()
     assert direct is not None, self.var
     dest_path, dest_storage = direct
     if isinstance(self.nbt, Variable):
         src_path, src_storage = self.nbt.as_nbt_variable(out)._direct_nbt()
         out.write(c.DataModifyFrom(dest_storage, dest_path, self.action,
                                    src_storage, src_path))
     else:
         out.write(c.DataModifyValue(dest_storage, dest_path,
                                     self.action, self.nbt))
コード例 #3
0
 def set_const_val(self, value, out):
     out.write(c.DataModifyValue(self.storage, self.path, 'set',
                               self.nbt_val(value)))
コード例 #4
0
 def get_cmd(self):
     direct = self.var._direct_nbt()
     assert direct is not None
     path, entity = direct
     return c.DataModifyValue(entity.ref, path, 'set', self.nbt)
コード例 #5
0
 def reset_last_exec(self):
     return c.DataModifyValue(self.block, c.NbtPath('UpdateLastExecution'),
                              'set', NBTByte(1))
コード例 #6
0
 def set_const_val(self, value, out):
     out.write(
         c.DataModifyValue(self.entity.ref, self.path, 'set',
                           self.nbt_val(value)))
コード例 #7
0
 def modify_cmd(self, entity, path, nbt):
     return c.DataModifyValue(entity, path, 'append', nbt)