Skip to content

Commit c91abff

Browse files
committed
Add Yeesha/Relto Page Modifier
* Properties and UI for a simple modifier for xYeeshaPages.py
1 parent 50a9b1a commit c91abff

2 files changed

Lines changed: 63 additions & 0 deletions

File tree

korman/properties/modifiers/logic.py

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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")

korman/ui/modifiers/logic.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,9 @@ def spawnpoint(modifier, layout, context):
4242
def maintainersmarker(modifier, layout, context):
4343
layout.label(text="Positive Y is North, positive Z is up.")
4444
layout.prop(modifier, "calibration")
45+
46+
def yeeshapage(modifier, layout, context):
47+
layout.prop(modifier, "page_object")
48+
layout.prop(modifier, "page_region")
49+
layout.prop(modifier, "page_number")
50+

0 commit comments

Comments
 (0)