Giter VIP home page Giter VIP logo

exppipes's Introduction

Exponentialistics Pipes

... is a mod-independant pipe system, similar to LogisticsPipes but with:

  • OpenComputers support
  • Light models for blocks and items (not multi-kilobytes obj files I mean)
  • No next-gen recipes
  • Not a single line of code stolen from Buildcraft

Wait a minute, this is just a incomplete and bad copy of Logistics Pipes ?

Yes. See above.

There will be some original ideas tho.

TODO List

  • Actual pipes
  • Items routing
  • Item requests and providers
  • OpenComputers integration
  • Advanced pipe filters (fuzzy, oredict...) and prioritized sorting
  • Flowing items rendering
  • Fluid pipes
  • Optional energy requirement (w/ GTCE support)
  • Multipart support
  • Better pathfinder
  • Compatiblity with other mods' pipes (buildcraft, thermal dynamics, etc.)

exppipes's People

Contributors

brewingcoder avatar firew0lf avatar ihamfp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

exppipes's Issues

Crash with Gregtech Community Edition

Minecraft version: 1.12.2 singleplayer
Mods: codechickenlib 3.2.3.358
exppipes-0.2.7a.jar
gregtech 1.9.1.505

Created a new world, placed a chest and stockkeeper pipe, put some Stone to it's interface and chosen Filter: Ore Dict. Game crashes

https://pastebin.com/WCTQqs9Q

java.util.concurrent.ExecutionException: java.lang.IllegalAccessError: tried to access field net.minecraft.nbt.NBTTagList.field_74747_a from class gregtech.common.blocks.surfacerock.TileEntitySurfaceRock
	at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:1.8.0_201]
	at java.util.concurrent.FutureTask.get(FutureTask.java:192) ~[?:1.8.0_201]
	at net.minecraft.util.Util.func_181617_a(SourceFile:47) [h.class:?]
	at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:1088) [bib.class:?]
	at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:398) [bib.class:?]
	at net.minecraft.client.main.Main.main(SourceFile:123) [Main.class:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_201]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_201]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_201]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_201]
	at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
	at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
