Skip to content

Commit

Permalink
Simplify LogicWiz using Hoikas' method
Browse files Browse the repository at this point in the history
  • Loading branch information
DoobesURU committed Jan 19, 2023
1 parent 1b4f649 commit e6daaf8
Showing 1 changed file with 15 additions and 18 deletions.
33 changes: 15 additions & 18 deletions korman/properties/modifiers/logic.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ def requires_actor(self):


# Let's set up the xSimpleImager.py scripting
imager_pfms = {
imager_pfm = {
"filename": "xSimpleImager.py",
"attribs": (
{ 'id': 1, 'type': "ptAttribString", 'name': "ImagerName" },
Expand Down Expand Up @@ -232,80 +232,77 @@ def _poll_texture(self, value: bpy.types.Texture) -> bool:
def logicwiz(self, bo, tree):
nodes = tree.nodes

imager_pfm = imager_pfms
imagernode = self._create_python_file_node(tree, imager_pfm["filename"], imager_pfm["attribs"])
self._create_imager_nodes(bo, tree.nodes, imagernode)
# Create Python File node
imagerpynode = self._create_python_file_node(tree, imager_pfm["filename"], imager_pfm["attribs"])


def _create_imager_nodes(self, imager_object, nodes, imagernode):
#Imager Name
imagername = nodes.new("PlasmaAttribStringNode")
imagername.value = self.imager_name
imagername.link_output(imagernode, "pfm", "ImagerName")
imagername.link_output(imagerpynode, "pfm", "ImagerName")

# Texture
imagertext = nodes.new("PlasmaAttribTextureNode")
imagertext.target_object = self.imager_object
imagertext.material = self.imager_material
imagertext.texture = self.imager_texture
imagertext.link_output(imagernode, "pfm", "ImagerMap")
imagertext.link_output(imagerpynode, "pfm", "ImagerMap")

# Region Object if we want one
if self.imager_region and self.imager_type == "POSTABLE":
imagerregion = nodes.new("PlasmaVolumeSensorNode")
imagerregion.region_object = self.imager_region
for i in imagerregion.inputs:
i.allow = True
imagerregion.link_output(imagernode, "satisfies", "ImagerRegion")
imagerregion.link_output(imagerpynode, "satisfies", "ImagerRegion")

# Seconds between posts
imagersec = nodes.new("PlasmaAttribIntNode")
imagersec.value_int = self.imager_time
imagersec.link_output(imagernode, "pfm", "ImagerTime")
imagersec.link_output(imagerpynode, "pfm", "ImagerTime")

# Members only?
imagermember = nodes.new("PlasmaAttribBoolNode")
if self.imager_type == "POSTABLE":
imagermember.value = self.imager_membersonly
else:
imagermember.value = True
imagermember.link_output(imagernode, "pfm", "ImagerMembersOnly")
imagermember.link_output(imagerpynode, "pfm", "ImagerMembersOnly")

# Imager Mesh Object
imagerobject = nodes.new("PlasmaAttribObjectNode")
imagerobject.target_object = self.imager_object
imagerobject.link_output(imagernode, "pfm", "ImagerObject")
imagerobject.link_output(imagerpynode, "pfm", "ImagerObject")

# Maximum Images
imagermax = nodes.new("PlasmaAttribIntNode")
imagermax.value_int = self.imager_maximum
imagermax.link_output(imagernode, "pfm", "ImagerMax")
imagermax.link_output(imagerpynode, "pfm", "ImagerMax")

# Optional SDL placeholder (needed?)
if self.imager_type == "POSTABLE":
imagersdl = nodes.new("PlasmaAttribStringNode")
imagersdl.link_output(imagernode, "pfm", "ImagerInboxVariable")
imagersdl.link_output(imagerpynode, "pfm", "ImagerInboxVariable")

# Pellet Imager?
imagerpellet = nodes.new("PlasmaAttribBoolNode")
if self.imager_type == "POSTABLE":
imagerpellet.value = self.imager_pellets
else:
imagerpellet.value = False
imagerpellet.link_output(imagernode, "pfm", "ImagerPelletUpload")
imagerpellet.link_output(imagerpynode, "pfm", "ImagerPelletUpload")

# Puzzle Imager Object if we have one
if self.imager_clueobject and self.imager_type == "POSTABLE":
imagerclueobj = nodes.new("PlasmaAttribObjectNode")
imagerclueobj.target_object = self.imager_clueobject
imagerclueobj.link_output(imagernode, "pfm", "ImagerClueObject")
imagerclueobj.link_output(imagerpynode, "pfm", "ImagerClueObject")

# Clue Time
imagercluetime = nodes.new("PlasmaAttribIntNode")
imagercluetime.value_int = self.imager_cluetime
imagercluetime.link_output(imagernode, "pfm", "ImagerClueTime")
imagercluetime.link_output(imagerpynode, "pfm", "ImagerClueTime")

# Random Clue Time
imagerrandomtime = nodes.new("PlasmaAttribIntNode")
imagerrandomtime.value_int = self.imager_randomtime
imagerrandomtime.link_output(imagernode, "pfm", "ImagerRandomTime")
imagerrandomtime.link_output(imagerpynode, "pfm", "ImagerRandomTime")

0 comments on commit e6daaf8

Please sign in to comment.