Files
Nexus/2023/scripts/rigging_tools/ngskintools2/operations/paint.py
2025-11-24 08:27:50 +08:00

46 lines
1.3 KiB
Python

from maya import cmds
from ngSkinTools2.api import PaintTool
from ngSkinTools2.api.log import getLogger
from ngSkinTools2.api.session import session
from ngSkinTools2.ui.action import Action
log = getLogger("operations/paint")
class FloodAction(Action):
name = "Flood"
tooltip = "Apply current brush to whole selection"
def run(self):
session.paint_tool.flood(self.session.state.currentLayer.layer, influences=self.session.state.currentLayer.layer.paint_targets)
def enabled(self):
return PaintTool.is_painting() and self.session.state.selectedSkinCluster is not None and self.session.state.currentLayer.layer is not None
def update_on_signals(self):
return [
self.session.events.toolChanged,
self.session.events.currentLayerChanged,
self.session.events.currentInfluenceChanged,
self.session.events.targetChanged,
]
class PaintAction(Action):
name = "Paint"
tooltip = "Toggle paint tool"
checkable = True
def run(self):
if self.checked():
cmds.setToolTo("moveSuperContext")
else:
self.session.paint_tool.start()
def update_on_signals(self):
return [self.session.events.toolChanged]
def checked(self):
return PaintTool.is_painting()