Caused by: java.lang.IllegalAccessError: tried to access field net.minecraft.nbt.NBTTagList.field_74747_a from class gregtech.common.blocks.surfacerock.TileEntitySurfaceRock
	at gregtech.common.blocks.surfacerock.TileEntitySurfaceRock.func_145839_a(TileEntitySurfaceRock.java:68) ~[TileEntitySurfaceRock.class:?]
	at net.minecraft.tileentity.TileEntity.handleUpdateTag(TileEntity.java:331) ~[avj.class:?]
	at net.minecraft.client.network.NetHandlerPlayClient.func_147263_a(NetHandlerPlayClient.java:760) ~[brz.class:?]
	at net.minecraft.network.play.server.SPacketChunkData.func_148833_a(SourceFile:96) ~[je.class:?]
	at net.minecraft.network.play.server.SPacketChunkData.func_148833_a(SourceFile:18) ~[je.class:?]
	at net.minecraft.network.PacketThreadUtil$1.run(SourceFile:13) ~[hv$1.class:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_201]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_201]
	at net.minecraft.util.Util.func_181617_a(SourceFile:46) ~[h.class:?]
	... 9 more```

Pipe speed controllers

Random thought, would be interesting to have pipes similar to the ones in BC/TD that can increase or decrease the speed of items passing through them - not additively, just like a start/stop kinda deal. One pipe, when items pass through it, speed up by a certain factor, and another pipe slows them down. Piston and Sticky Piston might be good items to use for crafting these, although it doesn't make much sense logically at least it wouldn't be too overpowered since a piston is a fairly decent investment.

EDIT: if an item was sped up, reaching a slow pipe would bring them to regular speed. I don't know if you'd want a slow pipe to slow down items that are moving at regular speed, but maybe somebody has a use case for this, like a mod that would need items passing through at a slower speed.

Crash on Retriever Pipe

MC 1.12.2
Forge 14.23.5.2854
exppipes-0.2.8.jar

Create new world, put a chest, put a Retriever Pipe, connected to a chest. Game crashes.
logs

Pipe opaqueness

A way of applying (and thusly removing) opaqueness on a pipe.

Originally I thought waterproofing (perhaps the default pipes could be washed away by water, since they're "open", but adding waterproofing makes them invincible to water and makes them opaque as well), but I think coloring the pipes would make more sense. Right-clicking a pipe with a dye will fill the transparent area of the pipe with the color of the dye, and make it opaque (not show items flowing through it). Shift-rightclicking the pipe will remove the dye rather than changing connection (or if there's a deadzone where shift-rightclicking does nothing, maybe that can be the removal position). Would allow - obviously - colored pipes to differentiate networks (and since you already have shift-rightclick for connection changing, you don't need color separation or any other similar code changes, it'd only be for visual identification), which is also a big bonus, and doesn't need any new items or mechanics.

Round Robin?

So far I'm loving these pipes; they're damn simple and effective, probably the most useful "just pipes" mod that exists.

There's a few things that I think would be helpful for the mod, though:

  • A "Retriever Pipe", which acts as a Supplier pipe with no item specified for retrieval (a Supplier with no whitelist, basically). This would be handy for resolving issues where you want a machine to request any item by a specific Provider. Only needs to be 1 item at a time, but stack size config might be handy too? Think Furnace that can request items for fuel and input from separate containers. Saves the need for them to be extracted and potentially overflow. (I've always preferred retrieval vs sending)
  • Round Robin would be neat, but is probably quite the task for this kind of piping system as it would need to know how many destinations there are beforehand and cycle between them. Perhaps a solution to this would be to have a "Cyclical Priority Pipe", inwhich you specify a minimum and maximum priority (such as -5 and 5; one min, one max), and the items that pass through it will be assigned a value that starts from min and increases every item that passes through it up until the max, then it cycles back to the min. This would let you do round robin with an unknown amount of destinations.

CurseForge Release

From your readme

Logistics Pipes is released under the MMPL license, which mostly covers the code, thus I don't really know if I can release this mod on Curseforge of something.

why not? Paragraph 6 of the MMPL 1.0.1 (as in our repository) tells you how you may distribute all or parts of MMPL licensed work.

1.14.4 Support

1.14.4 seems to be gaining traction; might be a good time to get this working on 1.14.4. It'd be one of the first/only pipe mods for it as of yet.

So far, Tubes Reloaded seems to be the only similar mod, and it's nowhere near as feature-complete as exppipes is.

[FR] Ability to Type in Number to Request/LargerButtons

When requesting items from the table or request pipe, to get to 64 items I must click 64 times. This gets boring rather quickly. Could you either add a typing field for it or make, say 16x buttons? That would make requesting stacks much easier.

Totally random thoughts after spending a full evening using exp pipes.

Feel free to just close this out of hand, let me know if you want any of these items opened into separate issues, or if you're open to pull requests:

  1. what I found most troublesome when attempting to create a pipe network was the lack of polymorphic-sink. The provider pipe only provides 9 filter locations for sink items. This makes the pipe useless on simple storage multi-block networks like Storage Drawers, Yabba, etc.
  • Done

*this also applies to mass sink machines like say ore crushing/washing where you want to sink a large number of items. This used to be slapping on a LP MK-V Chassis with many sink modules in it. Unfortunately a poly-sink wouldn't solve that issue. In my test world I made multiple chests with many sinks, then a separate network to extract all those into the machine, but it wasn't ideal.

  1. Even with a polymorphic sink of some type a provider needs an option to leave at least 1, or one stack, of an item in it's connected inventory. This prevents those connected storage devices from potentially unlocking it's storage slot for that item.
  • Done
  1. I still have issues with routing. Not as bad as before your last update (which was amazing, more on that in a moment). The network routing appears great but it doesn't always pick the default route. On my test system I only have one default route, which is a chest. It's purpose is to catch everything that doesn't have a specific route. In places I have Yabba barrel networks and Storage drawer networks with provider pipes. These pipes DO NOT have default route set, and have specific item sink entries.
  • Fixed

If I put an empty barrel on the Yabba network, which is closer to the extraction point than the Storage Drawers network, the pipes will route something into the empty barrel. It shouldn't do this right? the provider pipe doesn't have an entry for it. There is a provider pipe about 10 blocks away on the Storage drawers network, but it ignored that in favor of the empty barrel.

  1. You totally conquered the issue I and others were having with large # of items in the network with your routing update. Previously if I inserted mass amounts of items they would flail around inside the pipes back and forth before eventually finding a home. I imagine that when you try to drop 20K items into a small network that poor routing was probably the issue.

  2. Stack size, Stack size, Stack size. 1 per 4 ticks is slow. Your network can handle it now, I know because I popped it up to extract full stacks at a time every 2 ticks, threw an RF tools builder at full speed piping crap into a chest, and it kept up with only two extractor pipes and very very very little routing issues.

  • Done

Like I said. feel free to delete. I just loved LP so much and am so disheartened at the speed at which they are working. I get that personal time is sometimes hard but they do a commit once every two to three months. by the time they clean it up we'll be on MC 1.15 and they'll bitch about all the work they have to do to upgrade :/

You are getting there so fast!

FR: ability to use wrench to enable/disable connection on one side of pipe

I know this is a biggie since it will totally mess with blockstates, textures, etc. which are things that I totally hate about mods -- mostly because they confuse me. But when running a pipe near an inventory there needs to be some way to prevent it from connecting on one side while maintaining a connection on the other. (otherwise I'd use the non connecting pipe)

0.2.0 crash on deleting pipe

I just merged your 0.2.0 code into my world. it cleared the sink config on the normal provider pipes. as soon as I destroyed one of those pipes to re-add it the world crashed. I'm heading off to work but wanted you to see this before you potentially published it:
[07:17:08] [Server thread/ERROR] [minecraft/MinecraftServer]: Encountered an unexpected exception
net.minecraft.util.ReportedException: Ticking block entity
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:848) ~[MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:743) ~[MinecraftServer.class:?]
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:192) ~[IntegratedServer.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:592) [MinecraftServer.class:?]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_201]
Caused by: java.lang.NullPointerException
at ihamfp.exppipes.pipenetwork.BlockDimPos.(BlockDimPos.java:21) ~[BlockDimPos.class:?]
at ihamfp.exppipes.tileentities.TileEntityRoutingPipe.serverUpdate(TileEntityRoutingPipe.java:211) ~[TileEntityRoutingPipe.class:?]
at ihamfp.exppipes.tileentities.TileEntityPipe.update(TileEntityPipe.java:35) ~[TileEntityPipe.class:?]
at net.minecraft.world.World.updateEntities(World.java:2019) ~[World.class:?]
at net.minecraft.world.WorldServer.updateEntities(WorldServer.java:643) ~[WorldServer.class:?]
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:842) ~[MinecraftServer.class:?]
... 4 more
[07:17:08] [Server thread/ERROR] [minecraft/MinecraftServer]: This crash report has been saved to: D:\Code\exppipes\run.\crash-reports\crash-2019-04-26_07.17.08-server.txt

Request Station last item crash

Using the Request Station, if I request the last item's last item (going from 1 to none), it will crash my game. It seems to do this always.

Stock Keeper Pipe looks only to the first inventory slot

MC 1.12.2
Forge 14.23.5.2854
exppipes-0.2.8.jar

Make following setup

  • Set Provider Pipe to provide wood planks and put some planks to the right chest
  • Set Stock Keeper Pipe to keep 3 planks in the left chest.

Wood planks will start moving to the left chest until 3 ones gets there to the first slot. If you put some more wood to the first slot, unnecessary items will go back to the provider, and 3 ones are again in the chest. But if you put some planks to the second inv. slot of the chest, or some other slot, the Stock Keeper Pipe will ignore it. You can again change items count of the first slot, and again it will be fetched to 3, ignoring other slots.

Crash on server on start

Server: Mohist version: 1.12.2-1.12.2-a99a910
exppipes version: 0.2.8

No other mods used.
Just started server, no world had been created yet.

logs

Extraction?

How do you extract items into the network?

I've put routed pipes with sink filters on machines (ore processing, etc)

I've got providers on inventory for final product storage

but I can't figure out how to get items out of the chest/inventory where inbound raw materials get dumped.

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.