I have a big time consuming problem. I have had this project on the back burner for a few yeas and figured I should dip my toes back into it and ask some questions. Working on a console for my game and have run into this issue. At the moment the main part of this script is over 9000 lines dues to this problem.
I am creating internal static classes that end up being very long. I need a way to condense this code to reduce to workload of hardcoding the rest of these chunks.
How can i pass the internal static name when Set3DTextProperties() is called? the internal static class is posted below this first chunk of code.
I need threedtext.name, threedtext.vector3 ect to change to whatever.name, whatever.vector3
I changed a few values as a example.
This way I can use a universal bit of code to pass a string and have the matching internal static class link up properly.
I have over 50 of these hard coded currently and have another 30 to go and would like to save some time.
public void Set3DTextProperties (string whatever)
{
newpropertyelement.name = threedtext.name;
newpropertyelement.vector3 = threedtext.vector3;
newpropertyelement.v3rotation = whatever.v3rotation;
newpropertyelement.v3scale = whatever.v3scale;
newpropertyelement.text = whatever.text;
newpropertyelement.font = whatever.font;
newpropertyelement.fontsize = whatever.fontsize;
newpropertyelement.ecfilelocation = whatever.ecfilelocation;
newpropertyelement.texturename = whatever.texturename;
newpropertyelement.texturelocation = whatever.texturelocation;
newpropertyelement.audioname = threedtext.audioname;
newpropertyelement.audiolocation = threedtext.audiolocation;
newpropertyelement.spritename = threedtext.spritename;
newpropertyelement.spritelocation = threedtext.spritelocation;
newpropertyelement.radius = threedtext.radius;
newpropertyelement.ecvector2 = threedtext.ecvector2;
newpropertyelement.v2scale = threedtext.v2scale;
newpropertyelement.offsetX = threedtext.offsetX;
newpropertyelement.offsetY = threedtext.offsetY;
newpropertyelement.offsetZ = threedtext.offsetZ;
newpropertyelement.depth = threedtext.depth;
newpropertyelement.terrainscale = threedtext.terrainscale;
newpropertyelement.shadername = threedtext.shadername;
newpropertyelement.shaderdropdown = threedtext.shaderdropdown;
newpropertyelement.pixelper = threedtext.pixelper;
newpropertyelement.cellsize = threedtext.cellsize;
newpropertyelement.cellgap = threedtext.cellgap;
newpropertyelement.cellswizzle = threedtext.cellswizzle;
newpropertyelement.cliplocation = threedtext.cliplocation;
newpropertyelement.windmode = threedtext.windmode;
newpropertyelement.windmain = threedtext.windmain;
newpropertyelement.pulsefreq = threedtext.pulsefreq;
newpropertyelement.pulsemag = threedtext.pulsemag;
newpropertyelement.pulseturb = threedtext.pulseturb;
newpropertyelement.fromraycast = threedtext.fromraycast;
newpropertyelement.toraycast = threedtext.toraycast;
newpropertyelement.width = threedtext.width;
newpropertyelement.height = threedtext.height;
newpropertyelement.minwidth = threedtext.minwidth;
newpropertyelement.minheight = threedtext.minheight;
newpropertyelement.maxwidth = threedtext.maxwidth;
newpropertyelement.maxheight = threedtext.maxheight;
newpropertyelement.padding = threedtext.padding;
newpropertyelement.paddingx = threedtext.paddingx;
newpropertyelement.paddingy = threedtext.paddingy;
newpropertyelement.paddingz = threedtext.paddingz;
newpropertyelement.rgbred = threedtext.rgbred;
newpropertyelement.rgbgreen = threedtext.rgbgreen;
newpropertyelement.rgbblue = threedtext.rgbblue;
newpropertyelement.ecchildname = threedtext.ecchildname;
newpropertyelement.ecchildindex = threedtext.ecchildindex;
newpropertyelement.parentthisobject = threedtext.parentthisobject;
newpropertyelement.ecparentindex = threedtext.ecparentindex;
newpropertyelement.ecdensity = threedtext.ecdensity;
newpropertyelement.ecintensity = threedtext.ecintensity;
newpropertyelement.ecsaturation = threedtext.ecsaturation;
newpropertyelement.maxdistance = threedtext.maxdistance;
newpropertyelement.mindistance = threedtext.mindistance;
newpropertyelement.reverbpreset = threedtext.reverbpreset;
newpropertyelement.room = threedtext.room;
newpropertyelement.roomhf = threedtext.roomhf;
newpropertyelement.roomlf = threedtext.roomlf;
newpropertyelement.decaytime = threedtext.decaytime;
newpropertyelement.decayhfratio = threedtext.decayhfratio;
newpropertyelement.reverbreflections = threedtext.reverbreflections;
newpropertyelement.reverb = threedtext.reverb;
newpropertyelement.reverbdelay = threedtext.reverbdelay;
newpropertyelement.hfreference = threedtext.hfreference;
newpropertyelement.lfreference = threedtext.lfreference;
newpropertyelement.diffusion = threedtext.diffusion;
newpropertyelement.bgrgbred = threedtext.bgrgbred;
newpropertyelement.bgrgbgreen = threedtext.bgrgbgreen;
newpropertyelement.bgrgbblue = threedtext.bgrgbblue;
newpropertyelement.density = threedtext.density;
newpropertyelement.clearflags = threedtext.clearflags;
newpropertyelement.background = threedtext.background;
newpropertyelement.cullingmask = threedtext.cullingmask;
newpropertyelement.projection = threedtext.projection;
newpropertyelement.fieldofview = threedtext.fieldofview;
newpropertyelement.nearclipping = threedtext.nearclipping;
newpropertyelement.farclipping = threedtext.farclipping;
newpropertyelement.viewportrectx = threedtext.viewportrectx;
newpropertyelement.viewportrecty = threedtext.viewportrecty;
newpropertyelement.viewportrectw = threedtext.viewportrectw;
newpropertyelement.viewportrecth = threedtext.viewportrecth;
newpropertyelement.renderingpath = threedtext.renderingpath;
newpropertyelement.targettexture = threedtext.targettexture;
newpropertyelement.ecocclusioncolling = threedtext.ecocclusioncolling;
newpropertyelement.ecallowhdr = threedtext.ecallowhdr;
newpropertyelement.ecallowmsaa = threedtext.ecallowmsaa;
newpropertyelement.ecallowdynamicres = threedtext.ecallowdynamicres;
newpropertyelement.targetdisply = threedtext.targetdisply;
//Directional Light
newpropertyelement.indirectmultiplier = threedtext.indirectmultiplier;
newpropertyelement.lightmode = threedtext.lightmode;
newpropertyelement.shadowtype = threedtext.shadowtype;
newpropertyelement.eccookie = threedtext.eccookie;
newpropertyelement.eccookiesize = threedtext.eccookiesize;
newpropertyelement.ecshadowtype = threedtext.ecshadowtype;
newpropertyelement.drawhalo = threedtext.drawhalo;
newpropertyelement.eclightflare = threedtext.eclightflare;
newpropertyelement.lightrendermode = threedtext.lightrendermode;
newpropertyelement.showwireframe = threedtext.showwireframe;
newpropertyelement.probeposx = threedtext.probeposx;
newpropertyelement.probeposy = threedtext.probeposy;
newpropertyelement.probeposz = threedtext.probeposy;
newpropertyelement.addprobebtn = threedtext.probeposz;
newpropertyelement.deleteprobebtn = threedtext.deleteprobebtn;
newpropertyelement.selectallprobesbtn = threedtext.selectallprobesbtn;
newpropertyelement.duplicateprobesbtn = threedtext.duplicateprobesbtn;
//Line Effect
newpropertyelement.eccastshadows = threedtext.eccastshadows;
newpropertyelement.ecrecieveshadows = threedtext.ecrecieveshadows;
newpropertyelement.ecdynocc = threedtext.ecdynocc;
newpropertyelement.ecmotionvectors = threedtext.ecmotionvectors;
newpropertyelement.eclinepositions = threedtext.eclinepositions;
newpropertyelement.ecuseworldspace = threedtext.ecuseworldspace;
newpropertyelement.eclineloop = threedtext.eclineloop;
newpropertyelement.eccornervertices = threedtext.eccornervertices;
newpropertyelement.ecendcapvertices = threedtext.ecendcapvertices;
newpropertyelement.ecalignment = threedtext.ecalignment;
newpropertyelement.ectexturemode = threedtext.ectexturemode;
newpropertyelement.ecgld = threedtext.ecgld;
newpropertyelement.ecsortinglayer = threedtext.ecsortinglayer;
newpropertyelement.ecorderinlayer = threedtext.ecorderinlayer;
newpropertyelement.eclightprobes = threedtext.eclightprobes;
newpropertyelement.ecreflectionprobes = threedtext.ecreflectionprobes;
newpropertyelement.ecmaterialname = threedtext.ecmaterialname;
//Particle System
newpropertyelement.ecpartsysemission = threedtext.ecpartsysemission;
newpropertyelement.ecpartsysshape = threedtext.ecpartsysshape;
newpropertyelement.ecpartsysvellife = threedtext.ecpartsysvellife;
newpropertyelement.ecpartsyslimitveloverlife = threedtext.ecpartsyslimitveloverlife;
newpropertyelement.ecpartsysinheritvel = threedtext.ecpartsysinheritvel;
newpropertyelement.ecpartsysforceoverlife = threedtext.ecpartsysforceoverlife;
newpropertyelement.ecpartsyscoloroverlife = threedtext.ecpartsyscoloroverlife;
newpropertyelement.ecpartsyscolorbyspeed = threedtext.ecpartsyscolorbyspeed;
newpropertyelement.ecpartsyssizebyspeed = threedtext.ecpartsyssizebyspeed;
newpropertyelement.ecpartsysrotationoverlife = threedtext.ecpartsysrotationoverlife;
newpropertyelement.ecpartsysrotationbyspeed = threedtext.ecpartsysrotationbyspeed;
newpropertyelement.ecpartsysexternalforces = threedtext.ecpartsysexternalforces;
newpropertyelement.ecpartsysnoise = threedtext.ecpartsysnoise;
newpropertyelement.ecpartsyscollision = threedtext.ecpartsyscollision;
newpropertyelement.ecpartsystriggers = threedtext.ecpartsystriggers;
newpropertyelement.ecpartsyssubemitters = threedtext.ecpartsyssubemitters;
newpropertyelement.ecpartsystexturesheetanim = threedtext.ecpartsystexturesheetanim;
newpropertyelement.ecpartsyslights = threedtext.ecpartsyslights;
newpropertyelement.ecpartsystrails = threedtext.ecpartsystrails;
newpropertyelement.ecpartsyscustomdata = threedtext.ecpartsyscustomdata;
newpropertyelement.ecpartsysrenderer = threedtext.ecpartsysrenderer;
//Primitive
newpropertyelement.ecmeshname = threedtext.ecmeshname;
newpropertyelement.ecprimitivetype = threedtext.ecprimitivetype;
newpropertyelement.eclightmapstatic = threedtext.eclightmapstatic;
newpropertyelement.ecistrigger = threedtext.ecistrigger;
newpropertyelement.eccenterx = threedtext.eccenterx;
newpropertyelement.eccentery = threedtext.eccentery;
newpropertyelement.eccenterz = threedtext.eccenterz;
//Reflection Probe
newpropertyelement.ecreflectionprobetype = threedtext.ecreflectionprobetype;
newpropertyelement.ecimportance = threedtext.ecimportance;
newpropertyelement.ecboxprojection = threedtext.ecboxprojection;
newpropertyelement.ecboxsizex = threedtext.ecboxsizex;
newpropertyelement.ecboxsizey = threedtext.ecboxsizey;
newpropertyelement.ecboxsizez = threedtext.ecboxsizez;
newpropertyelement.ecboxoffsetx = threedtext.ecboxoffsetx;
newpropertyelement.ecboxoffsety = threedtext.ecboxoffsety;
newpropertyelement.ecboxoffsetz = threedtext.ecboxoffsetz;
newpropertyelement.eccubemapres = threedtext.eccubemapres;
newpropertyelement.echdrcheck = threedtext.echdrcheck;
newpropertyelement.ecshadowdistance = threedtext.ecshadowdistance;
newpropertyelement.ecuseocclusionculling = threedtext.ecuseocclusionculling;
//SpotLight
newpropertyelement.ecrange = threedtext.ecrange;
newpropertyelement.ecspotangel = threedtext.ecspotangel;
//Sprite Mask
newpropertyelement.ecalphacutoff = threedtext.ecalphacutoff;
newpropertyelement.eccustomrange = threedtext.eccustomrange;
newpropertyelement.ecspritesortpoint = threedtext.ecspritesortpoint;
newpropertyelement.ecfrontsortlayer = threedtext.ecfrontsortlayer;
newpropertyelement.ecfrontordrinlayer = threedtext.ecfrontordrinlayer;
newpropertyelement.ecbacksortlayer = threedtext.ecbacksortlayer;
newpropertyelement.ecbackordrinlayer = threedtext.ecbackordrinlayer;
//newpropertyelement.ecspritesortpoint = threedtext.ecspritesortpoint;
//Sprite Mask
//TileMap
newpropertyelement.ecafrate = threedtext.ecafrate;
newpropertyelement.ectileanchor = threedtext.ectileanchor;
newpropertyelement.ectileorentation = threedtext.ectileorentation;
//Trail
newpropertyelement.ectrailcastshadows = threedtext.ectrailcastshadows;
newpropertyelement.ecdynamicoccludee = threedtext.ecdynamicoccludee;
newpropertyelement.eclightparamaters = threedtext.eclightparamaters;
newpropertyelement.ectrailtime = threedtext.ectrailtime;
newpropertyelement.ecautodestruct = threedtext.ecautodestruct;
newpropertyelement.ectrailemtting = threedtext.ectrailemtting;
newpropertyelement.ectrailalignment = threedtext.ectrailalignment;
newpropertyelement.ectrailtexturemode = threedtext.ectrailtexturemode;
newpropertyelement.ectraillightdata = threedtext.ectraillightdata;
//Tree
newpropertyelement.ecprototypeindex = threedtext.ecprototypeindex;
}
internal static class threedtext
{
internal static bool name = true;
internal static bool vector3 = true;
internal static bool v3rotation = true;
internal static bool v3scale = true;
internal static bool radius = false;
internal static bool text = true;
internal static bool font = true;
internal static bool fontsize = true;
internal static bool ecfilelocation = false;
internal static bool spritelocation = false;
internal static bool spritename = false;
internal static bool texturename = false;
internal static bool texturelocation = false;
internal static bool audioname = false;
internal static bool audiolocation = false;
internal static bool ecvector2 = false;
internal static bool v2scale = false;
internal static bool offsetX = false;
internal static bool offsetY = false;
internal static bool offsetZ = false;
internal static bool depth = false;
internal static bool terrainscale = false;
internal static bool shadername = false;
internal static bool shaderdropdown = false;
internal static bool pixelper = false;
internal static bool cellsize = false;
internal static bool cellgap = false;
internal static bool cellswizzle = false;
internal static bool cliplocation = false;
internal static bool windmode = false;
internal static bool windmain = false;
internal static bool pulsefreq = false;
internal static bool pulsemag = false;
internal static bool pulseturb = false;
internal static bool fromraycast = false;
internal static bool toraycast = false;
internal static bool width = false;
internal static bool height = false;
internal static bool minwidth = false;
internal static bool minheight = false;
internal static bool maxwidth = false;
internal static bool maxheight = false;
internal static bool padding = false;
internal static bool paddingx = false;
internal static bool paddingy = false;
internal static bool paddingz = false;
internal static bool alpha = false;
internal static bool rgbred = false;
internal static bool rgbgreen = false;
internal static bool rgbblue = false;
internal static bool ecchildname = false;
internal static bool ecchildindex = false;
internal static bool parentthisobject = false;
internal static bool ecparentindex = false;
internal static bool ecdensity = false;
internal static bool ecsaturation = false;
//Audio reverb zone
internal static bool maxdistance = false;
internal static bool mindistance = false;
internal static bool reverbpreset = false;
internal static bool room = false;
internal static bool roomhf = false;
internal static bool roomlf = false;
internal static bool decaytime = false;
internal static bool decayhfratio = false;
internal static bool reverbreflections = false;
internal static bool reflectionsdelay = false;
internal static bool reverb = false;
internal static bool reverbdelay = false;
internal static bool hfreference = false;
internal static bool lfreference = false;
internal static bool diffusion = false;
internal static bool bgrgbred = false;
internal static bool bgrgbgreen = false;
internal static bool bgrgbblue = false;
internal static bool density = false;
//Camera
internal static bool clearflags = false;
internal static bool background = false;
internal static bool projection = false;
internal static bool fieldofview = false;
internal static bool nearclipping = false;
internal static bool farclipping = false;
internal static bool viewportrectx = false;
internal static bool viewportrecty = false;
internal static bool viewportrectw = false;
internal static bool viewportrecth = false;
internal static bool renderingpath = false;
internal static bool targettexture = false;
internal static bool ecocclusioncolling = false;
internal static bool ecallowhdr = false;
internal static bool ecallowmsaa = false;
internal static bool ecallowdynamicres = false;
internal static bool targetdisply = false;
//Directional Light
internal static bool eccolorpanel = false;
internal static bool lightmode = false;
internal static bool indirectmultiplier = false;
internal static bool ecintensity = false;
internal static bool shadowtype = false;
internal static bool eccookie = false;
internal static bool eccookiesize = false;
internal static bool ecshadowtype = false;
internal static bool drawhalo = false;
internal static bool eclightflare = false;
internal static bool lightrendermode = false;
internal static bool cullingmask = false;
//Light Probe
internal static bool showwireframe = false;
internal static bool probeposx = false;
internal static bool probeposy = false;
internal static bool probeposz = false;
internal static bool addprobebtn = false;
internal static bool deleteprobebtn = false;
internal static bool selectallprobesbtn = false;
internal static bool duplicateprobesbtn = false;
//Line Effect
internal static bool eccastshadows = false;
internal static bool ecrecieveshadows = false;
internal static bool ecdynocc = false;
internal static bool ecmotionvectors = false;
internal static bool eclinepositions = false;
internal static bool ecuseworldspace = false;
internal static bool eclineloop = false;
internal static bool eccornervertices = false;
internal static bool ecendcapvertices = false;
internal static bool ecalignment = false;
internal static bool ectexturemode = false;
internal static bool ecgld = false;
internal static bool ecsortinglayer = false;
internal static bool ecorderinlayer = false;
internal static bool eclightprobes = false;
internal static bool ecreflectionprobes = false;
internal static bool ecmaterialname = false;
//Particle System
internal static bool ecpartsysemission = false;
internal static bool ecpartsysshape = false;
internal static bool ecpartsysvellife = false;
internal static bool ecpartsyslimitveloverlife = false;
internal static bool ecpartsysinheritvel = false;
internal static bool ecpartsysforceoverlife = false;
internal static bool ecpartsyscoloroverlife = false;
internal static bool ecpartsyscolorbyspeed = false;
internal static bool ecpartsyssizebyspeed = false;
internal static bool ecpartsysrotationoverlife = false;
internal static bool ecpartsysrotationbyspeed = false;
internal static bool ecpartsysexternalforces = false;
internal static bool ecpartsysnoise = false;
internal static bool ecpartsyscollision = false;
internal static bool ecpartsystriggers = false;
internal static bool ecpartsyssubemitters = false;
internal static bool ecpartsystexturesheetanim = false;
internal static bool ecpartsyslights = false;
internal static bool ecpartsystrails = false;
internal static bool ecpartsyscustomdata = false;
internal static bool ecpartsysrenderer = false;
//Primitive
internal static bool ecmeshname = false;
internal static bool ecprimitivetype = false;
internal static bool eclightmapstatic = false;
internal static bool ecistrigger = false;
internal static bool eccenterx = false;
internal static bool eccentery = false;
internal static bool eccenterz = false;
//Reflection Probe
internal static bool ecreflectionprobetype = false;
internal static bool ecimportance = false;
internal static bool ecboxprojection = false;
internal static bool ecboxsizex = false;
internal static bool ecboxsizey = false;
internal static bool ecboxsizez = false;
internal static bool ecboxoffsetx = false;
internal static bool ecboxoffsety = false;
internal static bool ecboxoffsetz = false;
internal static bool eccubemapres = false;
internal static bool echdrcheck = false;
internal static bool ecshadowdistance = false;
internal static bool ecuseocclusionculling = false;
//Spot Light
internal static bool ecrange = false;
internal static bool ecspotangel = false;
//Sprite
internal static bool ecflipx = false;
internal static bool ecflipy = false;
internal static bool ecdrawmode = false;
internal static bool ecmaskinteraction = false;
//Sprite Mask
internal static bool ecalphacutoff = false;
internal static bool eccustomrange = false;
internal static bool ecspritesortpoint = false;
internal static bool ecfrontsortlayer = false;
internal static bool ecfrontordrinlayer = false;
internal static bool ecbacksortlayer = false;
internal static bool ecbackordrinlayer = false;
//TileMap
internal static bool ecafrate = false;
internal static bool ectileanchor = false;
internal static bool ectileorentation = false;
internal static bool ectmdetectchunkcullingbounds = false;
//Trail
internal static bool ectrailcastshadows = false;
internal static bool ecdynamicoccludee = false;
internal static bool eclightparamaters = false;
internal static bool ectrailtime = false;
internal static bool ecautodestruct = false;
internal static bool ectrailemtting = false;
internal static bool ectrailalignment = false;
internal static bool ectrailtexturemode = false;
internal static bool ectraillightdata = false;
//Tree
internal static bool ecprototypeindex = false;
}
The screen shot shows the result of the internal static class. true and false values are used to display listview items in the properties window.