warscript 0.0.1-dev.a12bd26 → 0.0.1-dev.aaf0a9d
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/engine/object-field.d.ts +3 -4
- package/engine/object-field.lua +3 -21
- package/package.json +1 -1
package/engine/object-field.d.ts
CHANGED
|
@@ -33,22 +33,22 @@ export type ObjectFieldValueChangeEvent<T extends ObjectField<any, any, any, any
|
|
|
33
33
|
previousValue: ValueType,
|
|
34
34
|
newValue: ValueType
|
|
35
35
|
]> : never;
|
|
36
|
-
export type ReadonlyObjectFieldType<T extends ObjectField<any, any, any, any>> = Omit<T, "setValue" | "removeValue"
|
|
36
|
+
export type ReadonlyObjectFieldType<T extends ObjectField<any, any, any, any>> = Omit<T, "setValue" | "removeValue">;
|
|
37
37
|
type ReadonlyObjectFieldConstructor<T extends ObjectField> = OmitConstructor<typeof ObjectField> & (abstract new (...args: any[]) => ReadonlyObjectFieldType<T>);
|
|
38
38
|
export declare abstract class ObjectField<ObjectDataEntryType extends ObjectDataEntry = ObjectDataEntry, InstanceType extends AnyNotNil = AnyNotNil, ValueType extends number | string | boolean = number | string | boolean, NativeFieldType = unknown> extends ObjectFieldBase<ObjectDataEntryType, InstanceType, ValueType, NativeFieldType> {
|
|
39
39
|
protected abstract readonly defaultValue: ValueType;
|
|
40
|
+
accepts(value: unknown): value is ValueType;
|
|
40
41
|
protected abstract getNativeFieldValue(instance: InstanceType): ValueType;
|
|
41
42
|
protected abstract setNativeFieldValue(instance: InstanceType, value: ValueType): boolean;
|
|
42
43
|
getValue(entry: ObjectDataEntryType | InstanceType): ValueType;
|
|
43
44
|
setValue(entry: ObjectDataEntryType | InstanceType, value: ValueType): boolean;
|
|
44
45
|
removeValue(entry: ObjectDataEntryType): boolean;
|
|
45
|
-
trySetValue(entry: ObjectDataEntryType | InstanceType, value: unknown): boolean;
|
|
46
46
|
private invokeValueChangeEvent;
|
|
47
47
|
private invokeValueChangeEventRecursive;
|
|
48
48
|
protected static getOrCreateValueChangeEvent<T extends ObjectField, R extends ReadonlyObjectFieldType<T>>(this: ReadonlyObjectFieldConstructor<T>): ObjectFieldValueChangeEvent<R>;
|
|
49
49
|
static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<ObjectField>>;
|
|
50
50
|
}
|
|
51
|
-
export type ReadonlyObjectLevelFieldType<T extends ObjectLevelField<any, any, any, any>> = Omit<T, "setValue"
|
|
51
|
+
export type ReadonlyObjectLevelFieldType<T extends ObjectLevelField<any, any, any, any>> = Omit<T, "setValue">;
|
|
52
52
|
export type ObjectLevelFieldValueChangeEvent<T extends ObjectLevelField<any, any, any, any> | ReadonlyObjectLevelFieldType<ObjectLevelField<any, any, any, any>>> = T extends ObjectLevelField<any, infer InstanceType, infer ValueType, any, any> ? DispatchingEvent<[
|
|
53
53
|
instance: InstanceType,
|
|
54
54
|
field: T,
|
|
@@ -77,7 +77,6 @@ export declare abstract class ObjectLevelField<ObjectDataEntryType extends Objec
|
|
|
77
77
|
protected abstract getLevelCount(entry: ObjectDataEntryType | InstanceType): number;
|
|
78
78
|
getValue<LevelType extends [number] | []>(entry: ObjectDataEntryType | InstanceType, ...[level]: LevelType): LevelType extends [number] ? ValueType : ValueType[];
|
|
79
79
|
setValue(entry: ObjectDataEntryType | InstanceType, ...[levelOrValue, value]: [value: ObjectDataEntryLevelFieldValueSupplier<InputValueType, ValueType>] | [level: number, value: InputValueType]): boolean;
|
|
80
|
-
trySetValue(entry: ObjectDataEntryType | InstanceType, levelOrValue: number | unknown, value?: unknown): boolean;
|
|
81
80
|
private invokeValueChangeEvent;
|
|
82
81
|
private invokeValueChangeEventRecursive;
|
|
83
82
|
protected static getOrCreateValueChangeEvent<T extends ObjectLevelField, R extends ReadonlyObjectLevelFieldType<T>>(this: ReadonlyObjectLevelFieldConstructor<T>): ObjectLevelFieldValueChangeEvent<R>;
|
package/engine/object-field.lua
CHANGED
|
@@ -71,6 +71,9 @@ ____exports.ObjectField = __TS__Class()
|
|
|
71
71
|
local ObjectField = ____exports.ObjectField
|
|
72
72
|
ObjectField.name = "ObjectField"
|
|
73
73
|
__TS__ClassExtends(ObjectField, ObjectFieldBase)
|
|
74
|
+
function ObjectField.prototype.accepts(self, value)
|
|
75
|
+
return __TS__TypeOf(value) == __TS__TypeOf(self.defaultValue)
|
|
76
|
+
end
|
|
74
77
|
function ObjectField.prototype.getValue(self, entry)
|
|
75
78
|
if __TS__InstanceOf(entry, ObjectDataEntry) then
|
|
76
79
|
local defaultValueByObjectDataEntryId = (warpack.compiletime and compiletimeDefaultValueByObjectDataEntryIdByObjectFieldId or defaultValueByObjectDataEntryIdByObjectFieldId)[self.id]
|
|
@@ -156,12 +159,6 @@ function ObjectField.prototype.removeValue(self, entry)
|
|
|
156
159
|
end
|
|
157
160
|
return false
|
|
158
161
|
end
|
|
159
|
-
function ObjectField.prototype.trySetValue(self, entry, value)
|
|
160
|
-
if __TS__TypeOf(value) ~= __TS__TypeOf(self.defaultValue) then
|
|
161
|
-
return false
|
|
162
|
-
end
|
|
163
|
-
return self:setValue(entry, value)
|
|
164
|
-
end
|
|
165
162
|
function ObjectField.prototype.invokeValueChangeEvent(self, ...)
|
|
166
163
|
self:invokeValueChangeEventRecursive(
|
|
167
164
|
getClass(self),
|
|
@@ -406,21 +403,6 @@ function ObjectLevelField.prototype.setValue(self, entry, levelOrValue, value)
|
|
|
406
403
|
end
|
|
407
404
|
return true
|
|
408
405
|
end
|
|
409
|
-
function ObjectLevelField.prototype.trySetValue(self, entry, levelOrValue, value)
|
|
410
|
-
if value ~= nil then
|
|
411
|
-
if __TS__TypeOf(value) ~= __TS__TypeOf(self.defaultValue) then
|
|
412
|
-
return false
|
|
413
|
-
end
|
|
414
|
-
if type(levelOrValue) ~= "number" then
|
|
415
|
-
return false
|
|
416
|
-
end
|
|
417
|
-
return self:setValue(entry, levelOrValue, value)
|
|
418
|
-
end
|
|
419
|
-
if __TS__TypeOf(levelOrValue) ~= __TS__TypeOf(self.defaultValue) then
|
|
420
|
-
return false
|
|
421
|
-
end
|
|
422
|
-
return self:setValue(entry, levelOrValue)
|
|
423
|
-
end
|
|
424
406
|
function ObjectLevelField.prototype.invokeValueChangeEvent(self, ...)
|
|
425
407
|
self:invokeValueChangeEventRecursive(
|
|
426
408
|
getClass(self),
|
package/package.json
CHANGED