#General & Development Help

1 messages · Page 6 of 1

neat mango
#

the context break thing ?

radiant depot
#

and starbuncles AI will need a bit of rework since i added side sentivity to the wand

#

oh, that one too exists right. Don't know how breaking that is

radiant depot
#

Damage Types and the boolean return on attemptDamage thing have been also added

neat mango
#

Ars Oscura is so basic right now it shouldnt matter much but I wanna move to 1.20 asap because porting is pain (Almost gave up on blood magic this time around)

#

I want to move to 1.20 so that I can play with context manipulation

radiant depot
#

I don't remember the scope of your mod but you can probably start porting, at least for testing

#

Worst case, real breaking changes all together when it needs to happen

#

But maybe wait for release until those two PRs are merged

ashen grail
#

are 1.19 versions of Ars Nouveau still maintained? if not, then i have a rather bizarre proposition that i may need some advice on

#

i'm currently having another go at this old add-on concept i wanted to try for integration between Ars Nouveau and AE2, and in order to implement some functionality to do with storing and accessing Source on an ME network i would need to ideally make use of capabilities which Ars doesn't actually natively provide
#1041655048574349342 message

#

would it somehow be possible to create these capabilities myself and somehow add support to Ars for these caps via mixins? i grant you that this sounds fucking ridiculous already

neat mango
#

Why do you need caps ?

shadow helm
ashen grail
#

and as far as i am able to tell i probably wouldn't even be able to implement something like a Source P2P Tunnel without some capability in place

neat mango
#

random question but does botania mana also use caps ?

ashen grail
#

it does

#

that's what Applied Botanics makes use of for its own integration such as mana P2P tunnels allowing mana transfer with sparks, among other things

neat mango
#

another question, since caps are just data binding, why cant you just attach it without mixin ?

#

(as you can see, I have not played with caps much :P )

radiant depot
#

You can attach caps via event

ashen grail
#

i imagine i would need to account for other things in Ars being able to recognise the caps i'm attaching

radiant depot
#

I attach fluid caps to containment jars for example in StarbuncleMania

#

You would basically make the cap rely on the interface methods

ashen grail
#

like let's say i have a Source P2P tunnel and i want to be able to have sourcelinks fire source into the P2P tunnel which would then output to another tunnel next to a jar

#

or rather, a jar sending source through a P2P tunnel that then goes to an enchanting apparatus or some ritual setup

radiant depot
#

But if the issue is "I want my block to be recognized by Ars stuff" then it requires stuff upstream I think

ashen grail
#

yeah, that's what i'm asking for

radiant depot
#

Or a mixin to source manager or what's called?

#

You can also attach interfaces via mixins, on the P2P

radiant depot
#

That's for spells tho

#

Not source

neat mango
#

F I got confused between sourcelink and spellturrent

radiant depot
#

Anyway for the main question, 1.19 is still maintained for backports of fixes and co.

#

But breaking changes to existing stuff should only be made to 1.20

ashen grail
#

i see

neat mango
#

@ashen grail does an energy acceptor that runs on source instead of RF/FE fit your addon ? Would be cool to have a full magic ae setup

ashen grail
#

ooh, good question

#

i could certainly give that some thought

neat mango
#

also if possible wireless ae using source relay like system would also be pretty amazing :P

#

ae2 is fun

radiant depot
#

So skipping the source to RF part?

#

Probably nice

ashen grail
#

i would definitely need to play a lot further with Ars myself to explore those possibilities, since i'll concede i've so far only used things like spellbooks as a utility for moving around and the sort

radiant depot
#

As for source to RF there's already enigmatic, but direct conversion to AE energy is different

ashen grail
#

my main interest first was to get source working as a key type that AE could manipulate like it already does for Mekanism chemicals and Botania mana via their respective add-ons

bright shore
ashen grail
#

by the way, why is it that i'm simply unable to run my dev env after switching to 1.20?

#

i expect that Ars would have MixinExtras bundled within itself already when adding it as a dependency but pretty much all of my runs instantly crash saying they can't find the MixinExtras bootstrapper, even when trying to set up MixinExtras as an extra dep

#

GeckoLib also seems to be missing from this version pulled off of the Maven

[20:52:21] [main/ERROR] [ne.mi.fm.lo.ModSorter/LOADING]: Missing or unsupported mandatory dependencies:
    Mod ID: 'geckolib', Requested by: 'ars_nouveau', Expected range: '[4.2.1,)', Actual version: '[MISSING]'
radiant depot
#

Are you sure you're using the latest on maven, right?

ashen grail
#

i just now added geckolib so that one's fine

#

but i need to try again with MixinExtras, i was just using the latest stable release of 0.1.1

zealous zenith
#

Shadowed jars aren’t in the maven file so you have to add them as deps as well

ashen grail
#

okay yeah, there we go

#

are Source Jars still the only thing that can hold source or are there any plans for a general "source item" API feature?

shadow helm
#

Only source jar

#

Well, and fluids, if you count Starbuncle Mania

ashen grail
#

that's fine, i just needed to know what to refer to when re-writing the container item strategy for AE2

ashen grail
#

now i will concede i'm not the most well-versed in Forge's capability system so i will need some guidance as to how to proceed further here if necessary

#

i have a local copy of Ars currently open and i've overridden the following two methods in the AbstractSourceMachine class in order to attach the new capability for ISourceTile, where sourceHandler = LazyOptional.of(() -> this):

@Override
public @NotNull <T> LazyOptional<T> getCapability(@NotNull Capability<T> cap, @Nullable Direction side) {
    return CapabilityRegistry.SOURCE_TILE.orEmpty(cap, sourceHandler);
}

@Override
public void invalidateCaps() {
    super.invalidateCaps();
    sourceHandler.invalidate();
}
#

now just before this, AbstractSourceMachine has a few methods which take ISourceTile arguments, so i imagine these should somehow be adapted to check if this SOURCE_TILE capability is actually present before attempting to do anything involving source

actually, was i instead meant to be looking at the SourceUtil and SourceManager classes in this case?

#

is my current assessment correct at all, and if so how might i be able to adapt them easily?

ashen grail
#

does anyone have some sort of existing test setup/world with which i could make sure i haven't broken anything by integrating the new capability within SourceUtil in place of the hardcoded instanceof SourceJarTile checks?

ashen grail
#

i just tried creating the capability directly within my add-on and attaching it to Ars's block entities via the relevant event instead, and everything still seems to work exactly the same so far!

bright shore
ashen grail
#

as you can see here #1041655048574349342 message this already works well enough for storage and IO of source

#

also SourceUtil literally does direct instanceof checks against only SourceJarTile so in the end i'm not sure how important it would even be for the source system to internally make use of the capability over that

#

(i already tried replacing those checks with retrieving the cap from any such BEs and that briefly ended up breaking sourcelinks sending source into jars altogether)

ashen grail
#

i'm assuming that's not the message you wanted to reply to? 😄

bright shore
#

I tried to reply to the first comment, no idea what happened lol 😄

ashen grail
#

lol all g

ashen grail
#

my current guess would be that this might be because i'm attaching the relevant cap to any and all instances of ISourceTile, which just so happens to include sourcelinks themselves

#

hence this could simply be sourcelinks being stuck trying to send out source to themselves over and over again?

#

my assumption seems to have been mostly correct given that right now i'm able to attach a storage bus directly to the now maxed-out sourcelink and see an extra 5,000 source present within the ME network

#

with this in mind, it might be worth considering some sort of extra separation in the current API between block entities capable of holding source and block entities capable of receiving source, then simply having the source jar be an implementation of both of these at once (this suggestion might not be entirely correct)

#

i should probably specify that the end goal of this currently is to have a working P2P tunnel for source with which to be able to, among other things, distribute source generated by sourcelinks to any number of points where a source jar might be nearby

#

also, if i'm somehow shitting this channel up a bit too much with my monologues about this then please let me know

radiant depot
#

Can't you simply exclude the Sourcelink tile from the attach cap event?

ashen grail
#

i suppose that would be an option, yes

radiant depot
#

Or attach a send-only

ashen grail
#

would there be any other such block entities that i'd need to exclude from the cap attachment?

radiant depot
#

Iirc the only ones that can produce source are the Sourcelinks

#

Which should all share the parent class

#

Just make sure the relays work correctly?

ashen grail
#

so something like this should be sufficient, then?

radiant depot
#

It should

ashen grail
#

though i should guess it would work for a sourcelink to send source to a relay, which then sends source out to a jar?

radiant depot
#

Basic and Splitter Relays only send to linked source stuff (with wand)

#

Depositor and Collectors pull or push from nearby

ashen grail
#

oh they override the relevant methods for sending source out, don't they

#

so i should in theory be good already?

radiant depot
#

I have no idea how you implemented it and I'm too tired to look at it rn. So I hope so

ashen grail
#

