Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // New realisation of Get/SetProperties mechanic for sum example sp air object
- // BEFORE
- class SPAO_Relay isclass SPAirObject
- {
- public float FeedDiam = 16.0f;
- public float DumpDiam = 8.0f;
- public float Sensivity = 5.0f;
- public float MinOpenDelta = 2.0f;
- public float MaxOpenDelta = 30.0f;
- public void Init(SPAirScheme scheme)
- {
- // irrelevant
- }
- public Soup GetProperties()
- {
- Soup sp = inherited();
- sp.SetNamedTag("feed-diam", FeedDiam);
- sp.SetNamedTag("dump-diam", DumpDiam);
- sp.SetNamedTag("sensivity", Sensivity);
- sp.SetNamedTag("min-open-delta", MinOpenDelta);
- sp.SetNamedTag("max-open-delta", MaxOpenDelta);
- return sp;
- }
- public void SetProperties(Soup sp)
- {
- inherited(sp);
- FeedDiam = SPHelper.GetFloat(sp, "feed-diam", FeedDiam);
- DumpDiam = SPHelper.GetFloat(sp, "dump-diam", DumpDiam);
- Sensivity = SPHelper.GetFloat(sp, "sensivity", Sensivity);
- MinOpenDelta = SPHelper.GetFloat(sp, "min-open-delta", MinOpenDelta);
- MaxOpenDelta = SPHelper.GetFloat(sp, "max-open-delta", MaxOpenDelta);
- }
- public void Update(float dt)
- {
- // irrelevant
- }
- };
- // AFTER
- class SPAO_Relay isclass SPAirObject
- {
- public float FeedDiam = 16.0f;
- public float DumpDiam = 8.0f;
- public float Sensivity = 5.0f;
- public float MinOpenDelta = 2.0f;
- public float MaxOpenDelta = 30.0f;
- public void Init(SPAirScheme scheme)
- {
- // irrelevant
- }
- public void Serialize(USerializationInfo si)
- {
- inherited(si);
- FeedDiam = si.Post("feed-diam", FeedDiam );
- DumpDiam = si.Post("dump-diam", DumpDiam );
- Sensivity = si.Post("sensivity", Sensivity );
- MinOpenDelta = si.Post("min-open-delta", MinOpenDelta);
- MaxOpenDelta = si.Post("max-open-delta", MaxOpenDelta);
- }
- public void Update(float dt)
- {
- // irrelevant
- }
- };
- // BECAUSE WE HAVE
- class USerializationInfo
- {
- public Soup Data;
- public T Post(string name, T value);
- };
- class USerializer
- {
- public T Post(string name, T value)
- {
- Data.SetNamedTag(name, value);
- return value;
- }
- };
- class UDeserializer
- {
- public T Post(string name, T value)
- {
- T storedValue = Data.GetNamedTagAsT(name, value);
- return storedValue;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement