@@ -117,3 +117,60 @@ def export(self, exporter, bo, so):
117117 @property
118118 def requires_actor (self ):
119119 return True
120+
121+
122+ yeeshapage_pfms = {
123+ "filename" : "xYeeshaPages.py" ,
124+ "attribs" : (
125+ { 'id' : 1 , 'type' : "ptAttribActivator" , 'name' : "actClickableBook" },
126+ { 'id' : 2 , 'type' : "ptAttribInt" , 'name' : "PageNumbers" },
127+ )
128+ }
129+
130+
131+ class PlasmaYeeshaPage (PlasmaModifierProperties , PlasmaModifierLogicWiz ):
132+ pl_id = "yeeshapage"
133+
134+ bl_category = "Logic"
135+ bl_label = "Yeesha Page"
136+ bl_description = "Set up clickable mesh for a Yeesha/Relto page."
137+ bl_icon = "NEW"
138+
139+ page_object = PointerProperty (name = "Clickable" ,
140+ description = "Object to click for page GUI." ,
141+ type = bpy .types .Object ,
142+ poll = idprops .poll_mesh_objects )
143+
144+ page_region = PointerProperty (name = "Click Region" ,
145+ description = "Activation region." ,
146+ type = bpy .types .Object ,
147+ poll = idprops .poll_mesh_objects )
148+
149+ page_number = IntProperty (name = "Page Number" ,
150+ description = "Page number in xYeeshaPages.py script and YeeshaPageGUI.prp" ,
151+ min = 1 , default = 1 ,
152+ options = set ())
153+
154+ def logicwiz (self , bo , tree ):
155+ nodes = tree .nodes
156+
157+ yeeshapage_pfm = yeeshapage_pfms
158+ yeeshapagenode = self ._create_python_file_node (tree , yeeshapage_pfm ["filename" ], yeeshapage_pfm ["attribs" ])
159+ self ._create_clothing_nodes (bo , tree .nodes , yeeshapagenode )
160+
161+ def _create_clothing_nodes (self , page_object , nodes , yeeshapagenode ):
162+ # Clickable
163+ yeeshapageclick = nodes .new ("PlasmaClickableNode" )
164+ yeeshapageclick .value = self .page_object
165+ yeeshapageclick .allow_simple = False
166+ yeeshapageclick .link_output (yeeshapagenode , "satisfies" , "actClickableBook" )
167+
168+ # Region
169+ yeeshapageregion = nodes .new ("PlasmaClickableRegionNode" )
170+ yeeshapageregion .region_object = self .page_region
171+ yeeshapageregion .link_output (yeeshapageclick , "satisfies" , "region" )
172+
173+ # Page Number
174+ yeeshapagenum = nodes .new ("PlasmaAttribIntNode" )
175+ yeeshapagenum .value_int = self .page_number
176+ yeeshapagenum .link_output (yeeshapagenode , "pfm" , "PageNumbers" )
0 commit comments