Skip to content

Commit

Permalink
Twist logic
Browse files Browse the repository at this point in the history
  • Loading branch information
rexrainbow committed Jul 12, 2023
1 parent f4e1559 commit 1b67cc6
Show file tree
Hide file tree
Showing 12 changed files with 66 additions and 385 deletions.
Original file line number Diff line number Diff line change
@@ -1,40 +1,7 @@
import HasProperty from '../../../utils/object/HasProperty.js';
import AddColorMatrixEffectPropertiesBase from './AddColorMatrixEffectPropertiesBase.js';

var AddBlackWhiteProperties = function (gameObject) {
// Don't attach properties again
if (HasProperty(gameObject, 'blackWhite') || !gameObject.preFX) {
return gameObject;
}

var blackWhite;
Object.defineProperty(gameObject, 'blackWhite', {
get: function () {
return blackWhite;
},
set: function (value) {
if (blackWhite === value) {
return;
}

blackWhite = value;

if ((blackWhite === null) || (blackWhite === false)) {
if (gameObject._blackWhiteEffect) {
gameObject.preFX.remove(gameObject._blackWhiteEffect);
gameObject._blackWhiteEffect = undefined;
}
} else {
if (!gameObject._blackWhiteEffect) {
gameObject._blackWhiteEffect = gameObject.preFX.addColorMatrix();
}
gameObject._blackWhiteEffect.blackWhite();
}

},
})

gameObject.blackWhite = null;

AddColorMatrixEffectPropertiesBase(gameObject, 'blackWhite');
return gameObject;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,40 +1,7 @@
import HasProperty from '../../../utils/object/HasProperty.js';
import AddColorMatrixEffectPropertiesBase from './AddColorMatrixEffectPropertiesBase.js';

var AddBrownProperties = function (gameObject) {
// Don't attach properties again
if (HasProperty(gameObject, 'brown') || !gameObject.preFX) {
return gameObject;
}

var brown;
Object.defineProperty(gameObject, 'brown', {
get: function () {
return brown;
},
set: function (value) {
if (brown === value) {
return;
}

brown = value;

if ((brown === null) || (brown === false)) {
if (gameObject._brownEffect) {
gameObject.preFX.remove(gameObject._brownEffect);
gameObject._brownEffect = undefined;
}
} else {
if (!gameObject._brownEffect) {
gameObject._brownEffect = gameObject.preFX.addColorMatrix();
}
gameObject._brownEffect.brown();
}

},
})

gameObject.brown = null;

AddColorMatrixEffectPropertiesBase(gameObject, 'brown');
return gameObject;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import HasProperty from '../../../utils/object/HasProperty.js';

var AddColorMatrixEffectPropertiesBase = function (gameObject, effectName) {
// Don't attach properties again
if (HasProperty(gameObject, effectName) || !gameObject.preFX) {
return gameObject;
}

var EffectInstancePropertyName = `_${effectName}Effect`;

var currentValue;
Object.defineProperty(gameObject, effectName, {
get: function () {
return currentValue;
},
set: function (value) {
if (currentValue === value) {
return;
}

currentValue = value;

if ((currentValue === null) || (currentValue === false)) {
if (gameObject[EffectInstancePropertyName]) {
gameObject.preFX.remove(gameObject[EffectInstancePropertyName]);
gameObject[EffectInstancePropertyName] = undefined;
}
} else {
if (!gameObject[EffectInstancePropertyName]) {
gameObject[EffectInstancePropertyName] = gameObject.preFX.addColorMatrix();
}
var effectInstance = gameObject[EffectInstancePropertyName];
effectInstance[effectName](value);
}

},
})

gameObject[effectName] = null;

return gameObject;
}

export default AddColorMatrixEffectPropertiesBase;
Original file line number Diff line number Diff line change
@@ -1,40 +1,7 @@
import HasProperty from '../../../utils/object/HasProperty.js';
import AddColorMatrixEffectPropertiesBase from './AddColorMatrixEffectPropertiesBase.js';

var AddDesaturateLuminanceProperties = function (gameObject) {
// Don't attach properties again
if (HasProperty(gameObject, 'desaturateLuminance') || !gameObject.preFX) {
return gameObject;
}

var desaturateLuminance;
Object.defineProperty(gameObject, 'desaturateLuminance', {
get: function () {
return desaturateLuminance;
},
set: function (value) {
if (desaturateLuminance === value) {
return;
}

desaturateLuminance = value;

if ((desaturateLuminance === null) || (desaturateLuminance === false)) {
if (gameObject._desaturateLuminanceEffect) {
gameObject.preFX.remove(gameObject._desaturateLuminanceEffect);
gameObject._desaturateLuminanceEffect = undefined;
}
} else {
if (!gameObject._desaturateLuminanceEffect) {
gameObject._desaturateLuminanceEffect = gameObject.preFX.addColorMatrix();
}
gameObject._desaturateLuminanceEffect.desaturateLuminance();
}

},
})

gameObject.desaturateLuminance = null;

AddColorMatrixEffectPropertiesBase(gameObject, 'desaturateLuminance');
return gameObject;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,40 +1,7 @@
import HasProperty from '../../../utils/object/HasProperty.js';
import AddColorMatrixEffectPropertiesBase from './AddColorMatrixEffectPropertiesBase.js';

var AddGrayscaleProperties = function (gameObject) {
// Don't attach properties again
if (HasProperty(gameObject, 'grayscale') || !gameObject.preFX) {
return gameObject;
}

var grayscale;
Object.defineProperty(gameObject, 'grayscale', {
get: function () {
return grayscale;
},
set: function (value) {
if (grayscale === value) {
return;
}

grayscale = value;

if ((grayscale === null) || (grayscale === false)) {
if (gameObject._grayscaleEffect) {
gameObject.preFX.remove(gameObject._grayscaleEffect);
gameObject._grayscaleEffect = undefined;
}
} else {
if (!gameObject._grayscaleEffect) {
gameObject._grayscaleEffect = gameObject.preFX.addColorMatrix();
}
gameObject._grayscaleEffect.grayscale(grayscale);
}

},
})

gameObject.grayscale = null;

AddColorMatrixEffectPropertiesBase(gameObject, 'grayscale');
return gameObject;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,40 +1,7 @@
import HasProperty from '../../../utils/object/HasProperty.js';
import AddColorMatrixEffectPropertiesBase from './AddColorMatrixEffectPropertiesBase.js';

var AddKodachromeProperties = function (gameObject) {
// Don't attach properties again
if (HasProperty(gameObject, 'kodachrome') || !gameObject.preFX) {
return gameObject;
}

var kodachrome;
Object.defineProperty(gameObject, 'kodachrome', {
get: function () {
return kodachrome;
},
set: function (value) {
if (kodachrome === value) {
return;
}

kodachrome = value;

if ((kodachrome === null) || (kodachrome === false)) {
if (gameObject._kodachromeEffect) {
gameObject.preFX.remove(gameObject._kodachromeEffect);
gameObject._kodachromeEffect = undefined;
}
} else {
if (!gameObject._kodachromeEffect) {
gameObject._kodachromeEffect = gameObject.preFX.addColorMatrix();
}
gameObject._kodachromeEffect.kodachrome();
}

},
})

gameObject.kodachrome = null;

AddColorMatrixEffectPropertiesBase(gameObject, 'kodachrome');
return gameObject;
}

Expand Down
37 changes: 2 additions & 35 deletions plugins/behaviors/effectproperties/colormatrix/AddLSDProperties.js
Original file line number Diff line number Diff line change
@@ -1,40 +1,7 @@
import HasProperty from '../../../utils/object/HasProperty.js';
import AddColorMatrixEffectPropertiesBase from './AddColorMatrixEffectPropertiesBase.js';

var AddLSDProperties = function (gameObject) {
// Don't attach properties again
if (HasProperty(gameObject, 'lsd') || !gameObject.preFX) {
return gameObject;
}

var lsd;
Object.defineProperty(gameObject, 'lsd', {
get: function () {
return lsd;
},
set: function (value) {
if (lsd === value) {
return;
}

lsd = value;

if ((lsd === null) || (lsd === false)) {
if (gameObject._lsdEffect) {
gameObject.preFX.remove(gameObject._lsdEffect);
gameObject._lsdEffect = undefined;
}
} else {
if (!gameObject._lsdEffect) {
gameObject._lsdEffect = gameObject.preFX.addColorMatrix();
}
gameObject._lsdEffect.lsd();
}

},
})

gameObject.lsd = null;

AddColorMatrixEffectPropertiesBase(gameObject, 'lsd');
return gameObject;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,40 +1,7 @@
import HasProperty from '../../../utils/object/HasProperty.js';
import AddColorMatrixEffectPropertiesBase from './AddColorMatrixEffectPropertiesBase.js';

var AddNegativeProperties = function (gameObject) {
// Don't attach properties again
if (HasProperty(gameObject, 'negative') || !gameObject.preFX) {
return gameObject;
}

var negative;
Object.defineProperty(gameObject, 'negative', {
get: function () {
return negative;
},
set: function (value) {
if (negative === value) {
return;
}

negative = value;

if ((negative === null) || (negative === false)) {
if (gameObject._negativeEffect) {
gameObject.preFX.remove(gameObject._negativeEffect);
gameObject._negativeEffect = undefined;
}
} else {
if (!gameObject._negativeEffect) {
gameObject._negativeEffect = gameObject.preFX.addColorMatrix();
}
gameObject._negativeEffect.negative();
}

},
})

gameObject.negative = null;

AddColorMatrixEffectPropertiesBase(gameObject, 'negative');
return gameObject;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,40 +1,7 @@
import HasProperty from '../../../utils/object/HasProperty.js';
import AddColorMatrixEffectPropertiesBase from './AddColorMatrixEffectPropertiesBase.js';

var AddPolaroidProperties = function (gameObject) {
// Don't attach properties again
if (HasProperty(gameObject, 'polaroid') || !gameObject.preFX) {
return gameObject;
}

var polaroid;
Object.defineProperty(gameObject, 'polaroid', {
get: function () {
return polaroid;
},
set: function (value) {
if (polaroid === value) {
return;
}

polaroid = value;

if ((polaroid === null) || (polaroid === false)) {
if (gameObject._polaroidEffect) {
gameObject.preFX.remove(gameObject._polaroidEffect);
gameObject._polaroidEffect = undefined;
}
} else {
if (!gameObject._polaroidEffect) {
gameObject._polaroidEffect = gameObject.preFX.addColorMatrix();
}
gameObject._polaroidEffect.polaroid();
}

},
})

gameObject.polaroid = null;

AddColorMatrixEffectPropertiesBase(gameObject, 'polaroid');
return gameObject;
}

Expand Down
Loading

0 comments on commit 1b67cc6

Please sign in to comment.