robinka / netprints Goto Github PK
View Code? Open in Web Editor NEWVisual programming for .NET inspired by Unreal Engine's Blueprints
License: MIT License
Visual programming for .NET inspired by Unreal Engine's Blueprints
License: MIT License
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.
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.
Currently its methods are too specific so there are a lot of them. Instead there should be few methods that allow more complex queries.
The reflection provider produces a lot of duplicates. A .Distinct()
call removes them but it would be more efficient to not generate them in the first place.
Probably not coming anytime soon but cross-platform support for the editor would be nice now that the project was ported to .NET Core. This requires a switch from WPF to a cross-platform UI framework such as https://github.com/AvaloniaUI/Avalonia.
I don't know where they are defined or if it's just a magic feature.
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).
Is this project alive? I was very interested in this way of programming visually and really good looking like blueprints.
@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 ?
I assume it is because some commands don't get routed correctly.
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.
It is already implemented in the core library.
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.
Affected nodes: TypeOf, Constructor, ExplicitCast, MakeArray
Addition (+) etc.
Dragging a pin onto the grid shows a list of suggestions. When a suggestion is selected and a new node is created, the relevant compatible pin of the new node should be automatically connected to the initially dragged pin.
Especially useful for call method nodes because who wants to have a full execution node for .ToString()
.
Need to be implemented both for declaring them and for using them with existing functions.
When dragging a data pin onto another pin which can be cast to it explicitly an explicit cast node should be created automatically.
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:
It should be replaced by a system that allows to construct generics such as a type graph.
Make it more clear which type (method, property, ...) each item in the suggestion list is, for example by using icons, or different colors.
Creating arrays, getting their elements
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.
Hello,
No license is specified for this project, making it difficult to integrate/use; would you mind adding one ?
Best Regards,
Same as UE4 blueprint reroute nodes. Double-clicking on a connection should create a reroute node for better organisation.
Happens because of the generics resolver
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.
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).
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.
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.
Probably because changing type arguments disconnects them on loading.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.