How to use the oni-save-parser.getTypeCode function in oni-save-parser

To help you get started, we’ve selected a few oni-save-parser examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github RoboPhred / oni-duplicity / src / pages / SaveEditor / components / editors / TemplateObjectEditor / derived-state.ts View on Github external
const typeCode = getTypeCode(typeInfo.info);

      if (typeCode === SerializationTypeCode.UserDefined) {
        template = oniSave.templates.find(
          x => x.name === member.type.templateName!
        );
      } else if (LIST_TYPES.indexOf(typeCode) !== -1) {
        i++;
        if (i === templatePath.length) {
          // Targeting an array but no index yet.
          break;
        }

        if (
          getTypeCode(typeInfo.subTypes![0].info) ===
          SerializationTypeCode.UserDefined
        ) {
          typeInfo = typeInfo.subTypes![0];
          template = oniSave.templates.find(
            x => x.name === typeInfo.templateName
          );
        }
      } else if (typeCode === SerializationTypeCode.Dictionary) {
        i++;
        if (i === templatePath.length) {
          // Targeting a dict but no index yet.
          break;
        }

        // Select key or value
        i++;
github RoboPhred / oni-duplicity / src / services / save-structure / structure / gameObjects / behaviors / default.ts View on Github external
if (
          getTypeCode(typeInfo.subTypes![0].info) ===
          SerializationTypeCode.UserDefined
        ) {
          const arrayTypeInfo = typeInfo.subTypes![0];
          template = templates.find(x => x.name === arrayTypeInfo.templateName);
          if (template == null) {
            // Unknown template.
            return null;
          }
        }
      } else if (code === SerializationTypeCode.Dictionary) {
        i++;
        if (
          getTypeCode(typeInfo.subTypes![1].info) ===
          SerializationTypeCode.UserDefined
        ) {
          const arrayTypeInfo = typeInfo.subTypes![1];
          template = templates.find(x => x.name === arrayTypeInfo.templateName);
          if (template == null) {
            // Unknown template.
            return null;
          }
        }
      }
    }

    return template.name;
  },
github RoboPhred / oni-duplicity / src / pages / SaveEditor / components / editors / TemplateObjectEditor / derived-state.ts View on Github external
const part = templatePath[i];

      if (template == null) {
        return null;
      }

      const member =
        template.fields.find(x => x.name === part) ||
        template.properties.find(x => x.name === part);
      if (!member) {
        return null;
      }

      typeInfo = member.type;

      const typeCode = getTypeCode(typeInfo.info);

      if (typeCode === SerializationTypeCode.UserDefined) {
        template = oniSave.templates.find(
          x => x.name === member.type.templateName!
        );
      } else if (LIST_TYPES.indexOf(typeCode) !== -1) {
        i++;
        if (i === templatePath.length) {
          // Targeting an array but no index yet.
          break;
        }

        if (
          getTypeCode(typeInfo.subTypes![0].info) ===
          SerializationTypeCode.UserDefined
        ) {
github RoboPhred / oni-duplicity / src / services / save-structure / structure / gameObjects / behaviors / default.ts View on Github external
// Chase the path up the template to see if we have entered
    //  any sub-templates.

    for (let i = 0; i < subPath.length; i++) {
      const part = subPath[i];

      const member =
        template.fields.find(x => x.name === part) ||
        template.properties.find(x => x.name === part);
      if (!member) {
        break;
      }

      const typeInfo: TypeInfo = member.type;
      const code = getTypeCode(typeInfo.info);

      if (code === SerializationTypeCode.UserDefined) {
        template = templates.find(x => x.name === typeInfo.templateName);
        if (template == null) {
          // Unknown template.
          return null;
        }
      } else if (LIST_TYPES.indexOf(code) !== -1) {
        i++;

        if (
          getTypeCode(typeInfo.subTypes![0].info) ===
          SerializationTypeCode.UserDefined
        ) {
          const arrayTypeInfo = typeInfo.subTypes![0];
          template = templates.find(x => x.name === arrayTypeInfo.templateName);
github RoboPhred / oni-duplicity / src / pages / SaveEditor / components / editors / TemplateObjectEditor / derived-state.ts View on Github external
const template = createSelector(oniSave, typeInfo, (oniSave, typeInfo) => {
  if (!oniSave || !typeInfo) {
    return null;
  }

  const typeCode = getTypeCode(typeInfo.info);
  if (typeCode !== SerializationTypeCode.UserDefined) {
    return null;
  }

  let template = oniSave.templates.find(x => x.name === typeInfo.templateName);
  return template;
});
github RoboPhred / oni-duplicity / src / pages / SaveEditor / components / fields / from-typeinfo.tsx View on Github external
export default function getFieldElementClass(
  typeInfo: TypeInfo,
  short?: boolean
): React.ComponentType {
  const code = getTypeCode(typeInfo.info);
  switch (code) {
    case SerializationTypeCode.Array:
      return (props: EditorFieldProps) =>
        short ? (
          
            [Edit Array]
          
        ) : (
          
        );
    case SerializationTypeCode.Boolean:
      return (props: EditorFieldProps) => ;
    case SerializationTypeCode.Byte:
      return (props: EditorFieldProps) => (
        
      );