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('');
- for (var i = 0; i < 6; i++) {
- 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 = [];
- filterTotal = i;
- 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));
- }
- 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, varSharedData, varDynamicBuffer, varEntity, varDelta)+
- '<'+generics.join(', ')+'> : 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)+');');
- console.log(' }');
- console.log(' protected override void OnUpdate() {');
- if (varDelta) {
- console.log(' float delta = Time.deltaTime;');
- }
- console.log(' ForEach(('+forEachContent(true, varSharedData, varDynamicBuffer, varEntity, structs)+') => {');
- console.log(' OnUpdate('+forEachContent(false, varSharedData, varDynamicBuffer, varEntity, structs)+
- (varDelta? ', delta': '')+');');
- console.log(' }, m_MainGroup);');
- console.log(' }');
- console.log(' protected abstract void OnUpdate('+forEachContent(true, varSharedData, varDynamicBuffer, varEntity, structs)+
- (varDelta? ', float delta': '')+');');
- console.log('}');
- }
- }
- }
- }
- }
- function getName(filterTotal, varSharedData, varDynamicBuffer, varEntity, varDelta) {
- return (filterTotal > 0? 'Filter'+filterTotal: '')+
- (varEntity?'Entity': '')+(varSharedData?'Shared': '')+(varDynamicBuffer?'Buffer': '')+(varDelta?'Delta': '')
- }
- function getGroupTypes(generics) {
- return 'typeof('+ generics.join('), typeof(')+')';
- }
- 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