i'll give it a try

#

yeah i don't think that's gonna cut it unfortunately, so i might just have to shelve this for tonight

#

though i'd be very grateful for any insight that anyone else might have tomorrow on how to accomplish this part of the add-on in the end

#

would it be helpful for me to push my current attempt at the P2P tunnel to the add-on repo for anyone else to have a potential look at?

ashen grail
#

could someone clarify what the significance of the ISourceTile::getTransferRate method is and how i should be overriding it?

desert horizon
#

I notice there's no 3.17.10 on maven... was 3.17.9.554 promoted or something?

ashen grail
#

i've got an attempt here at implementing a proper P2P tunnel for source but it still seems to be stuck currently doing sweet fuck-all. would anyone else here happen to be experienced enough to tell me where i might have gone wrong with it?
https://github.com/62832/ArsEnergistique/commit/0ac0fc8b72ea6837b204dcc0ae5d44ee15528ef9#diff-96cb800f200d023be324bfd978345f568dfe8e6f2985c737a0db1713601972e4

#

test setup currently looks like this with the assumption that the sourcelink would be able to fire into the input tunnel next to it, followed by the output tunnel further away firing source into the jar near it

radiant depot
ashen grail
#

maybe i'm confused on the specifics of what a transfer is supposed to look like then

#

as in, what sort of blocks are even involved in a transfer that aren't, say, relays

bright shore
#

I'm kinda interested in taking a look if you don't figure it out soon
Unfortunately I'm kinda busy for the next couple days

ashen grail
#

that's quite alright

#

most likely what i might have a go at next instead of the P2P tunnel is a spell focus and Glyph of Access ME Network

bright shore
#

What would the focus do?

ashen grail
#

would be the thing to actually link to the ME network similarly to a wireless terminal

#

unless i'm misunderstanding what a spell focus is/does 😅

bright shore
#

A spell focus usually changes how spells act when you cast them or buffs them in some way

#

Not sure what yours would do unless you mean using source as mana in which case baaaad idea

ashen grail
#

nonono

#

so you know how in order to access an ME network through a wireless terminal you first need to link the terminal via a wireless access point (formerly a security terminal)?

#

for the spell to work for a given network you'd in theory be using a spell focus linked to the network you want to access

bright shore
#

Oooh

#

That makes sense

ashen grail
#

is there any way of retrieving the Hand of the player holding a spell book and casting a spell?

bright shore
#

I don't think so

#

You could compare the item in each hand to the casting item in the context though

ashen grail
#

trying to roughly cobble together an "Access ME Network" spell and i'm getting hit with the following so far

bright shore
#

Just use the main hand

#

It really does not matter I think

ashen grail
#

oh, there's a getUsedItemHand method

bright shore
#

Wait except that's for getting the menu right

bright shore
neat mango
#

are we not going to talk about that theme?

ashen grail
#

it's just the logo for an old-ish cancelled TV show i like

bright shore
ashen grail
#

well shit

java.lang.IllegalArgumentException: Can only use this class with subclasses of WirelessTerminalItem
#

i don't think this spell will be possible in the end

bright shore
#

I'm sure it is with enough hackyness determination

#

I can give it a shot this weekend because it also sounds cool

ashen grail
#

be my guest lol

neat mango
#

how do you plan to bind the glyphs to the network?

radiant depot
#

Can't you still make it a subclass of WirelessTerminal?

bright shore
#

^ the focus

ashen grail
bright shore
#

The focus

#

If you need it anyway

ashen grail
#

i was thinking it would be possible to just link the spell book directly using AE2's IGridLinkableHandler

#

cutting out the middleman and everything

bright shore
#

Hmm

ashen grail
#

dunno, it'll take a lot of thought in general

bright shore
#

But what would you do about non-spellbook casting items?

neat mango
radiant depot
#

There's also the option of retrieving the casting item from spellcontext then checking it against items in both hands

#

But well, curio casting things exists

bright shore
#

I thought the issue is the item in the hand isn't the terminal anyway

#

I'd love to try and help but today and tomorrow I'm busy, and then Thursday and Friday I'm working on my Ars PR

ashen grail
#

no rush at all man, seriously

radiant depot
#

Idk what forHand should return

neat mango
#

if you figure out a technique, please let me know as well. I will try to use the same technique for Occultism storage for consistency

ashen grail
#

no guarantees that the technique used here would be applicable to Occultism given the difference in APIs

neat mango
#

accessing network is a non issue. just need a way to bind it to correct network

ashen grail
neat mango
#

some sort of network marker curio or something

bright shore
#

Why not make it a new curio slot? Network focus?

#

Like a focus but without wasting the focus slot

#

Ez fix

#

Curios lets you do it easily

ashen grail
#

true

bright shore
#

Nobody needs more than one

#

It should be fine

ashen grail
neat mango
#

sounds good enough for me :)

#

I don't get to work on my addon till the weekend. hopefully would have finished port by then

desert horizon
zealous zenith
#

That’s provided by the base mod config

desert horizon
#

Oh wait... I'm trying to figure out why the amp limit in harm isn't applying.

#

Or is there no longer a validator limit?

#

