Giter Site home page Giter Site logo

robinka / netprints Goto Github PK

View Code? Open in Web Editor NEW
362.0 362.0 97.0 1.18 MB

Visual programming for .NET inspired by Unreal Engine's Blueprints

License: MIT License

C# 100.00%
blueprints csharp dotnet dotnetcore dotnetcore-3 netstandard script scripting vbdotnet visual visualstudio-extension vsix wpf

netprints's People

Contributors

robinka avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

netprints's Issues

Add base node in overriding methods

So we are able to call the base's methods and use its properties etc.

Tricky because we can not store base in a variable, so we would need a special node that can call base methods and get base properties.

Align pins to grid

Pins should be aligned to the grid so they line up nicely with each other. Additionally this would remove the need for adding a top-padding to the reroute nodes to make them align with other nodes.

Add more literal editors for default values

Currently primitive types can have their default (ie. unconnected) value set using a combo-box for enums and a text-box for everything else. We should add special editors for different types (eg. checkbox for bool).

[Question] About this project.

Is this project alive? I was very interested in this way of programming visually and really good looking like blueprints.

Code generation

@RobinKa hi there, nice work. but i would like to understand why you didnt chose to generate the code from nodes ? is there a particular reason for it ?

Correct pin getters in nodes

Right now the pins are accessed either using indexers or by finding their name. Both of these methods can fail. References to the pins should be saved when they are created instead.

Integrate NuGet package manager

Currently users have to select their own assembly references. Some defaults are added but they might not be available on some machines. The NuGet package manager should be integrated to make this process easier, especially for .NET standard libraries.

As far as I know the NuGet libraries are not compatible with .NET Core currently, but the new version (5) released with VS 2019 will be.

Improve or replace type selector dialog

It is difficult to find a type in this huge list. The only current option is to type out the name while the list is open. Furthermore generic types can not be constructed with it.

Currently in use in the following places:

  • Selecting class base type
  • Creating constructor nodes
  • Creating type nodes

It should be replaced by a system that allows to construct generics such as a type graph.

Combine overloads in suggestions

Right now all overloads in the suggestion list are shown seperately. In the constructor selection a random overload is selected. Both should make use of a mechanic to only display one overload and switch between them using hotkeys.

Missing License

Hello,

No license is specified for this project, making it difficult to integrate/use; would you mind adding one ?

Best Regards,

Add reroute nodes

Same as UE4 blueprint reroute nodes. Double-clicking on a connection should create a reroute node for better organisation.

Refactor code generation

Currently all code is mostly generated in one class (MethodTranslator) with a table of node translation functions. This should be refactored into multiple classes or files somehow.

Add try/catch node

This would probably require going from labels/goto to local functions or lambdas for each state, as the C# try/catch is scope based.

A way to implement this with the current goto-based state machine would be wrapping every node that could be used inside a try/catch block in one. Then on catch, check whether we are currently in a try block and goto the actual catch block (and if not, just rethrow the exception).

Another idea would be having catch output execution pins on relevant nodes (eg. call method). These catch pins could then be added for every exception type. One issue with this is that it doesn't allow to do some things as easily as in C# (eg. surrounding a for-loop by try/catch).

Check visibility correctly for suggestions

We only check for public or public/protected visibility in most places independent of the accessing type. We need to check if the classes, methods and variables etc. can be accessed from the current class correctly.

Allow to add differently typed exception pins

Currently the exception pin is of type System.Exception. It would be nicer if we could right-click nodes to add a new exception type, which would also add another output execution pin for its catch.

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.