new effect plasma (#792)

Signed-off-by: Paulchen-Panther <Paulchen-Panter@protonmail.com>
This commit is contained in:
Paulchen Panther 2020-05-12 19:52:46 +02:00 committed by GitHub
parent 510bb903ae
commit 9e149308f4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 80 additions and 1 deletions

View File

@ -808,6 +808,8 @@
"edt_conf_net_localAdminAuth_expl": "", "edt_conf_net_localAdminAuth_expl": "",
"edt_eff_collision_header": "", "edt_eff_collision_header": "",
"edt_eff_collision_header_desc": "", "edt_eff_collision_header_desc": "",
"edt_eff_plasma_header": "",
"edt_eff_plasma_header_desc": "",
"edt_eff_explodeRadius": "", "edt_eff_explodeRadius": "",
"edt_dev_spec_printTimeStamp_title": "", "edt_dev_spec_printTimeStamp_title": "",
"edt_eff_ledtest_header": "", "edt_eff_ledtest_header": "",

View File

@ -710,7 +710,9 @@
"edt_eff_flag_header_desc": "Verpasse deinen LEDs die Farben deines Landes. Du kannst mehr als eine Flagge auswählen, je nach Intervall werden diese dann abwechselnd angezeigt.", "edt_eff_flag_header_desc": "Verpasse deinen LEDs die Farben deines Landes. Du kannst mehr als eine Flagge auswählen, je nach Intervall werden diese dann abwechselnd angezeigt.",
"edt_eff_collision_header": "Farbkollision", "edt_eff_collision_header": "Farbkollision",
"edt_eff_collision_header_desc": "Zwei Farbprojektile werden von zufälligen Positionen gesendet und kollidieren miteinander", "edt_eff_collision_header_desc": "Zwei Farbprojektile werden von zufälligen Positionen gesendet und kollidieren miteinander",
"edt_eff_explodeRadius": "Detonationsreichweite ", "edt_eff_plasma_header": "Plasma",
"edt_eff_plasma_header_desc": "Farbverzerrungen in verschiedenen Richtungen",
"edt_eff_explodeRadius": "Detonationsreichweite",
"edt_eff_enum_all": "Alle", "edt_eff_enum_all": "Alle",
"edt_eff_enum_all-together": "Alle zusammen", "edt_eff_enum_all-together": "Alle zusammen",
"edt_eff_enum_list": "LED Liste", "edt_eff_enum_list": "LED Liste",

View File

@ -709,6 +709,8 @@
"edt_eff_flag_header_desc" : "Let your leds shine bright in the colours of your country. You can select more than one flag and they will change based on the interval time.", "edt_eff_flag_header_desc" : "Let your leds shine bright in the colours of your country. You can select more than one flag and they will change based on the interval time.",
"edt_eff_collision_header": "colour collision", "edt_eff_collision_header": "colour collision",
"edt_eff_collision_header_desc": "Two colour projectiles are sent from random positions and collide with each other", "edt_eff_collision_header_desc": "Two colour projectiles are sent from random positions and collide with each other",
"edt_eff_plasma_header": "Plasma",
"edt_eff_plasma_header_desc": "Color distortion in different directions",
"edt_eff_explodeRadius": "Detonation Range ", "edt_eff_explodeRadius": "Detonation Range ",
"edt_eff_enum_all" : "All", "edt_eff_enum_all" : "All",
"edt_eff_enum_all-together" : "All together", "edt_eff_enum_all-together" : "All together",

View File

@ -808,6 +808,8 @@
"edt_conf_net_localAdminAuth_expl": "Cuando está habilitado, el acceso de administración desde tu red doméstica necesita una contraseña.", "edt_conf_net_localAdminAuth_expl": "Cuando está habilitado, el acceso de administración desde tu red doméstica necesita una contraseña.",
"edt_eff_collision_header": "colisión de colores", "edt_eff_collision_header": "colisión de colores",
"edt_eff_collision_header_desc": "Dos proyectiles de color se envían desde posiciones aleatorias y chocan entre sí", "edt_eff_collision_header_desc": "Dos proyectiles de color se envían desde posiciones aleatorias y chocan entre sí",
"edt_eff_plasma_header": "",
"edt_eff_plasma_header_desc": "",
"edt_eff_explodeRadius": "Rango de detonación", "edt_eff_explodeRadius": "Rango de detonación",
"edt_dev_spec_printTimeStamp_title": "Añadir marca de tiempo", "edt_dev_spec_printTimeStamp_title": "Añadir marca de tiempo",
"edt_eff_ledtest_header": "Prueba de Led", "edt_eff_ledtest_header": "Prueba de Led",

View File

@ -808,6 +808,8 @@
"edt_conf_net_localAdminAuth_expl": "Quando abilitato, l'accesso da amministratore dal tuo network domestico necessita di password", "edt_conf_net_localAdminAuth_expl": "Quando abilitato, l'accesso da amministratore dal tuo network domestico necessita di password",
"edt_eff_collision_header": "collisione colore", "edt_eff_collision_header": "collisione colore",
"edt_eff_collision_header_desc": "Due proiettili colorati partono da due posizioni casuali e collidono tra loro", "edt_eff_collision_header_desc": "Due proiettili colorati partono da due posizioni casuali e collidono tra loro",
"edt_eff_plasma_header": "",
"edt_eff_plasma_header_desc": "",
"edt_eff_explodeRadius": "Raggio di detonazione ", "edt_eff_explodeRadius": "Raggio di detonazione ",
"edt_dev_spec_printTimeStamp_title": "Aggiungi timestamp", "edt_dev_spec_printTimeStamp_title": "Aggiungi timestamp",
"edt_eff_ledtest_header": "", "edt_eff_ledtest_header": "",

View File

@ -808,6 +808,8 @@
"edt_conf_net_localAdminAuth_expl": "", "edt_conf_net_localAdminAuth_expl": "",
"edt_eff_collision_header": "", "edt_eff_collision_header": "",
"edt_eff_collision_header_desc": "", "edt_eff_collision_header_desc": "",
"edt_eff_plasma_header": "",
"edt_eff_plasma_header_desc": "",
"edt_eff_explodeRadius": "", "edt_eff_explodeRadius": "",
"edt_dev_spec_printTimeStamp_title": "", "edt_dev_spec_printTimeStamp_title": "",
"edt_eff_ledtest_header": "", "edt_eff_ledtest_header": "",

View File

@ -808,6 +808,8 @@
"edt_conf_net_localAdminAuth_expl": "", "edt_conf_net_localAdminAuth_expl": "",
"edt_eff_collision_header": "", "edt_eff_collision_header": "",
"edt_eff_collision_header_desc": "", "edt_eff_collision_header_desc": "",
"edt_eff_plasma_header": "",
"edt_eff_plasma_header_desc": "",
"edt_eff_explodeRadius": "", "edt_eff_explodeRadius": "",
"edt_dev_spec_printTimeStamp_title": "", "edt_dev_spec_printTimeStamp_title": "",
"edt_eff_ledtest_header": "", "edt_eff_ledtest_header": "",

View File

@ -808,6 +808,8 @@
"edt_conf_net_localAdminAuth_expl": "", "edt_conf_net_localAdminAuth_expl": "",
"edt_eff_collision_header": "", "edt_eff_collision_header": "",
"edt_eff_collision_header_desc": "", "edt_eff_collision_header_desc": "",
"edt_eff_plasma_header": "",
"edt_eff_plasma_header_desc": "",
"edt_eff_explodeRadius": "", "edt_eff_explodeRadius": "",
"edt_dev_spec_printTimeStamp_title": "", "edt_dev_spec_printTimeStamp_title": "",
"edt_eff_ledtest_header": "", "edt_eff_ledtest_header": "",

View File

@ -808,6 +808,8 @@
"edt_conf_net_localAdminAuth_expl": "När aktiverad, behövs ett lösenord för administrering i nätverket.", "edt_conf_net_localAdminAuth_expl": "När aktiverad, behövs ett lösenord för administrering i nätverket.",
"edt_eff_collision_header": "färgkollision", "edt_eff_collision_header": "färgkollision",
"edt_eff_collision_header_desc": "Två färgprojektiler skickas från slumpmässiga positioner och kolliderar med varandra", "edt_eff_collision_header_desc": "Två färgprojektiler skickas från slumpmässiga positioner och kolliderar med varandra",
"edt_eff_plasma_header": "",
"edt_eff_plasma_header_desc": "",
"edt_eff_explodeRadius": "Detonationsområde", "edt_eff_explodeRadius": "Detonationsområde",
"edt_dev_spec_printTimeStamp_title": "Lägg till tidsstämpel", "edt_dev_spec_printTimeStamp_title": "Lägg till tidsstämpel",
"edt_eff_ledtest_header": "LED-test", "edt_eff_ledtest_header": "LED-test",

8
effects/plasma.json Normal file
View File

@ -0,0 +1,8 @@
{
"name" : "Plasma",
"script" : "plasma.py",
"args" :
{
"sleepTime" : 0.20
}
}

35
effects/plasma.py Normal file
View File

@ -0,0 +1,35 @@
import hyperion, time, colorsys, math
hyperion.imageMinSize(64, 64)
width = hyperion.imageWidth()
height = hyperion.imageHeight()
sleepTime = float(hyperion.args.get('sleepTime', 0.2))
def mapto(x, in_min, in_max, out_min, out_max):
return float((x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min)
pal = []
for h in range(256):
r, g, b = colorsys.hsv_to_rgb(mapto(h, 0.0, 255.0, 0.0, 1.0), 1.0, 1.0)
pal.append( bytearray( (int(r*255), int(g*255), int(b*255)) ) )
plasma = [[]]
for x in range(width):
plasma.append([])
for y in range(height):
color = int(128.0 + (128.0 * math.sin(x / 16.0)) + \
128.0 + (128.0 * math.sin(y / 8.0)) + \
128.0 + (128.0 * math.sin((x+y)) / 16.0) + \
128.0 + (128.0 * math.sin(math.sqrt(x**2.0 + y**2.0) / 8.0))) / 4
plasma[x].append(color)
while not hyperion.abort():
ledData = bytearray()
mod = time.clock() * 100
for x in range(height):
for y in range(width):
ledData += pal[int((plasma[y][x] + mod) % 256)]
hyperion.setImage(width,height,ledData)
time.sleep(sleepTime)

View File

@ -0,0 +1,18 @@
{
"type":"object",
"script" : "plasma.py",
"title": "edt_eff_plasma_header",
"required": true,
"properties": {
"sleepTime": {
"type": "number",
"title":"edt_eff_sleeptime",
"default": 0.20,
"minimum" : 0.01,
"step": 0.01,
"append" : "edt_append_s",
"propertyOrder" : 1
}
},
"additionalProperties": false
}