Add Jsonable LightSource type param to Hollywoo

This commit is contained in:
2023-03-29 06:33:32 -06:00
parent 20e49d9569
commit da63f5c2ff
6 changed files with 10 additions and 7 deletions

View File

@@ -3,6 +3,7 @@ package hollywoo;
import hollywoo.Scene;
import hollywoo.Movie;
import haxe.ds.Option;
import kiss_tools.JsonMap;
enum Appearance {
FirstAppearance;
@@ -29,8 +30,8 @@ typedef AutoZConfig = {
frontLayer:Int
};
interface Director<Set:Cloneable<Set>, ScreenPosition, Actor, Sound, Song, Prop, VoiceTrack, Camera> {
var movie(default, default):Movie<Set, ScreenPosition, Actor, Sound, Song, Prop, VoiceTrack, Camera>;
interface Director<Set:Cloneable<Set>, ScreenPosition, Actor, Sound, Song, Prop, VoiceTrack, Camera, LightSource:Jsonable<LightSource>> {
var movie(default, default):Movie<Set, ScreenPosition, Actor, Sound, Song, Prop, VoiceTrack, Camera, LightSource>;
function autoZConfig():Option<AutoZConfig>;
function showSet(set:Set, time:SceneTime, perspective:ScenePerspective, appearance:Appearance, camera:Camera, cc:Continuation):Void;
function hideSet(set:Set, camera: Camera, cc:Continuation):Void;

View File

@@ -11,6 +11,8 @@ import hollywoo.Director;
import haxe.Json;
import uuid.Uuid;
import haxe.ds.Option;
import kiss_tools.JsonMap;
import kiss_tools.JsonableArray;
using kiss.FuzzyMapTools;
@@ -42,4 +44,4 @@ enum CreditsLine {
* Model/controller of a Hollywoo film, and main execution script
*/
@:build(kiss.Kiss.build())
class Movie<Set:Cloneable<Set>, ScreenPosition, Actor, Sound, Song, Prop, VoiceTrack, Camera> extends AsyncEmbeddedScript {}
class Movie<Set:Cloneable<Set>, ScreenPosition, Actor, Sound, Song, Prop, VoiceTrack, Camera, LightSource:Jsonable<LightSource>> extends AsyncEmbeddedScript {}

View File

@@ -141,7 +141,7 @@
(defNew
[
// "View" in the Model-View-Controller architecture:
&prop :Director<Set,ScreenPosition,Actor,Sound,Song,Prop,VoiceTrack,Camera> director
&prop :Director<Set,ScreenPosition,Actor,Sound,Song,Prop,VoiceTrack,Camera,LightSource> director
&opt :String voiceLinesJson
&opt :String positionsJson
]