Giter Site home page Giter Site logo

nopipeline's People

Contributors

jamsilva avatar martenfur avatar mcmillen avatar mirrorofsun avatar seclerp 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

nopipeline's Issues

NoPipeline generating an odd structure for the MGCB file

Hi!

I've been struggling to get the NoPipeline to work. Running nopipeline produces the MGCB but not the XNB files, and the MGCB file it outputs also has a very odd structure.

Here's the content of the MGCB npl generates

CleanShot 2022-12-04 at 16 13 51@2x

Here's what the files look in the solution

Here's the repository that reproduces the issue. I can reproduce this on macOS by running the NPL from the terminal or building the project with Visual Studio 2022 and the latest version of Rider.

Nopipeline log is the following

I got this by running dotnet "/Users/jussi/.nuget/packages/nopipeline.task/2.2.0/tools/net6.0/any/npl.dll" Jelly/Content/Content.npl.

Nopipeline v2.2.0.0
Reading MGCB config /Users/jussi/tmp/ContentPipelineIssue/Jelly/Content/Content.mgcb

Reading setting: /outputDir:bin/$(Platform)
Reading setting: /intermediateDir:obj/$(Platform)
Reading setting: /config:
Reading setting: /profile:Reach
Reading setting: /compress:False

Reading content:././Graphics/fire.png
Reading content:././Graphics/jelly.png
Reading content:./Graphics/jelly.png
Reading content:./Graphics/fire.png
Reading content:Graphics/jelly.png
Reading content:Graphics/fire.png
Finished reading MGCB config! Got 6 items.

-------------------------------------

Reading NPL config.

No root found! Using default paths.



