Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var filterTotal = 5;
- var varTotal = 5;
- var varSharedData = true;
- var varDynamicBuffer = true;
- var varEntity = true;
- var varDelta = true;
- console.log('using Unity.Entities;');
- console.log('using UnityEngine;');
- console.log('');
- console.log('public abstract class QuickSystemBase : ComponentSystem {');
- console.log(' public ComponentGroup m_MainGroup;');
- console.log('}');
- console.log('');
- console.log('public abstract class QuickSystemDeltaBase : QuickSystemBase {');
- console.log(' public float delta;');
- console.log('}');
- console.log('');
- for (var i = 0; i < 6; i++) {
- for (var e = 0; e < 6; e++) {
- for (var k = 0; k < 3; k++) {
- for (var m = 0; m < 2; m++) {
- for (var l = 0; l < 2; l++) {
- for (var j = 1; j < 6; j++) {
- var generics = [];
- var structs = [];
- var eclusions = [];
- filterTotal = i;
- exclusionTotal = e;
- varTotal = j;
- varSharedData = k === 1;
- varDynamicBuffer = k === 2;
- varEntity = l === 1;
- varDelta = m === 1;
- for (var filter = 0; filter < filterTotal; filter++) {
- generics.push("F"+(filter+1));
- }
- for (var ex = 0; ex < exclusionTotal; ex++) {
- eclusions.push("E"+(ex+1));
- generics.push("E"+(ex+1));
- }
- varSharedData ? generics.push("S"): 0;
- varDynamicBuffer ? generics.push("D"): 0;
- for (var total = 0; total < varTotal; total++) {
- generics.push("T"+(total+1));
- structs.push("T"+(total+1));
- }
- console.log('public abstract class QuickSystem'+
- getName(filterTotal, exclusionTotal, varSharedData, varDynamicBuffer, varEntity, varDelta)+
- '<'+generics.join(', ')+'> : ' +(varDelta ? 'QuickSystemDeltaBase': 'QuickSystemBase') +
- (varSharedData ? ' where S : struct, ISharedComponentData': '')+
- (varDynamicBuffer ? ' where D : struct, IBufferElementData': '')+
- ' where '+ structs.join(' : struct, IComponentData where ') + ': struct, IComponentData {'
- );
- console.log(' protected override void OnCreateManager() {');
- console.log(' m_MainGroup = GetComponentGroup('+getGroupTypes(generics, eclusions)+');');
- if (varDelta) {
- console.log(' delta = Time.deltaTime;');
- }
- console.log(' }');
- console.log(' protected override void OnUpdate() {');
- console.log(' ForEach(('+forEachContent(true, varSharedData, varDynamicBuffer, varEntity, structs)+') => {');
- console.log(' OnUpdate('+forEachContent(false, varSharedData, varDynamicBuffer, varEntity, structs)+');');
- console.log(' }, m_MainGroup);');
- console.log(' }');
- console.log(' protected abstract void OnUpdate('+forEachContent(true, varSharedData, varDynamicBuffer, varEntity, structs)+');');
- console.log('}');
- }
- }
- }
- }}
- }
- function getName(filterTotal, exclusionTotal, varSharedData, varDynamicBuffer, varEntity, varDelta) {
- return (filterTotal > 0? 'Filter'+filterTotal: '')+(exclusionTotal > 0? 'Exclusion'+exclusionTotal: '')+
- (varEntity?'Entity': '')+(varSharedData?'Shared': '')+(varDynamicBuffer?'Buffer': '')+(varDelta?'Delta': '')
- }
- function getGroupTypes(generics, eclusions) {
- return 'typeof('+ generics.join('), typeof(')+')'+ (eclusions.length>0?', ComponentType.Subtractive<'+eclusions.join('>(), ComponentType.Subtractive<')+'>()':'');
- }
- function forEachContent(hasType, varSharedData, varDynamicBuffer, varEntity, structs) {
- return (varEntity?(hasType?'Entity': '')+' e, ': '')+(varSharedData?(hasType?'S': '')+' s, ': '')+
- (varDynamicBuffer?(hasType?'DynamicBuffer<D>': '')+' d, ': '') +
- structsAsTypes(hasType, structs);
- }
- function structsAsTypes(hasType, structs) {
- var ret = '';
- for (var a = 0; a < structs.length; a++) {
- ret += 'ref '+(hasType?structs[a]: '') + ' ' + structs[a].toLowerCase() + (a < structs.length-1?', ': '');
- }
- return ret;
- }
Advertisement
Add Comment
Please, Sign In to add comment