{"$id":"blockception.minecraft.resource.particle","examples":[{"format_version":"1.10.0","particle_effect":{"description":{"identifier":"blockception:particle","basic_render_parameters":{"material":"particles_alpha","texture":"textures/particle/particle"}},"curves":{},"components":{}}}],"allOf":[{"if":{"properties":{"format_version":{"type":"string","const":"1.8.0"}}},"then":{"$ref":"#/definitions/A"}},{"if":{"properties":{"format_version":{"type":"string","const":"1.10.0"}}},"then":{"$ref":"#/definitions/C"}},{"properties":{"format_version":{"$ref":"#/definitions/DE"}}}],"definitions":{"B":{"type":"string","title":"Particle Identifier 1.8.0","description":"The minecraft particle identifier","pattern":"^[0-9a-zA-Z:_\\.\\-]+$"},"A":{"type":"object","additionalProperties":false,"description":"A particle definition file","title":"Particle 1.8.0","properties":{"format_version":{"type":"string","const":"1.8.0","description":"A version that tells minecraft what type of data format can be expected when reading this file.","title":"Format Version"},"particle_effect":{"type":"object","additionalProperties":false,"properties":{"description":{"additionalProperties":false,"type":"object","properties":{"identifier":{"type":"string","description":"TODO description: identifier","title":"Identifier","$ref":"#/definitions/B"}},"description":"TODO description: description","title":"Description"},"components":{"additionalProperties":false,"type":"object","description":"TODO description: components","title":"Components"}},"description":"TODO description: particle effect","title":"Particle Effect"}}},"D":{"title":"Molang Number","description":"The minecraft molang definition that results in a float","anyOf":[{"type":"string","minLength":0,"format":"molang"},{"type":"number"}]},"F":{"type":"string","title":"Molang / String","description":"Molang definition","format":"molang"},"E":{"description":"This component allows the emitter to run some Molang at creation, primarily to populate any MoLang variables that get used later.","type":"object","title":"Emitter Initialization Component For 1.10.0","additionalProperties":false,"properties":{"creation_expression":{"$ref":"#/definitions/F","description":"This is run once at emitter startup.","title":"Creation Expression"},"per_update_expression":{"$ref":"#/definitions/F","description":"This is run once per emitter update.","title":"Per Update Expression"}}},"G":{"type":"object","title":"Emitter Lifetime Events Component For 1.10.0","description":"TODO","additionalProperties":false,"properties":{"creation_event":{"title":"Creation Event","description":"Fires when the emitter is created","oneOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]},"expiration_event":{"title":"Expiration Event","description":"Fires when the emitter expires (does not wait for particles to expire too)","oneOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]},"timeline":{"title":"Timeline","type":"object","description":"A series of times, e.g. 0.0 or 1.0, that trigger the event, these get fired on every loop the emitter goes through, \"time\" is the time, e.g. one line might be: \"0.4\": \"event\"","propertyNames":{"pattern":"^[\\d\\.]+$"},"additionalProperties":{"title":"Timeline Object","description":"A single point in time that executes commands/molang/events","oneOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]}},"travel_distance_events":{"title":"Travel Distance Events","description":"A series of distances, e.g. 0.0 or 1.0, that trigger the event these get fired when the emitter has moved by the specified input distance, e.g. one line might be: \"0.4\": \"event\"","propertyNames":{"pattern":"^[\\d\\.]+$"}},"looping_travel_distance_events":{"title":"Looping Travel Distance Events","description":"A series of events that occur at set intervals these get fired every time the emitter has moved the specified input distance from the last time it was fired.","type":"array","items":{"type":"object","title":"Distance Event","additionalProperties":false,"properties":{"distance":{"t