예제 #1
0
  @SideOnly(Side.CLIENT)
  public void setEntryValues(List<EntityDataManager.DataEntry<?>> entriesIn) {
    this.lock.writeLock().lock();

    for (EntityDataManager.DataEntry<?> dataentry : entriesIn) {
      EntityDataManager.DataEntry<?> dataentry1 =
          (EntityDataManager.DataEntry)
              this.entries.get(Integer.valueOf(dataentry.getKey().getId()));

      if (dataentry1 != null) {
        this.setEntryValue(dataentry1, dataentry);
        this.entity.notifyDataManagerChange(dataentry.getKey());
      }
    }

    this.lock.writeLock().unlock();
    this.dirty = true;
  }
예제 #2
0
  private static <T> void writeEntry(PacketBuffer buf, EntityDataManager.DataEntry<T> entry)
      throws IOException {
    DataParameter<T> dataparameter = entry.getKey();
    int i = DataSerializers.getSerializerId(dataparameter.getSerializer());

    if (i < 0) {
      throw new EncoderException("Unknown serializer type " + dataparameter.getSerializer());
    } else {
      buf.writeByte(dataparameter.getId());
      buf.writeVarIntToBuffer(i);
      dataparameter.getSerializer().write(buf, entry.getValue());
    }
  }