In glyph_harm.toml:

    #Example entry: "glyph_amplify=5"
    augment_limits = []```
#

I'm trying to figure out if my configs are out of whack somehow or what.

#

I think so - nuking the common config directory seems to have restored the limit.

#

Upgrading Ars within a single Minecraft installation can lead to weirdness, I guess.

neat mango
#

is that a versioning mistake on maven ?

desert horizon
#

It's entirely possible the versioning scheme changed.

#

Is anyone else having trouble with uploads to curseforge?

neat mango
#

do you know why gradle sync is failing ?

zealous zenith
#

only method ive found to nail down a gradle error like that is to remove dependencies one by one until gradle builds, then you know which dependency is not resolving

#

unless you really are missing patchouli, but ive had it show the wrong dep many times when it was some other one

neat mango
#

yeah gradle is weird like that

neat mango
#

aaaaaa gradle is soo stupid

#

fixed this issue and got a build success. updated geckolib and now it stopped working again

#

bruh the geckolib maven is dead

neat mango
#

Where did all the discount methods move to in 1.20 ?

#

addDiscount() , getNoDiscountCost() and getFinalCostAndReset()

mossy hollow
#

They're an event

neat mango
#

can someone confirm that this is the new versioning format?

neat mango
radiant depot
#

More likely my fault that an extra .0 popped into existence

#

Not Bailey intentional

neat mango
#

hm okay

#

I am trying the newer releases because I want to use neoforge

bright shore
#

um

#

I can't get the ars dependency on gradle to work, I'm trying to port my mod to 1.19

#
Caused by: org.gradle.internal.resolve.ModuleVersionResolveException: Could not resolve com.hollingsworth.ars_nouveau:ars_nouveau-1.19.2:3.17.2.511.
#

what's the maven I'm supposed to get it from?

zealous zenith
#

Blamejared

#

But gradle can mislead you if any are missing

bright shore
#

hmm yea I have that so it must be another issue

#

what do I do then? take out all dependencies and put them in 1 at a time until I find the actual error?

zealous zenith
#

That’s what I did heh

#

Also if you have prog maven delete it

#

Progml

#

Er something like that

bright shore
#

ok

bright shore
#

well, got to the point where the game boots

#

how do discounts work on 1.19.2?

#

how do I add a discount to a spell that's going to be cast?

bright shore
#

like seriously'

#

discounts applied to the spell object don't actually apply on cast

#

and it looks like an Ars bug but I'm not sure

#

and it's driving me mad

bright shore
#

😭

zealous zenith
#

Not quite sure

#

I should just backport the spell cost event

bright shore
#

That might work too

neat mango
#

@zealous zenith can I please have the source files for the spellbook textures ? I would like to create custom inlay/onlay textures while retaining the original base colors

radiant depot
#

They are on GitHub

neat mango
#

not the final images but source files with layers etc (if such files exist)

radiant depot
#

It's one texture with all the layers

#

One file for each color

#

Then the model (in .geo) hides the layers based on the tier

#

You can see it in action with my netherite inlays

neat mango
#

not like that 😅

#

I want to create custom designed books but want to keep the colors like the original (replace the gold pattern with something else to make it different)

#

so if I had the original project files with layers etc, it would be a great help

radiant depot
#

Open the .geo model with the texture and you'll see

neat mango
#

I am aware of the texture and I already use it :)

#

I am talking about photoshop files or something

shadow helm
#

So what you actually want (probably) is the blockbench file?

radiant depot
#

Not even sure there are Photoshop files

neat mango
#

yeah thats what, I want those if they exist

#

my bad, i suck at explaining 😅

radiant depot
#

The texture was most likely made with the model editor

neat mango
#

directly painted on ? I see

#

Gootastic made them right ?

radiant depot
#

Yep, @rugged urchin

#

If actually split files exists, it's worth pinging

#

But don't expect a fast answer due to timezones

neat mango
#

Yeah no issues :)

rugged urchin
neat mango
#

did you directly paint the inlay on the top of the texture or do you have a photoshop/project files with layers and such ?

bright shore
#

how can I force configs to be regenerated?

zealous zenith
#

afaik you can’t unless you change the key

bright shore
#

...

#

would deleting the files force them to be regenerated? lol

#

could always do that on startup

#

I want one of those "regenerate configs" flags in my config

#

so I can have multiple config presets

#

(and possibly that affect not just the addon but Ars too. )

zealous zenith
#

Why do you need to reset something

bright shore
#

well, almost all the ars balancing is based on configs lol

zealous zenith
#

Not very user friendly to overwrite their wishes; just make a new key if it’s something totally different

bright shore
#

I want built in presets

rugged urchin
bright shore
#

the idea was to nuke the ars configs with new presets

#

if they trigger it

#

cause the alternative is to bundle a configs zip file with the jar

#

which, I mean, works

#

but it just feels so jank tbh

neat mango
#

no worries

radiant depot
#

Need to make 16 different copies sadly

neat mango
#

Fortunately Tier 1 books dont have inlays so I dont need to make the base textures/gradients myself (I had forgotten about tier 1 lol)

#

Still gonna be alot of work though

radiant depot
#

Make one, then copy paste the mask?

neat mango
#

Yep thats the plan

neat mango
#

@radiant depot you once said something about attaching a capablility to containment jar. Can know how to do that ?

mossy hollow
#

It should be in Starbuncle Mania sourcecode

neat mango
#

oh cool!

#

What is it used for in that addon ?

mossy hollow
#

It registers a fluid holder capability on mob jars

#

It's in EventHandler.java

neat mango
#

okay got it! Thanks for the help!

ashen grail
neat mango
#

oh sure! Thanks!

#

Attaching a cap looks easy

#

how do you use it ?

radiant depot
#

What, the cap?

#

Once whatever cap is attached, you can use getCapability to retrieve it

#

It's basically data saved to nbt

#

In the tank example, I'm using Forge premade capability and handler

neat mango
#

for fluid cap, you created a fluid tank, what do you use for items ?

radiant depot
#

FluidHandlerItemstack or similar

#

For fluids and energy there are few templates

#

And the capability is different for items

#

With the fluid jar I made a subclass of it to redirect the cap methods to the tileEntityData inside the item

#

But that's more like a little hack to simplify

neat mango
#

I see

#

I am attaching a capability for items so that Occultism spirits can interact with it

#

Can I do it so that the capability is only exposed for special types of mobs inside ?

#

would something like this work ?

#

so it wont expose the cap if there isnt a spiritEntity

ashen grail
#

quick question: is the Amethyst Golem supposed to keep firing the particles it does when converting amethyst to budding amethyst even when the block in that place is already a budding block?

#

i assume that's meant to be for accelerating the growth of a cluster, actually

neat mango
#

is there a way to override getCapability of ContainmentJars only for specific behaviours/mobs ?

#

I am assuming there isnt. Any other way to achieve this maybe?

radiant depot
#

No, you have no context when it's called

neat mango
#

the thing is, the spirits already have an exposed item cap. I wanted to just pass this on to the Jar in some way if possible

radiant depot
#

You could have the jar scan the entities nearby

#

But idk

neat mango
#

nearby ? no I want connect the cap of a spirit stored inside the jar to the jar itself

shadow helm
#

Can you modifiy the ritual of containment to check for spirits and attach the cap to the jar then?

mossy hollow
#

Or maybe add an API method for registerCapabilities when a jar is created, and then implement that for the spirit entities custom mob jar behaviour

radiant depot
#

Ah, you mean the spirit inside it?

#

I was thinking to transporters

#

You should be able to access the tile fields in the cap provider

#

You know, for the "only starbies and co can extract" you talked about earlier

#

Shouldn't be hard if you just need to redirect

neat mango
neat mango
radiant depot
#

I'll use my code as quick example

#

ICapabilityProvider provider = new ICapabilityProvider() {
@Override
public <T> LazyOptional<T> getCapability(Capability<T> cap, @Nullable Direction direction) {
if (cap == ForgeCapabilities.ITEM_HANDLER && tile.entity instanceof Spirit) {
redirect to spirit#getCapability;
}
return LazyOptional.empty();
}
};

        event.addCapability(prefix("extra_item_handler"), provider);
#

Wouldn't this work?

neat mango
#

oh

radiant depot
#

I'm not at pc so I can't neither check nor write actual code

neat mango
#

yeah that should work lol

radiant depot
#

But you should get the idea

ashen grail
#

you could simplify that a bit by going

if (entity instanceof Spirit spirit) {
    return ForgeCapabilities.ITEM_HANDLER.orEmpty(cap, spirit.getCapability(cap, direction);
}
#

well actually it would be redundant since you still need to return empty for other entities

neat mango
#

are starbucles bugged on 1.20 ?

#

I cant seem to set a chest as input for latest version

neat mango
#

@radiant depot thanks a lot! Your solution worked wonderfully!

bright shore
#

ok so dumb question but

#

why are there 2 fluid capabilities yet only 1 item or energy capability? in forge?

radiant depot
#

Maybe because Buckets

#

Not sure tbh

bright shore
#

probably since one is item and one is normal

#

but, like, items can have capabilities

#

and they use the same item inventory and energy capabilities

#

and yet this implies items and blocks might use different fluid capabilities?

#

oh yea it's because buckets can be emptied and become a different item

#

so the item fluid handler extends the fluid handler so it can give it an itemstack

#

it returns the new stack

flat spindle
#

When I use .length() on spell.spellResolver.spellContext.getSpell().serialize()

it outputs 17? altough the array is clearly 2 as seen

#

the first debug message is the actuall array

#

and the second is the length

#

It seems to be counting the Character length?

#

okay im stupid lol

#

serialize gives a string

flat spindle
#

Okay so ignoring my blunder from just now

#

how can I give a spell a lot of pierce

#

Like a lot

#

im using this to clear the spells effects

#

((EntityProjectileSpell) entity).spellResolver.spellContext.withSpell(Spell.EMPTY);

#

I assume inside .withSpell I can do something that would give it the desired spell?

zealous zenith
#

Ya just set the new spell in that

#

Though you may need a new resolver if you change the length of it, like how linger and burst work

flat spindle
#

I guess I should specify

#

I am trying to give the spells im targetting basically no clip

zealous zenith
#

Look at the spell object and it’s just a list of spell parts

#

Make a new spell with the contents of the original one, modified to what you are trying to achieve

#

Deserialize is for nbt

flat spindle
#

aha

flat spindle
#

Right so,inorder for me to construct a spell. I have to pass in a AbstractSpellPart right?

#

If so, i am terribly failing at that

#

Since I am terribly failing at constructing AbstractSpellPart

bright shore
#

Well, it's abstract lol

#

As a general rule each glyph you wanna add should extend the correct glyph type class

#

So effects should extend AbstractEffect and override On resolve block and on resolve entity

#

Then construct an instance of that and register it

#

See how all the effects in ars have a static instance?

#

The ars API class has a register method on 1.19 and I think there's a registry util in 1.20 but IDK for sure

flat spindle
#

I think its probably my java knowledge crippling me

#

imma go learn some more

#

as Im definetly going into the wrong direction lol. im nott trying to make a glyph or anything. just want to add pierce to a existing spell entity

bright shore
#

Oh

#

Then you get the pierce instance and add it to the spell which is a list

#

I think

#

Well, spell wraps a list

flat spindle
#

I assume thats what ive been trying to do?

((EntityProjectileSpell) entity).spellResolver.spellContext.withSpell(spll.add(pierce,100));

spll and AbstractSpellParts are just placeholders. where spll is just a Spell spll = new Spell()

And pierce is me trying to do the AbstractSpellPart thing

#

but me doing the AbstractSpellPart part is clearly BS

#

how do I get the pierce instance?

mossy hollow
#

AugmentPierce.INSTANCE

#

Or do you mean as part of a spell?

#

That should be fine I think

flat spindle
flat spindle
mossy hollow
#

You should be able to use AugmentPierce.INSTANCE

flat spindle
#

oh it does work!

#

Holy macaronies

bright shore
mossy hollow
#

Can you summarise what your actual goal with this code is?

bright shore
#

Is this for an apotheosis-level op spell prism?

#

And BTW if you want the projectile to go further you need to increase the pierce property if the spell projectile not modify the spell

flat spindle
# mossy hollow Can you summarise what your actual goal with this code is?

https://www.youtube.com/watch?v=EpS3nPNzGgk

Im reworking this block, and one of the issues was, that the orbiting spells are vulnerable to being destroyed by surrounding blocks. So I wanted to give them noclip. and A comical amount of pierce seems to do the job

Create Arcane Engineering is a sequel pack to Above and Beyond, currently being developed for 1.18 by Me and PigTurtle#2891.

In this video, the Source Time Crystal is shown, it requires a combination of set spells that make it transform into something otherworldy, yet to be seen...
Come join us on our development journey!
https://discord.gg/h4...

▶ Play video
ashen grail
#

could i ask one of the admins to change the title of my thread for Ars Énergistique to remove the [WIP] from the title now that it's been approved for release on CurseForge?

#

#1041655048574349342 message

bright shore
#

I think you can do that with the edit post option lol, can't you?

bright shore
#

Lol

flat spindle
#

....

#

how'd I do that xD

ashen grail
zealous zenith
#

can you do it now?

ashen grail
#

yup, perfect

#

thanks!

flat spindle
#

((EntityProjectileSpell) entity).spellResolver.spellContext.getSpell().add(AugmentPierce.INSTANCE,100);
So i guess this is complete bs im doing here

#

assuming I just want to change the pierce property

zealous zenith
#

pierce only affects certain effects, so you would need to append it to the proper one

flat spindle
#

lol

#

can you give me an example of one it appends to?

radiant depot
#

If you use the getSpell().recipe.add(spellpart, index) the index specifies where the spellpart will be placed, the rest of the spell will shift to the right

bright shore
#

But that doesn't help once the spell is in the air I thought

flat spindle
#

right

#

okay I think its almost figured out

#

[pierce, pierce, pierce, pierce, pierce, pierce, pierce, pierce, pierce, pierce, pierce, pierce, pierce, pierce, pierce, pierce, pierce, pierce, pierce, pierce, pie...

#

is the spell right now lol

#

I just to add projectile into the first entry it seems

#

Right,but that needs AbstractSpellPart again

#

does anyone know what id have to do to get the projectile instance?

radiant depot
#

I have an example in my piercing lens

flat spindle
#

Right

#

I solved my problem

#

by just changing the spell NBT

#

lol

#

and completely scrapping all of that jank I did before

#

Thanks for trying to help me

flat spindle
#

right here this is lol

neat mango
#

can I post sneak peeks in #addon-announcements ?

radiant depot
neat mango
#

I am blind :/

neat mango
#

any idea why these arent coloured ?

#

I have added the event listeners

zealous zenith
#

is the event firing

#

pretty sure you are missing the mod bus specifider

#

@Mod.EventBusSubscriber(value = Dist.CLIENT, modid = ArsNouveau.MODID, bus = Mod.EventBusSubscriber.Bus.MOD)

zealous zenith
#

thats still on the forge event bus tho

#

I think?

#

has to be on the mod event bus

neat mango
#

oh

#

how do you get that

zealous zenith
#

Not sure how you do it without the annotation

neat mango
#

FMLJavaModLoadingContext.get().getModEventBus().register(ClientEventHandler.class);

#

Got it working! :)

#

I am assuming I will have to make recipes for Dyeing myself ?

#

I will do that after I make new textures

radiant depot
#

Just make a recipe of each piece with the dye recipe type (the Ars one)

neat mango
#

yeah thats pretty straightforward

#

is it possible to export modules as separate jars/mods or should I just make separate mod repos ?

radiant depot
#

If you know gradle enough, maybe?

#

Mekanism uses the same repo for main mod and its modules

#

I'd just say use different repos, but idk what you actually mean for modules

neat mango
#

I am considering whether to break down my addon into separate mods so that players can pick and choose mods and I get a better dev experience

radiant depot
#

Apotheosis-like modules are also an options

#

1.20 also have feature flags

neat mango
#

Hey so I have decided to break down my addon into 3 mods (as I said in #off-topic ). can you please update the links in #addon-index ?

#

(I wont be spamming #addon-announcements . Will just drop a message when other 2 are done)

#

for now Ars Ocultas is Occutlism integration. Both 1.19.2 and 1.20.1 are supported

#

Blood Magic addon will release when the BM releases on 1.20 directly

neat mango
#

um @radiant depot ? (not in a hurry, just need a confirmation lol )

radiant depot
#

Write an actual description so I can just copy paste?

#

Not sure about the plans otherwise

neat mango
#

hm okay. How about I will just give you a big message with everything later on then ? Instead of updating it twice, you do it just once with the whole message ? sounds good ?

radiant depot
#

I did a little update before, to add Occult

#

But it is better for you to write your own presentation

#

Even if the char limit is kinda annoying to squish more mods in one

#

I could think about making an addendum message just for you, like the other devs that came before

neat mango
#

@zealous zenith how did you sync all versions of Ars Nouveau from Curseforge to Modrinth ?

mossy hollow
#

He got special help from a modrinth developer

neat mango
#

I see

zealous zenith
#

Did it happen? It was waiting on code changes lol

neat mango
#

not yet

#

I was under the impression that it already happened but I was wrong

neat mango
#

Ars Creo looks like its done

mossy hollow
zealous zenith
#

Ye their tool can’t update existing projects it has to create a brand new one

#

So ars is stuck since I made it and published it not realizing

shadow helm
#

Delete and redo is not an option?

mossy hollow
shadow helm
#

crap, you're probably right

neat mango
#

that one version of ars nouveau already has 2k downloads

mild flax
#

Forgive me if this is a bad question/doesn't belong, but I'm playing in a server with a bunch of mods with only base ars and ars creo (Create compatibility I think which I don't tinker with create anyways) are there any additional ars mods that work with 1.20?

#

Was told Elemental couldn't work because it was 1.19

shadow helm
#

There's pins of most addons in #1123778156386590770 , but they aren't officially released yet because they're still in testing

mild flax
#

Ah okay I'll check it out, thanks!

bright shore
#

is there an easy way to sync data on a ritual from server to client?

loud widget
#

do i need some kind of permission to start making an addon for this mod? Or is it just grab the example repo and make it?

bright shore
#

just grab the example repo and make it

#

that said it's considered good manners to check out the other threads in #1019655289873641555 and make sure you aren't copying somethign someone else already made

loud widget
#

sure, ty 🙂

loud widget
#

I want to make a Builder's AOE augment, which should only apply to Effects that i consider to be used for building. Is there a way to set within the augment which Effects it can be used on? (or is it only the other way around, where i can only set within the effect which augments are compatible with it?)

radiant depot
#

Other way around

#

Which means iterate over said effects, then add your custom augment to their "compatible augments list"

loud widget
#

where (which file, in which method) should i add the augment to the compatible effects? i'm already adding to the effects that i created using the getCompatibleAugments(), but i want to add the augment to already existing effects like mageblock

radiant depot
neat mango
#

@zealous zenith you should talk to Prospector from Modrinth if possible. They just moved all blood magic versions over to Modrinth on request

#

They had to delete old project and recreate one but it was pretty fast and automatic

pearl gyro
#

hey, i'm working on basically the equivalent of the ars wiki for hex casting's patchi book, and someone suggested having it be possible to see addon content on the main book page instead of having to look at each addon's web book individually. so - how does the ars wiki fetch addon data?
(i did look around for the repo with the ars wiki code and couldn't find it, though i may just be blind)

radiant depot
#

@shadow helm

zealous zenith
#

It fetches from git links afaik

shadow helm
#

I've got a Svelte Store (think Redux Store, or RX-JS observable) that contains the addons to be loaded. It's synced with the users LocalStorage and manipulated here:
https://github.com/Sarenor/arsnouveau-wiki/blob/dev/src/lib/components/addonMenu/AddonSelectionModal.svelte

It's defined here:
https://github.com/Sarenor/arsnouveau-wiki/blob/dev/src/lib/stores/addonStore.ts

And the difference between loaded and selected addons is checked and reconciled here:
https://github.com/Sarenor/arsnouveau-wiki/blob/bf2a4efbbdaf89041ba4d1b9923f01e39a95745b/src/lib/setup/loadAddonFiles.ts#L2

#

Basically I've got a lot of other Stores for all the patchouli Data (pages, textures, translations...) and whenever an addon gets selected, I pull the zip file for said Addon from Github, parse the zip file until I have only the data remaining that I need and then append said data to the stores for patchouli data, translations, etc.

Svelte Reactivity automatically updates everything as soon as a store changes and boom, Addons are loaded 🙂

shadow helm
pearl gyro
#

hmm

shadow helm
#

If it doesn't, shoot me a message. I'll even be happy to jump on a voice call as soon as the coffee has hit and I'm no longer a walking corpse 🙂

pearl gyro
#

I understand the concept, I think (thanks for the details!)

#

i'll take some time to stare at it a bit more

#

the thing about hexdoc is that we (mostly) generate static pages ahead of time, and it's written in python, so all the page rendering is in jinja templates, and it all turns into a static html file served by github pages

#

it seems like your stuff is happening a lot more in the browser?

shadow helm
#

All addon stuff is browser only, yeah.
The Ars Nouveau pages are loaded and generated serverside and are actual html when they reach the client, but addons are only ever clientside

#

SvelteKit is cool as in that it lets you give out html to requesting clients, but once there, javascript will take over and turn the page into more of an SPA

pearl gyro
#

hmm, interesting

pearl gyro
#

this definitely helps, at least it's giving me a concrete direction to go in

#

somewhat thinking out loud, but - with how hexdoc is structured, i'm thinking it might be easiest to prerender each category heading and entry separately, serve them as a data file or zipped file structure or something, and assemble them based on whichever addons are selected

#

links will be interesting. it probably shouldn't be an external link if the target is available on the current page

#

ok this is great, ty for the info noraGreat_Sun

#

i guess while i'm here, here's a bonus screenshot from some testing i did a few days ago koisip
(i wanted to see if it would work for a non-hex-based patchi book, ars was a convenient target)

gusty jacinth
#

This is probably a stupid question but how do I use ars nouveau items for my recipes?

mossy hollow
#

I'm finally getting around to documenting Ars Artifice, how do I get my patchouli pages to show in the worn notebook?

#

I have a PatchouliProvider producing the pages and as far as I can see it's the same as Ars-Nouveau-Example-Addon and same as AE

zealous zenith
#

Is that still possible in 1.20? @radiant depot

#

Patchouli did something with the book addon system

mossy hollow
#

I'm still 1.19.2

zealous zenith
#

O

#

Maybe check ars Creo, it’s something with your book.json

mossy hollow
#

book.json? huh

#

that explains things

#

I was only looking at generated resources

radiant depot
#

Yeah, needs the book.json to tell it

#

While for 1.20 you don't need it and instead need to move all the patchouli stuff to same directories as Ars

gusty jacinth
hasty vapor
#

how can i create new threads with effects from other mods ex. malum scythe proficiency

zealous zenith
#

You would need an addon for that, you could follow the perk classes in Ars nouveau

hasty vapor
#

mmk

wide swan
#

Are there some changes for the armor rendering in ars?
I will look into it but I am very busy right now.
I got some crash reports for my armor.
Seems like the texture path is null.

zealous zenith
#

A crash or log?

#

In 1.20 it logs but no crash

#

Or optifine makes it missing

wide swan
#

Ah the model is null. But I didn't changed something.

zealous zenith
#

Oh might have been one of Alex’s PRa but not sure

#

Probably need to update to latest AN

#

I haven’t been very active lately

wide swan
#

Maybe caused by this. I think these lines are new.

#

I will try

#

Because I found the old lines in the armor item itself.
I will change it maybe it could fix it.

radiant depot
#

Ah yeah

#

It's because they were causing the texture not found error

#

It's only a 1.20 issue

#

Geckolib said it's weird but we should pass a texture anyway with the getter override

#

Just override your armor's get texture to something

#

It shouldn't be used by anything

#

Except maybe optifine

#

Which shifts their bug from rendering purple squares to render the texture wrong

wide swan
#

is it because of my mappings?

radiant depot
#

Did you override getArmorTexture in your ArmorItem class?

#

Cause I was obv crashing too with Elemental after the change

#

But now that's solved too?

wide swan
#

I think I got it

#

Thank you

ashen grail
#

@radiant depot any chance you could include Ars Énergistique under the "other compat/integration mods" message in #addon-index?

radiant depot
#

Did it finally release?

gusty jacinth
#

How would I use source as a requirement for a custom recipe? Is it forge energy or liquid or something else?

bright shore
#

ok so it's not FE or a fluid, it's actually it's own thing

#

and it doesn't have a capability either, but Ars provides a utility class called something like SourceUtils or whatever which has a function to get source in an area. Probably take a look at the ritual brazier or something, IDK

#

as far as recipes goes though you'd need custom code for it since I don't think you have any datapack-related options

#

(unless it's an enchanting apparatus recipe in which case it's just an integer value you set but I forget the name)

ashen grail
#

i suppose i could have been much clearer about it though

neat mango
#

do you mind if I put this discord server's link on CF/Modrinth pages for #1131511198156857495 ?

#

for support and stuff ?

zealous zenith
#

That’s fine

shadow helm
#

Sounds backwards, but front loading the initialization once and keeping it loaded and accessible is faster and easier than going to the zip file again and again

#

In other news, my gate's changed and the flight delayed.
Yaaay, air travel

mossy hollow
#

Safe flight Sarenor!

neat mango
#

okay! that helps a lot!

#

can it automatically fetch the zip files somehow ? or how do you update the docs ?

shadow helm
#

The main docs are integrated during build.
I mean to build a github action to automate that after bailey releases a new version

#

can't dynamically fetch it from github since traffic costs are horrible. Might be something to try with github pages, maybe that works better

#

But it still uses a fetch call to get the zip so you can switch locations easily

shadow helm
mossy hollow
#

Welcome home

neat mango
#

can I know your thoughts about #1110758496045121688 ?

#

is it going to make into the base mod ?

shadow helm
#

I'm not 100% sure if there's a final consensus, but I think I remember the general sentiment of
"it's not worth it, people just use it for more aoe / amplify / harm delay spam instead of finding cool/unique combinations, so the 10 glyph limit is fine"

Which, since I couldn't think of something that isn't just "the same thing just bigger" with more than 10 glyphs either, is quite understandable.

Only exception there is maybe bigger sequences of filters or other meta glyphs, that's still a problem without a solution afaik

mossy hollow
#

I think putting more caps on aoe and amp and delay, instead of limiting the glyph amount would be better

shadow helm
#

Don't say that where normal users read, I fear you'd get to meet some torches and pitchforks otherwise 😉

mossy hollow
#

Perhaps yeah

shadow helm
#

Not a bad thought though. Max 2-3 delay s per spell seems valid, max 2-3 aoe / pierce per glyph or even spell seems valid as well

#

projectile pierce pierce break aoe aoe aoe pierce pierce pierce
should still work since it's a beatifully efficient spell.
So, max 3 aoe/pierce per glyph it is 😁

neat mango
#

so I was thinking of how we could get #1110758496045121688 in a meaningful way and the first thought to me was a Gun + spellbullet system. A bullet is a normal 10 glyph spell and multiple bullets could be combined to create a compound bullet

#

but at the same time if people use it to spam AOEs or amplifies, it will be very boring

mossy hollow
#

I mean we have the ability to limit augments or say a glyph conflicts with another (linger/wall), a way to configure a limit of amount of delays in a spell, especially alongside damage glyphs like harm, etc.

#

Could also then create abstract parent glyphs like "DamageGlyph" that harm and explode extend, which inherit all this configs by default

shadow helm
#

I think half this server has either thought about how to implement a spell gun or is salivating at the thought of a spell gun at this point 😁

neat mango
#

I know

#

I actually got the idea from you and SadieLuna talking about Wizard with a gun ( i tried the demo)

mossy hollow
#

I would 100% clear any recipe for a spell gun in an SMP

neat mango
#

what does that mean ?

shadow helm
#

That it's a recipe for Shenanigans and Jarva doesn't trust his players with it, so he's going to make the recipe invalid and the gun therefore unobtainable (at a guess)

radiant depot
#

The 1.20 demo is also an opt-in as opposed to the 1.19 that was forced infinity

neat mango
#

oh dont worry. I dislike game breaking mechanics and OP stuff as well ( unbalanced OP stuff) . I will make sure that it is balanced

radiant depot
#

So maybe that's a point in favor of it as not standard play?

shadow helm
# neat mango but at the same time if people use it to spam AOEs or amplifies, it will be very...

Since spell bullets are distinct from spells (kind of like how Jarvas Ars Artifice's contingencies are distinct) you can introduce your own table, gui and spell bullet validator.
If you don't want to allow more than 1-2 aoe s per bullet and have a special validator for compound bullets, that's completely fine!

Even better than a special validator for compound bullets, make it logic that prints out a message a la "a bullet can't contain this much spell pow(d)er, the overall area of effect has been reduced to 2 aoe " and just consume the additional aoe s.

radiant depot
#

Wanna also point out that in 1.20 we have augment cost overrides

#

Aka make augments more expensive for specific glyphs

neat mango
zealous zenith
#

I want to add infinite spells but it needs its own system and rules

#

I can merge Alex’s stuff behind a config though

shadow helm
neat mango
#

do you guys like the concept though ?

#

I want this to be the first addition to Ars Oscura but I wanna make sure this go well with the base mod and addons. Dont want to ruin experiences

shadow helm
#

If I still had paid days off left over, I'd have blocked of the <t:1697637120:d> - <t:1697809920:d> because I'm so hyped for wizard with a gun.
Of course I like the concept of crafting spell bullets and having powerful single shots to ruin someones day!

radiant depot
#

We can hide it more by switching the book gui class tho

#

If it is used only in few instances

zealous zenith
#

@mossy hollow do you know what in the heck is wrong on the 1.20 publish action? I added the exact resolver and the 1.19 one published correctly but 1.20 still published to 1.0 sad_whistle

#
          name: Ars Nouveau 1.20.1-${{ inputs.version }}
          version:  ars_nouveau-1.20.1-${{ inputs.version }}
          game-version: 1.20.1
          changelog: ""
          version-resolver: exact

mossy hollow
#

Curseforge and modrinth or just curseforge?

radiant depot
mossy hollow
#

I know why

#

I'm pretty sure, lemme double check

#

game-version isn't a variable mc-publish accepts

#

So I'm pretty sure it publishing/determining 1.19 was a fluke

#

Lemme PR

neat mango
mossy hollow
#

yes, plural

neat mango
#

maybe this is why it worked before

mossy hollow
#

It's not, I checked

#

minecraft dependency isn't declared in mods.toml

neat mango
#

interesting

radiant depot
#

If you wanna give it another try after "fixing it", I have an hotfix PR laying around.

#

(Talking to Bailey)

mossy hollow
#

Made two PRs

#

pushed two more commits to remove all hardcoded versions other than the env var

radiant depot
#

Let's not forget the gravity ritual

zealous zenith
#

ya I have a lot to merge

#

goo made the shuffle art too

radiant depot
#

New one?

#

Bye shuffle

mossy hollow
#

it was changing to dice right?

rugged urchin
#

Yeah it's just a picture of a die face and the name is changing to Randomize instead of shuffle to keep the term more general since it's been developed to have more and more use cases

neat mango
#

@zealous zenith I am talking to klikli about alternate styles (other than graphs) like traditional pages . Is there something you would like ? for modonomicon

neat mango
#

does 1.20 ars nouveau uses the new patchouli system ?

zealous zenith
#

New patchouli?

radiant depot
#

you mean the planned one?

neat mango
#

resource pack system or something

#

this one

radiant depot
#

ah yeah, just let the datagen do its thing

neat mango
#

I am looking into how to add entries

radiant depot
#

if you were overriding the getPath, don't

neat mango
radiant depot
#

everything goes in the same folde as ars

#

not elegant, but this is it

zealous zenith
#

What does patchouli do when you exceed their category count?

#

Ars omega adds a handful too

radiant depot
#

i can't remember if i saw that happening

#

with old arsenal + omega it was either happening or close to

#

cycro's mods also added categories

#

so you would probably discover that with a 1.16 instance

rugged urchin
#

Need to get Archouli going again

radiant depot
#

I'm still bamboozled by the fact that i managed to un-hardcode the Ars Ecclesia recipe pages

#

but it would be a long way to make it as data driven as patchouli

#

starting directly from its serializers might make it way less annoying than we all think

neat mango
#

hey addon devs, is there a convention you guys follow for patchouli documentation ?
I was going to add a new category entirely but it would have been cool if there was an "Addon" Category and we all could add our content there as a subcategory
(for things dont belong in other categories or if you simply wish to have a different place for documentation)

bright shore
#

my patchouli documentation is sort of... cluttered (for Omega)
I added nested categories as much as I could, to reduce clutter on the main page, but I still add 3 new categories (tier 4 glyphs, sigils, and demon realm) which is kind of a lot. As far as subcategories, I have 3 in my own categories, and 1 in magical equipment.

That said, Omega is sort of unique because of how the progression and systems are structured requires this.

For a more normal addon, I imagine the convention is to create a single new category for the addon as that's what I've seen things like elemental do. You can include a summary of changes/new things there, but put anything like glyphs/machines/etc in the base ars category it would go in. This is what I plan to do for Industria, since it is a pretty normal addon akin to scaelas actually.

radiant depot
#

I don't make categories but straight up add pages to the right one

#

I made the summary of misc stuff in the intro chapter since it did not fit anywhere else

neat mango
#
[06Oct2023 22:58:28.332] [Server thread/ERROR] [net.minecraft.server.MinecraftServer/]: Encountered an unexpected exception
net.minecraft.ReportedException: Ticking entity
    at net.minecraft.server.MinecraftServer.m_5703_(MinecraftServer.java:897) ~[server-1.20.1-20230612.114412-srg.jar%23537!/:?]
    at net.minecraft.server.dedicated.DedicatedServer.m_5703_(DedicatedServer.java:283) ~[server-1.20.1-20230612.114412-srg.jar%23537!/:?]
    at net.minecraft.server.MinecraftServer.m_5705_(MinecraftServer.java:814) ~[server-1.20.1-20230612.114412-srg.jar%23537!/:?]
    at net.minecraft.server.MinecraftServer.m_130011_(MinecraftServer.java:661) ~[server-1.20.1-20230612.114412-srg.jar%23537!/:?]
    at net.minecraft.server.MinecraftServer.m_206580_(MinecraftServer.java:251) ~[server-1.20.1-20230612.114412-srg.jar%23537!/:?]
    at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.lang.NoSuchMethodError: 'void com.mystchonky.tomeofblood.common.glyphs.SentientHarmEffect.attemptDamage(net.minecraft.world.level.Level, net.minecraft.world.entity.LivingEntity, com.hollingsworth.arsnouveau.api.spell.SpellStats, com.hollingsworth.arsnouveau.api.spell.SpellContext, com.hollingsworth.arsnouveau.api.spell.SpellResolver, net.minecraft.world.entity.Entity, net.minecraft.world.damagesource.DamageSource, float)'
    at com.mystchonky.tomeofblood.common.glyphs.SentientHarmEffect.onResolveEntity(SentientHarmEffect.java:69) ~[tomeofblood-1.20.1-0.1.2-all.jar%23520!/:1.20.1-0.1.2]
    at com.hollingsworth.arsnouveau.api.spell.AbstractEffect.onResolve(AbstractEffect.java:55) ~[ars_nouveau-1.20.1-4.4.0-all.jar%23334!/:4.4.0]
    at com.hollingsworth.arsnouveau.api.spell.SpellResolver.resolveAllEffects(SpellResolver.java:188) ~[ars_nouveau-1.20.1-4.4.0-all.jar%23334!/:4.4.0]
    at com.hollingsworth.arsnouveau.api.spell.SpellResolver.onResolveEffect(SpellResolver.java:153) ~[ars_nouveau-1.20.1-4.4.0-all.jar%23334!/:4.4.0]
#

any clue why this could be causing a crash ?

#

SentientHarm implements IDamageEffect already so it should have that method

#

(I simply implement the interface and do not override the default methods )

radiant depot
#

Rebuild it

#

Attempt damage becomes boolean

#

It was a commented TODO

neat mango
#

ah

#

make sense. I will build it against the new version of ars nouveau

radiant depot
#

I don't know when it was merged tbh

#

I believed it was already changed two months ago

#

It basically carries over the result of hurt()

neat mango
#

Yeah I still am on forge version since the neo version were super unstable then

radiant depot
#

Or of canDamage if that one fails

neat mango
#

@shadow helm do you happen to know why the dynamic-wiki works on chrome and not on firefox when testing locally ?

shadow helm
#

Since I usually use a chrome derivate: no clue.
I can check once I'm done with cleaning and can sit down at my pc without getting shot by my partner though

neat mango
#

oh no issues

#

it probably something wrong from my side. maybe I messed up my hosts file or something

wide swan
#

How hard is it to add an armor material to ars?
I am planing an addon with a higher than heavy

#

It would be dyeable

neat mango
#

pretty straightforward

#

armor material is separate from ars perk system.

#

in your armor class, just supply with a predefined material or a custom impl

radiant depot
#

Yeah, I'm confused on why are you asking this

#

You already made Ars armors with your add-on Verox

wide swan
#

I know but it uses heavy. I only wanted to know if I have to pay attention to something

radiant depot
#

Materials are basically records to store repair material, armor stats etc.

#

Only vanilla features use that

wide swan
#

I did it like that

shadow helm
neat mango
#

then it is definitely something wrong from my side

shadow helm
#

Vivaldi gang for life, I'm sorry. Didn't need to debug browser specific issues since then

neat mango
#

well its not browser specific issues when chrome abuses its power lol

mossy hollow
#

Vivaldi? I think I used that once upon a time

neat mango
#

on another note, is it possible to generate markdown files via some sort of buildstep in NodeJS ?

#

I have never done web/JS stuff before

mossy hollow
#

What are you generating markdown from?

neat mango
#

okay awesome. I am gonna experiment a bit and see if I can generate documentation from patchouli

neat mango
#

I have this website which I would like to automate instead of manual

neat mango
shadow helm
#

With a quick search I didn't find any generic packages.
Since a JSON object can contain whatever, that makes a certain amount of sence.
Markdown's just text with a bit of #### magic thrown in anyways, so you're probably served best doing it from hand

neat mango
#

no I think generating files should be straight forward with something like fs module.

#

but how do run JS as a build step

#

also should I try/learn TS instead? Is that better ?

shadow helm
#

yes

#

so much yes

#

it's just JS with a bit of paint anyways

#

and you can write whatever you want/need in your package.json scripts so you can do something like:

    "generateDocs": "node /path/to/generate/docs/file"
neat mango
#

oh cool

#

I am doing it this way because this feels simpler. I just read and convert patchouli Json into a markdown/mdx based folder tree and docusaurus will handle everything (static site + algolia search)

shadow helm
#

if you're statically building, that's completely correct.
The initial idea behind the wiki was for it to be always up to date by always fetching all the data from github when needed

#

Sadly, traffic costs made that impossible

neat mango
#

JS/TS is very annoying for scripting. running simple commands like download and delete files is hard

shadow helm
#
#

At least for deleting, you can do things like

    "deleteDocs": "rimraf /build/docs"
#

But yeah, for something called XScript, it's not really a scripting language as you'd expect shellscripts or ruby or groovy to be.
Exaggerated, but it's the result of someone dynamicallifying the web browser in 10 days and millions of people building on top of that.
Never really intended for simple shell scripting tasks.

But, with the same spirit that humanity made Doom run on fridges, toasters, etc, Software Engineers have used JavaScript for everything from frontend, to backends to databases to using a js framework for infrastructure

Adapt

React for your infrastructure.

neat mango
#

lol

#

I have never used react.

neat mango
shadow helm
#

No it's perfect.
Rimraf is just if you want do do it quickly without writing a script for it.
If you already have a script that does everything (delete, build, etc) no need to change it

neat mango
#

should I move this conversation to somewhere else? Its not exactly addon chat anymore :P

shadow helm
#

Ehhhhhh.... With a bit of good will it's still General & Development Help/Conversation.
Just ignore the addon category wrapped around it!

neat mango
#

lol okay

#

I wanted to ask is TS actually the next iteraction of web? are there no alternatives ?

shadow helm
#

There's people using https://webassembly.org/ and rust to build websites.
Not saying that they're right or that's the future of web, but js/ts aren't the only way.
And since TS is just JS with a bit of paint, anyways it's not the next step of anything. You're still running JS when writing TS. It's just less painful to write

neat mango
#

I find TS harder since the syntax is very different (like for imports)

shadow helm
#

It's a learning curve, but it's a lot better than a couple of years ago, I'd say.
It used to be that you need to add third party types for everything since most libraries didn't ship their own.
Now you mostly get types shipped with the library, making imports easier again.
Keep at it, it's going to be better 🙂

zealous zenith
#

Working in ts for 4 years and couldn’t do an import without ide help still probably

#

So confusing with all the different ways

shadow helm
#

Damn it Bailey, I'm trying to be encouraging here! angerbuncle

zealous zenith
#

Webstorm is based, never remember silly details 🙏

neat mango
#

how do I wait for https.get() to finish ?

shadow helm
#

And now you're into the weeds.
Modern way is to declare your function async and then just await the get

Const response = await https.get()

alternatively you can do promise then callback if that's more familiar and welcome:

https.get().then(
  GetReturn => { /* do the thing */}
)
#

Js async is fun!

neat mango
#

I want to wait the for the process to finish and then continue with rest of the script. The second method would mean that I would dump all the code into a then block which is kinda ugly

shadow helm
neat mango
#

SyntaxError: await is only valid in async functions and the top level bodies of modules

#

aaaaa this is annoying

#

I am gonna imitate python and create a fake main() method and dump everything in that

shadow helm
neat mango
#

yeah thats what I am doing now

shadow helm
neat mango
#

now I am just failing to download a zip. I am just gonna call it a day

shadow helm
#

If you're downloading it from github, be careful about CORS and API Quotas.
Depending with what you download it, you'll need to do something about CORS and depending on how often you attempted to download it you only have 50 requests (unauthenticated)

shadow helm
#

Especiallx those one's, yeah. One of the biggest problem with the early wiki was running into quota limits until I bumbed it with an access token. Even after that we still sometimts hit th quota before I internalized the zip

mossy hollow
#

@shadow helm Do you have any stats on the wiki's storage, bandwidth, etc. usage?

#

Like any analytics on page views or anything to judge how many requests are served in it's every day use

shadow helm
mossy hollow
#

Much appreciated

shadow helm
#

I'd be curious for what though 🙂

neat mango
#

the script to fetch sources will be manual so I dont have to worry about limits but will be still nice to know how frequently I can update

mossy hollow
# shadow helm I'd be curious for what though 🙂

With Chonky's investigation into setting up a wiki, I've been thinking about ways it could be re-architectured using various free-tiers, but need to know the requirements for the applications operation to see how it's spread

shadow helm
#

Thought I'd get a bit more from vercel without throwing more money at them

mossy hollow
#

It's all good, if it's not possible to get don't worry about it

shadow helm
#

I can at least give you the google search statistics pretty easily

#

That'd be about 1k visitors a day, with the current SK setup they shouldn't hit the backend after the first loads, either.
Account for bookmarks & cache and call it an even 2k per day?

neat mango
#

do you know where it is ?

#

also I am gonna scrap TS code lol. I will use shell scripts for download and unpack zips along with raw file management and use python or something to generate MDX

mossy hollow
#

rip ts

shadow helm
neat mango
# mossy hollow rip ts

its just harder to perform actions like downloading zips and organising files and such

#

json to mdx might be easier for js/ts but I will look at it later

mossy hollow
#

It really shouldn't be

neat mango
#

wot

mossy hollow
#

What's your struggle?

#

It shouldn't be harder for those things

neat mango
#

oh

neat mango
#

I want to simply download zip, unpack it, get rid of all code and move all assets and stuff into a correct folder

mossy hollow
#

You can use something like axios to download the file and node-stream-zip for unzipping it

neat mango
#

yeah I already tried so many packages but honestly wget + tar is simpler lmao

mossy hollow
#

then use them

#

you can do that in js/ts too

neat mango
#

I did do that as well. but I am gonna use normal shell for raw files atleast

#

why use abstractions/packages when shell script is faster and easier.

neat mango
#

this will get me the correct branch source zip without API calls I think

shadow helm
#

Even a Get request is a REST API call as far as I kow

mossy hollow
#

So here's my current idea, a service that triggers on a webhook after each add-on is built or uploaded to modrinth/Curseforge, alongside a Cron that checks latest versions on modrinth and CF for each version, this service then builds the documentation files into one single repository that can be depended on for the docsite, additionally have webhooks available for docsites to trigger builds from

#

Docsites can be statically built when needed, without requiring hitting the GitHub API

neat mango
#

got a small shell script to download zip and extract required files from it (patchouli_books and assets)

#

now I just need to simply parse it and spit out md/x in the relevant format/structure. Sounds easy to me, I hope its not too hard

shadow helm
shadow helm
neat mango
#

what changed in these ?

#

neoforge right? or did we revert back to forge. asking because I updating the base minimum version required

neat mango
#

did enchantment apparatus recipe builder withSource() method get removed ?

shadow helm
neat mango
radiant depot
#

Keep in mind that as long as we remain in 1.20.1 Forge and Neo are the same userwise

#

If you build against one, it will still work with the other

shadow helm
#

I thought Forge after .3 started merging all sorts of crazy changes the last remaining contributor felt like doing?

radiant depot
#

Yeah, there was a little period of chaos

#

But iirc the changes are not noticeable by most

neat mango
#

Yeah, only forge builds against 47.1.3 are compatible with each other

radiant depot
#

Like, there was a change in a projectile event iirc. That broke compat for sure

#

But as long as all mods in your pack did not touch that piece of code, doesn't matter too much on which one you are

#

Some fixes made in Neo were also applied to old Forge

#

Don't ask me why on this, consider it etiquette until full split of 1.21

ashen grail
#

which i'm not saying to be derisive, it's just how he himself has put it candidly

shadow helm
ashen grail
#

i believe there was at least a small contingent of modders still sticking to Forge over Neo

#

but first-hand i only know of the dev for ModernFix and Embeddium doing the first thing i mentioned of building for both

#

Architectury also explicitly supports both Forge and Neo

shadow helm
#

There's always traditionalists, I suppose?

ashen grail
#

i don't necessarily fault them, i'm still very much on the "wait and see" camp

#

although practically speaking since i'm primarily an AE2 add-on dev i can only follow with what AE2 decides to do, which is to eventually go NeoForge-only and even forego Fabric support

neat mango
#

I mean Technici4n is kinda the lead on neoforge refactors right now

#

damn forego fabric!? that is news to me

#

Isnt Technici4n exclusive fabric dev along with their own mods like Modern Industrialization and stuff

radiant depot
#

Until 1.21, it's all just community siding because there is little difference aside eho runs it

#

With 1.20.2+ the Registry changes are where the road split

neat mango
#

1.20.2 will have more those changes. Caps are changing and lot of internal refactoring and removal of old code

radiant depot
#

Setting aside yeeting DefRegs

#

There were few vanilla changes

#

Lex chose to not reimplement what was removed by Mojang with a Forge hook, I don't recall exactly what

ashen grail
mossy hollow
#

Faith in NF is one thing, but that's a lot

quartz stump
#

I may be getting an early build of 1.20.x Tetra i can use to update Ars Armiger

#

Though it'll only come out alongside tetra not before for obvious reasons

sweet dock
#

so, I'm getting into modding and I'm trying to animate a staff I made using geckolib, but can't find any example code for 1.19.2, kinda lost here

#

tutorials I was following jumped from 1.18 to 1.19.4 too...

#

nvm, I can just follow ars noveau as an example...forgot the bow and crossbow are animated

radiant depot
#

example code should be almost identical between 1.18 and 1.19 for geckolib

#

From 1.19.4 onward it differs

sweet dock
#

well..it's different, even if slightly

radiant depot
#
GitHub

GeckoLib is an animation engine for Minecraft mods, with support for complex 3D keyframe-based animations, numerous easings, concurrent animation support, sound and particle keyframes, event keyfra...

bright shore
#

what is StructureRitual and why is it unused

#

also am I meant to do anything in particular so my ritual saves to nbt? I'm overriding read and write but it's not even saving that the ritual was started lol nevermind works now

mossy hollow
#

I think it's used in Ars Caelum

bright shore
#

oh yea that makes sense

neat mango
#

@rugged urchin did you make the tier 3 book slightly bigger than tier 2 and 1 on purpose ?

#

blue is tier 1/2 and grey is 3

rugged urchin
#

uhh

#

Let me look into that

#

They should all be the same

neat mango
#

this is tier 3

#

this is tier 1/2. it just hides that golden part

#

the book covers are 1 pixel inside for them

rugged urchin
#

Oh good grief

#

Yeah... I .. don't know how I did that 😅

#

Which is wild, because the closed version does not do that

#

Ok... I think I remember why it's like this

#

So if I "fix" that one pixel issue, what happens is I lose the gold detailing texture on the cover where the cover meets the spine when the book is open

#

So to preserve the texture and that detail from closed book to open book, I cheated and shifted the covers out 1 unit on each side. So technically it's on purpose

#

Your book doesn't have that detail, so you could just move those covers back in one unit each in blockbench and you're good to go

neat mango
#

I don't use a different model

#

I think you should pull the tier 1 and 2 books 1 pixel outside so that you don't lose on the inner gold accent

neat mango
#

unless it is intended

rugged urchin
#

ThinkingPufferfish honestly looking back at it now, I never really liked the inner gold detail part that you can only see on the tier 3. I shaded it because it looked weird if that line was the same bright gold.

Now I'm wondering if I should just get over losing the gold detail on the book and shove the covers back in lol

neat mango
#

lmao

#

if you do that let me know because the new ToB texture would break because of that

neat mango
#

@radiant depot is it possible to have a custom model for when a cat is in the mob jar ?

#

keeping cats in jar is cruel (lol) so I want to replace with a cat model, holding the jar in its hand or something

mossy hollow
neat mango
#

oh that would be cute yes

sweet dock
#

alright, I don't know if I'm doing something stupid (have mercy), but I added cooldown logic to ars nouveau's SpellResolver using mixins.
Now I wanted to do held spell forms that basically ignore this cooldown logic untill the spell is released, which means I need to tell normal cast methods and held ones apart.
I think I have to edit the AbstractCastMethod or AbstractSpellPart classes, so I thought about mixins again, but I'm not sure if this is the best approach or if the IDE is even able to recognize this convoluted mess waaaaaaaaa

radiant depot
#

Use a mixin that simply add an interface?

#

Oh wait, it wouldn't probably work for inheritance

#

Are there vanilla forms among the held spell forms you want?

#

Or only forms added by you?

sweet dock
#

forms added by me

radiant depot
#

Cause in the second case you simply need to add an interface to them or have a subclass of AbstractCastMethod

#

And then do the class check?

sweet dock
#

mind that I started modding like 2 weeks ago, but I tried making a subclass of AbstractCastMethod and making the form glyph using that
ars kind of uses AbstractCastMethod everywhere though, the glyph doesn't even pop up in the spellbook without heavily modifying other stuff as far as I know

mossy hollow
#

Are you registering your glyphs?

sweet dock
#

yes, glyph works fine if I just make one normally

radiant depot
#

Having a subclass instead of directly ACM shouldn't change anything

#

I use subclasses just to prefix my glyphs without problems

#

Is your code on GitHub?

sweet dock
#

yeah, it's private atm though
for the form glyph atm I just yoinked TMG's ray form and how it was implemented, not sure which of you made the addon but I hope that's not a problem

radiant depot
#

No I was more like trying to understand what the "heavily modifying other stuff meant"

#

Also how the cooldown was checked

#

Since if you have the spell, just checking at index 0 should give you the form glyph. By doing the instanceof you then check if that glyph skips the cooldown

sweet dock
#

yes, I could just have a hardcoded list of all glyphs that are held, but I thought that was kind of a stupid solution? i dunno

mossy hollow
#

You can check Ars Artifice code if you want, I implement a new glyph type, that I have to explicitly hide from appearing in the spellbook

sweet dock
sweet dock
#

yeah I'm dumb, honestly don't know what I did different but extending AbstractCastMethod works now :)

neat mango
#

@rugged urchin do you have source files for src/main/resources/assets/ars_nouveau/textures/gui/entries/battlemage_diagram.png ?

#

(did you make the image or was it someone else ?)

rugged urchin
#

The source file is an aseprite file that I export from to png

neat mango
#

works for me. can I have the aseprite file please ?

rugged urchin
neat mango
#

thanks a lot!

desert horizon
#

Jeez IntelliJ, way to call me toxic...

bright shore
#

bruh intellij that's a stretch

desert horizon
#

thinking_whelp Possible idea: some kind of herbicide glyph ...

#

"Glyph of Osate"? 😆

#

squint Is the example mod not updated for 1.20?

radiant depot
desert horizon
#

I'm trying to get over the gradle hump to migrate to 1.20.

radiant depot
#

doing the last check before pushing the gradle changes to the example repo

#

alr, pushed

desert horizon
#

tilting wildly at this windmill...

#

downloading a small mountain of projects, apparently ...

radiant depot
#

iirc it's MixinExtras

desert horizon
#

looks like jei 15+ has as well

#

the last version on blamejared is 14

desert horizon
#

all my dependencies broke 😭

#

repair_pack 🔨 diamond_pickaxe .... Ouch! 🩹

desert horizon
#

okay... errors mostly mopped up except for changes in how things get registered

bright shore
#

is there already a block in base Ars that reflects spells back in the exact direction they came?

#

if not I wanna add that in Omega since I have a "reflective coating" item already used in a recipe

desert horizon
#

my glyph recipes show up in JEI but not in the scribing table?

desert horizon
#

Recipes sorted, now it's the item images broken.

desert horizon
#

Any suggestions on troubleshooting a missing texture?

desert horizon
#

Got it. Something is less forgiving about paths, and doesn't like me using items instead of item in the glyph texture path.

neat mango
#

are you porting TMG?

desert horizon
#

yeah... think I've just about got it now

radiant depot
#

Those mirrors make an angled bounce tho, not a direct reverse

bright shore
mossy hollow
#

Is it possible to add a new category to Patchouli? Or is that a bad idea?

neat mango
#

it is pretty straightforward

#

especially in 1.20

mossy hollow
#

I'm still 1.19.2, but my category isn't showing 😦

#

I was going to try finish off writing documentation (or at least get some pages) and then upgrade to 1.20.1

shadow helm
#

I think we've got working new categories in Omega if you want to take a look at that

mossy hollow
#

Yes please, ty

shadow helm
mossy hollow
#

Okay I got the category working ty, I made the wrong assumption of it would be under the AN namespace

#

going to go with a sub-category on Magical Equipment for Artificing

neat mango
#

for 1.20+, everything is under AN namespace

mossy hollow
#

Ah right

bright shore
#

Yea 1.19 and 1.20 are sort of opposites in that sense

mossy hollow
#

Is it possible to make a relations page to a category?

#

I've added a sub-category for Artificing on Magical Equipment, but wanted to put a page in Getting Started to link to the category

bright shore
#

Not that I know of

#

You can check the patchouli documentation

neat mango
neat mango
#

I want to perform an action when this recipe is crafted. What can I do ?

zealous zenith
#

Like have an event occur?

neat mango
#

no I want to edit the NBT of the resultant item stack

zealous zenith
#

Like how the reactive recipe works?

neat mango
#

I dont know how reactive works