Code Monkey home page Code Monkey logo

nodeeditor's People

Contributors

fireclawthefox avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

bloomv mj-meo-dmt

nodeeditor's Issues

Add group node

Add a node that can be opened/expanded and contains sub-logic
Input and output will be defined by specific new input and output defining nodes

Add search dialog for adding nodes

A new dialog which can be called by the menu or a key combination that lists all available nodes with some details and is searchable. When a node from the dialog is chosen, it should be placed just as it was created from the menu.

Handle cyclic nodes.

When you make a cycle of nodes (connecting two nodes to eachother into a cycle) the editor crashes:

Traceback (most recent call last):
  File "/home/tuvok/Panda3d/FRAME/NodeEditor/main.py", line 52, in <module>
    base.run()
  File "/home/tuvok/Blender/3.1/python/lib/python3.10/site-packages/direct/showbase/ShowBase.py", line 3328, in run
    self.taskMgr.run()
  File "/home/tuvok/Blender/3.1/python/lib/python3.10/site-packages/direct/task/Task.py", line 553, in run
    self.step()
  File "/home/tuvok/Blender/3.1/python/lib/python3.10/site-packages/direct/task/Task.py", line 504, in step
    self.mgr.poll()
  File "/home/tuvok/Blender/3.1/python/lib/python3.10/site-packages/direct/showbase/EventManager.py", line 49, in eventLoopTask
    self.doEvents()
  File "/home/tuvok/Blender/3.1/python/lib/python3.10/site-packages/direct/showbase/EventManager.py", line 43, in doEvents
    processFunc(dequeueFunc())
  File "/home/tuvok/Blender/3.1/python/lib/python3.10/site-packages/direct/showbase/EventManager.py", line 99, in processEvent
    messenger.send(eventName, paramList)
  File "/home/tuvok/Blender/3.1/python/lib/python3.10/site-packages/direct/showbase/Messenger.py", line 337, in send
    self.__dispatch(acceptorDict, event, sentArgs, foundWatch)
  File "/home/tuvok/Blender/3.1/python/lib/python3.10/site-packages/direct/showbase/Messenger.py", line 422, in __dispatch
    result = method (*(extraArgs + sentArgs))
  File "/home/tuvok/Panda3d/FRAME/NodeEditor/Panda3DNodeEditor/NodeCore/Sockets/SocketBase.py", line 70, in endPlug
    base.messenger.send("connectPlugs")
  File "/home/tuvok/Blender/3.1/python/lib/python3.10/site-packages/direct/showbase/Messenger.py", line 337, in send
    self.__dispatch(acceptorDict, event, sentArgs, foundWatch)
  File "/home/tuvok/Blender/3.1/python/lib/python3.10/site-packages/direct/showbase/Messenger.py", line 422, in __dispatch
    result = method (*(extraArgs + sentArgs))
  File "/home/tuvok/Panda3d/FRAME/NodeEditor/Panda3DNodeEditor/NodeCore/NodeManager.py", line 276, in connectPlugs
    self.updateConnectedNodes(outSocketNode)
  File "/home/tuvok/Panda3d/FRAME/NodeEditor/Panda3DNodeEditor/NodeCore/NodeManager.py", line 326, in updateConnectedNodes
    self.__updateConnectedNodes(leaveNode)
  File "/home/tuvok/Panda3d/FRAME/NodeEditor/Panda3DNodeEditor/NodeCore/NodeManager.py", line 337, in __updateConnectedNodes
    self.__updateConnectedNodes(connector.socketB.node)
  File "/home/tuvok/Panda3d/FRAME/NodeEditor/Panda3DNodeEditor/NodeCore/NodeManager.py", line 337, in __updateConnectedNodes
    self.__updateConnectedNodes(connector.socketB.node)
  File "/home/tuvok/Panda3d/FRAME/NodeEditor/Panda3DNodeEditor/NodeCore/NodeManager.py", line 337, in __updateConnectedNodes
    self.__updateConnectedNodes(connector.socketB.node)
  [Previous line repeated 972 more times]
  File "/home/tuvok/Panda3d/FRAME/NodeEditor/Panda3DNodeEditor/NodeCore/NodeManager.py", line 336, in __updateConnectedNodes
    connector.socketB.node.logic()
  File "/home/tuvok/Panda3d/FRAME/NodeEditor/Panda3DNodeEditor/NodeCore/Nodes/TestOutNode.py", line 38, in logic
    self.inputList[0].text["text"] = str(self.inputList[0].getValue())
  File "/home/tuvok/Blender/3.1/python/lib/python3.10/site-packages/direct/gui/DirectGuiBase.py", line 446, in __setitem__
    self.configure(**{key: value})
  File "/home/tuvok/Blender/3.1/python/lib/python3.10/site-packages/direct/gui/DirectGuiBase.py", line 442, in configure
    func()
  File "/home/tuvok/Blender/3.1/python/lib/python3.10/site-packages/direct/gui/DirectFrame.py", line 99, in setText
    self[component + '_text'] = text
  File "/home/tuvok/Blender/3.1/python/lib/python3.10/site-packages/direct/gui/DirectGuiBase.py", line 446, in __setitem__
    self.configure(**{key: value})
  File "/home/tuvok/Blender/3.1/python/lib/python3.10/site-packages/direct/gui/DirectGuiBase.py", line 435, in configure
    func(**options)
  File "/home/tuvok/Blender/3.1/python/lib/python3.10/site-packages/direct/gui/OnscreenText.py", line 553, in configure
    setter(value)
  File "/home/tuvok/Blender/3.1/python/lib/python3.10/site-packages/direct/gui/OnscreenText.py", line 285, in setText
    if sys.version_info >= (3, 0):
RecursionError: maximum recursion depth exceeded in comparison

The easy way out is to disallow cyclic structures and stick to a tree structure (blender colors one connection line red).
For things like a non-linear story editor, having cyclic nodes would be very interesting.

Remember last saved / opened file

If the filebrowser for saving or loading is opened after the project has been saved or loaded, it should show the last entered path and filename.

Implement/Enhance save status check

Currently the save status check only checks for if there are nodes in the editor or not. This should check if the project has been saved and actual changes have been made to the nodes.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.