protected override void EncodeData(RailBitBuffer buffer) { buffer.WriteBool(this.Up); buffer.WriteBool(this.Down); buffer.WriteBool(this.Left); buffer.WriteBool(this.Right); buffer.WriteBool(this.Action); }
internal static void EncodeDelta( RailBitBuffer buffer, RailStateDelta delta) { // Write: [EntityId] buffer.WriteEntityId(delta.EntityId); // Write: [IsFrozen] buffer.WriteBool(delta.IsFrozen); if (delta.IsFrozen == false) { // Write: [FactoryType] RailState state = delta.State; buffer.WriteInt(RailState.FactoryTypeCompressor, state.factoryType); // Write: [IsRemoved] buffer.WriteBool(state.RemovedTick.IsValid); if (state.RemovedTick.IsValid) { // Write: [RemovedTick] buffer.WriteTick(state.RemovedTick); // End Write } else { // Write: [HasControllerData] buffer.WriteBool(state.HasControllerData); // Write: [HasImmutableData] buffer.WriteBool(state.HasImmutableData); // Write: [Flags] buffer.Write(state.FlagBits, state.Flags); // Write: [Mutable Data] state.EncodeMutableData(buffer, state.Flags); if (state.HasControllerData) { // Write: [Controller Data] state.EncodeControllerData(buffer); // Write: [Command Ack] buffer.WriteTick(state.CommandAck); } if (state.HasImmutableData) { // Write: [Immutable Data] state.EncodeImmutableData(buffer); } } } }
public static void EncodeDelta( IRailStateConstruction stateCreator, RailBitBuffer buffer, RailStateDelta delta) { // Write: [EntityId] buffer.WriteEntityId(delta.EntityId); // Write: [IsFrozen] buffer.WriteBool(delta.IsFrozen); if (delta.IsFrozen == false) { // Write: [FactoryType] RailState state = delta.State; buffer.WriteInt(stateCreator.EntityTypeCompressor, state.FactoryType); // Write: [IsRemoved] buffer.WriteBool(delta.RemovedTick.IsValid); if (delta.RemovedTick.IsValid) // Write: [RemovedTick] { buffer.WriteTick(delta.RemovedTick); } // Write: [HasControllerData] buffer.WriteBool(state.HasControllerData); // Write: [HasImmutableData] buffer.WriteBool(state.HasImmutableData); if (state.HasImmutableData) // Write: [Immutable Data] { state.DataSerializer.EncodeImmutableData(buffer); } // Write: [Flags] buffer.Write(state.DataSerializer.FlagBits, state.Flags); // Write: [Mutable Data] state.DataSerializer.EncodeMutableData(buffer, state.Flags); if (state.HasControllerData) { // Write: [Controller Data] state.DataSerializer.EncodeControllerData(buffer); // Write: [Command Ack] buffer.WriteTick(delta.CommandAck); } } }
internal void Write(RailBitBuffer buffer) { uint first = FixedByteBuffer8.Pack(this.val0, this.val1, this.val2, this.val3); uint second = FixedByteBuffer8.Pack(this.val4, this.val5, this.val6, this.val7); bool writeSecond = (second > 0); buffer.WriteUInt(first); buffer.WriteBool(writeSecond); if (writeSecond) buffer.WriteUInt(second); }
protected void EncodeView(RailBitBuffer buffer, int reservedBytes) { buffer.PackToSize( RailConfig.PACKCAP_MESSAGE_TOTAL - reservedBytes, int.MaxValue, this.view.GetOrdered(), (pair) => { buffer.WriteEntityId(pair.Key); // Write: [EntityId] buffer.WriteTick(pair.Value.Tick); // Write: [Tick] buffer.WriteBool(pair.Value.IsFrozen); // Write: [IsFrozen] }); #endif }