squiddev-cc / artist Goto Github PK
View Code? Open in Web Editor NEWA Rather Tremendous Item SysTem
License: BSD 3-Clause "New" or "Revised" License
A Rather Tremendous Item SysTem
License: BSD 3-Clause "New" or "Revised" License
This happened randomly while idling.
Cannot replicate
Full stacktrace:
init:96: 'for' limit must be a number
stack traceback:
peripherals.lua:83: in function <peripherals.lua:62>
[C]: in function 'xpcall' context.lua:72: in function <context.lua:71>
When coal is placed in the turtle, it picks a random furnace to get all the coal instead of distributing it throughout all the furnaces evenly.
There should also be a priority to place coal within furnaces that have items ready to be smelted and an appropriate amount of items should be put in for that task (minding the -1 item smelting bug, so 16 items would actually need 3 coal, but 15 items would need 2)
Just to save some time: slots 1-3 are bottles, 4 is ingredient, 5 is blaze powder.
Also, you need to look at item NAMES to see if it's a water bottle or potion, NBT is used for potions.
Certain events in the system, such as item counts falling below a certain level, should trigger a turtle to go and gather that particular resource. Several things to note:
One thing we could do is just define these steps as "crafting steps" and order more items if we drop below a set level.
Before starting anything regarding creating a extension making possible to a user to use the same interface of the turtle on a pocket computer, I would like to know if there is any specific limitations or other stuff i should know regarding how artist works
Heya, just thought I'd make an issue to suggest it here. This wouldn't only benefit monitors but also allow users to customise their GUI while being compatible with the main code of Artist
JEI has some special characters that can be used to refine searches. We may not be able to do all of these.
@ search by mod name
# search by tool tip
$ search by ore dictionary
% search by creative tab
l/ search with a lua pattern
I'm not sure if |
works as or
in artist but that could be a nice change too.
I do know that the search does look in (some of) these places already (I think I looked for the mod name once), but it would be nice to be specific and whatnot.
Maybe a bit of a ramble because I should be sleeping already, apologies if this is.
Problem/Bug: When having a large number of furnaces connected, artist has complications extracting the output and inserting fuel from/into them.
What should happen: Smooth/fast (or at least not slow) extraction and insertion.
How to replicate: Stack 4 modems ontop of each other. Add 4 furnaces on 3 out of 4 sides of the modems. Repeat 2x. Insert items to be smelted and observe.
I'm quite curious why extracting is as slow as it is. I wonder if it's to prevent server lag, or just artist not being designed to be a smelting program (which I understand). I do hope this bug report was useful however and if any additional information is needed, please ask.
I think clearer instructions should be added to either the README or at the beginning of the display.lua file.
Nothing fancy, but it'd be nice to know where to put the display.lua file and/or how to run it.
Hello :)
Sorry for creatign a new issue for this
Thanks to you, my project is almost finished, but I face one more problem, and its has the same main issue than the other request i did for the count.
Lets imagine that in the /src/
folder of .artist.d
I have a file called extract_stuff.lua
, in this file I have "variables" containing the id
of a item (that exist in the storage) and the count
of this item requested.
(1) Lets say that I already checked that this item
EXIST and its COUNT is equal or lower than how much there is in the storage.
How could I link this extract_stuff.lua
script with your extraction system ? So I can "request a extraction" of any item with its count like if a player was using the turtle interface ?.
I hope that with the (1) statement it is "easy" and possible to do it.
Me and my friend working on the project will be very grateful to you if you could do this for us π
If you have any questions please ask then
Milo has been updated to 1.19.4 by 6_4 and iuzx.
Hereβs how to install it
https://p.sc3.io/enAqFNAfy9
For some reason, artist keeps resetting my config file. It has been quite irritating when wanting to set up drop off chests
By pressing this keybind, Artist will start combining slots into full stacks if possible, leaving only one non full stack in the whole network. This can help when you're not full on storage but your amount of total slots free is 0 to free up some slots
Excuse my bad formatting, sorry
Effectively add the ability to write to external monitors some statistics about the system. For instance:
The big question here is how we let users display this. I'm thinking a "monitor name" β "list of components". So something like:
stats_monitors = {
left = {
-- Show a list of inventories, #slots and a percentage/barchart
{ type = "inventories" },
-- Show the top 10 items
{ type = "items", limit = 10, sort = "count" },
}
}
Obviously this is really restrictive though. Maybe we should just allow people to write programs which are run on each item_change event and provide some built-in methods for drawing things like that?
Hello, I would like to know how I can write and implement customs modules.
I am currently working on a porject and I need to have another turtle give or take items
This would be better in a discussion, but they aren't enabled here.
If I wanted to go about adding networking, would I go along the lines of something like:
-- artist/items/network.lua
--- Provides a module to support multiple turtles on a network.
--
local modem = peripheral.find("modem")
-- This probably isn't the best way to find, or exit if there is no modem.
if not modem then return end
modem.open(1) -- Or whatever channel, doesn't really matter
return function(context)
local disabled = false -- Do not create an infinite loop :)
context.mediator:add_thread(function()
while true do
local _,_,_._,items = os.pullEvent("modem_message")
disabled = true
self.mediator:publish("items.change",items) -- This seems right? I'm not sure.
end
end)
context.mediator:subscribe("items.change",function(items)
if disabled then return end
-- Now just broadcast the new items? I have no clue how this particular event works.
modem.transmit(1,1,items)
end)
end
This is some very rough code, but it should provide an idea of what I'm thinking needs to happen in order to make this work?
Sometimes the GUI will be a pain to operate, and you might be away from the base when you want to start crafting things. Natural language processing, combined with networked PDAs, chatboxes, and direct text input, would give a powerful way of communicating with the item server.
Some examples of phrases:
craft some repeaters
get 5 stacks of cyan stained clay ready
put some seeds in the farm chest
craft torches when there's less than 32 left
When attaching a large number of chests, Artist's startup time grows substantially. We should be able to load chests in parallel (as they have their own cost handler) meaning startup will be somewhat constant.
Edit: We already parallelise loading, so should investigate why it takes so long on some systems.
It may be wise to add a license file to this project.
There are several improvements which could be made to inventory tracking:
recipe_dump.json
file.There are several requirements for the crafting system
I'm running CC: Restitched on 1.19, if you wanna know the modpack, it is here: https://modrinth.com/modpack/uqm
Heya, while setting up Artist for a friend, i set up the network and then the computer that they'd use for the interface. I set up pick-up and drop-off points on the left and right of the computer, but then there was errors popping up in the log (attached here: log.txt), but connecting the chests with modems do work
Perhaps press "F" to distribute X amount of Y item between furnaces?
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.