Reading content for: Graphics/*.png
    Reading Graphics/fire.png
    Reading Graphics/jelly.png

Finished reading NPL config!

-------------------------------------

Checking integrity of the final config.

Checking /Users/jussi/tmp/ContentPipelineIssue/Jelly/Content/././Graphics/fire.png
Checking /Users/jussi/tmp/ContentPipelineIssue/Jelly/Content/././Graphics/jelly.png
Checking /Users/jussi/tmp/ContentPipelineIssue/Jelly/Content/./Graphics/jelly.png
Checking /Users/jussi/tmp/ContentPipelineIssue/Jelly/Content/./Graphics/fire.png
Checking /Users/jussi/tmp/ContentPipelineIssue/Jelly/Content/Graphics/jelly.png
Checking /Users/jussi/tmp/ContentPipelineIssue/Jelly/Content/Graphics/fire.png

Updating snapshot!


-------------------------------------

Saving new config as /Users/jussi/tmp/ContentPipelineIssue/Jelly/Content/Content.mgcb

DONE. o-o

Any pointers for getting this work are appreciated. Hopefully, I'm just doing something obvious very wrong.

Unable to install version 2.1.0 from NuGet

After being driven almost to tears by how awful the MonoGame Content Pipeline is, I decided to give this package a whirl. But when I try to install it into my project, I get the error

Severity	Code	Description	Project	File	Line	Suppression State
Error	MSB3073	The command "dotnet C:\Users\owner\.nuget\packages\nopipeline.task\2.1.0\build\\..\tools\netcoreapp3.1\any\npl.dll """ exited with code -532462766.	PongBreaker	C:\Users\owner\.nuget\packages\nopipeline.task\2.1.0\build\Nopipeline.Task.targets	8	

The tutorial on the readme file of this repository says that an NPL Config file is supposed to be created on the first build, but trying to build past this point results in the same error as before.

Installing the previous version, v2.0.1, does not result in any fatal errors, however, no NPL config file is produced anywhere in the file structure upon building, and instead I get the debug log

C:/Users/owner/Documents/MonoGame Projects/PixelDoughEngine/Engine/Content/Content.npl not found!
1>Run with path to .mgcb or .npl config as an argument:
1>    NoPipeline.exe Content/Content.mgcb
1>or
1>    NoPipeline.exe Content/Content.npl
C:/Users/owner/Documents/MonoGame Projects/PongBreaker/PongBreaker/Content/Content.npl not found!
1>Run with path to .mgcb or .npl config as an argument:
1>    NoPipeline.exe Content/Content.mgcb
1>or
1>    NoPipeline.exe Content/Content.npl

I have a Content.mgcb in my project, and I have one in the MonoGame Shared Library project in my solution. Could that have anything to do with it?

Importing Music and Fonts

Hi, how can I go about importing music and fonts with NoPipeline? I don't think I want to use TextureImporter do I?

.net5 and .net6 usage

Currently this project requires .netcore 3.1 to be installed when building. Due to being backwards compatible, i would like to see this being able to run with only .net5 or .net6 installed on the machine.

Full paths instead of Relative paths not working as expected

Hello @Martenfur
I'm not 100% positive, but I couldn't make it work with full paths instead of relative paths. I was getting paths like C:\Path\To\ContentC:\Path\To\Project\Content and things like that. I ended up fixing it, at least for my specific use case. I would issue a Pull Request but in my fork I also got rid of some things and updated it to be compatible with .Net Core so if you want to check it out, the changes I made and an explanation are in my fork (b9aac72). The changes are a couple of lines but let me know if there is a better way of fixing the isse. For all I know I fixed my case but made it not work with plenty of other cases, didn't really test it in depth.

Cheers.

.Net Core

Hello,
Just in case anyone is interested, I made it compatible in .net Core (3.1). Also deleted some things on the process tho, like the sample application which I couldn't compile as it requires some things from other packages that I don't have (And also didn't care about those). It's [here] (https://github.com/OAguinagalde/NoPipeline).

@Martenfur feel free to update your repo if necessary.

Possible to install as NuGet package?

Rather than have this be deployed via an exe/vsix, would it be possible to deploy this as a nuget package, similar to how the Monogame.Content.Builder nuget works?

I believe the package would just need an exe/dll and a targets file, very similar to how the monogame nuget files work

Curious if this has been explored at all? If not, maybe I'll take a shot at submitting a PR.

This seems to me like it would be a much simpler integration/installation story...

awesome works!

hey, you did really awesome works. I think you can add a donate link or a sponsor page .

Easy way of referencing nugets

Hi, this is looking really promising, I really struggle with the default editor so I'm going to try this out tonight thanks!

One issue with the original editor is keeping references between machines, especially nuget references. Could we add a reserved variable that points to the user's nuget folder or better yet a convention that finds nugets based on package name and version? Eg nuget:SomePackage-1.0.0. I could contribute if you think it's a good idea.

Then all we need is a simple ui that generates an npl config and we can phase out the mgcb-editor ;)

Unix paths don't work as expected

When putting in a Unix path to the references block in the .npl, the paths don't resolve as expected. For example, ~/.nuget/packages/... resolves to {Project Working Directory}/~/.nuget/packages/.... The expected behavior would be for it to resolve to {home directory}/~/.nuget/packages/.... Likewise, /etc/... resolves to {Project Working Directory}/etc/... instead of /etc/....

A workaround solution could be platform-specific reference settings in the .npl file.

Make Nopipeline work with .Net Core on Linux

I am unable to use Nopipeline as-is on Linux. However, changing all backslashes to slashes in Nopipeline.Task.targets makes things work correctly.
I expect macOS to have the same problem and I think Windows doesn't care but I only tested this change on Linux.

Content2.npl

Hi!

I'd like to keep separate the mgcb for NoPipeline project and the mgcb project, and run mgcb twice when building the game.

When creating Content2.npl (or whatever name I put to the npl file) I always get this error

1>  O:/tbd/Game1/Game1/Content/Content.npl not found!
1>  Run with path to .mgcb or .npl config as an argument:
1>      NoPipeline.exe Content/Content.mgcb
1>  or
1>      NoPipeline.exe Content/Content.npl
1>  

It never works, unless of course npl file is Content.npl , then it seems to work well.

Is it a bug or I have to do something extra in order to get a different name working?

thanks!

Use value from `MonoGameMGCBAdditionalArguments` to build MGCB

Currently, it's possible to customize the build process for MGCB using the property MonoGameMGCBAdditionalArguments.

https://monogame.net/articles/tools/mgcb.html#customizing-your-build-process

However, with the way Nopipeline works, it's running the MGCB manually, without waiting for the RunContentBuilder target from the MonoGame.Content.Builder.Task package.

I wish the Nopipeline task didn't do the generation of the content, and instead targetted running before the RunContentBuilder target. This would help a lot with configuring building for different platforms and configs through the csproj file.

For example, this is what I wanna be able to do while keeping the Nopipeline task included :

<Target Name="SetMGCBArgumentsMyself" BeforeTargets="RunContentBuilder">
  <PropertyGroup Condition="'$(Platform)' == 'desktopgl-linux' Or '$(Platform)' == 'desktopgl-windows'">
    <MonoGamePlatform>DesktopGL</MonoGamePlatform>
    <MonoGameMGCBAdditionalArguments>/profile:HiDef /platform:$(MonoGamePlatform)</MonoGameMGCBAdditionalArguments>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Platform)' == 'WindowsDX'">
    <MonoGamePlatform>Windows</MonoGamePlatform>
    <MonoGameMGCBAdditionalArguments>/profile:HiDef /platform:$(MonoGamePlatform)</MonoGameMGCBAdditionalArguments>
  </PropertyGroup>
  <Message Importance="high" Text="'$(Platform)' '$(Configuration)' '$(MonoGameMGCBAdditionalArguments)' HELLO THERE HERE" />
</Target>

Unfortunately, this won't work if you build using Nopipeline.

Linked files (mgcb)

Are there plans to support linked files? I usually have my code (and content.mgcb file) in a development drive and all my assets are in another drive, which forces me to use 'linking' in my MGCB for all my files.

MonoGame/MonoGame#5109

Thanks!

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.