#General & Development Help

1 messages ยท Page 5 of 1

radiant depot
#

PropagateOrbit 2.0 is cool

bright shore
#

is there an easy way to disable part of spell validation on a spell? I don't see one

radiant depot
#

What are you planning?

flat spindle
#

When I use the changecolor function on a spell

#

the spell ends up looking a bit bland

#

is there any way to fix this?

#

like normal spells have some form of glow to them

#

with change color they seem to loose that glow

#

upper is the changecolor one

#

lower is the smexy vanilla one

radiant depot
#

Change Color?

#

If by chance is the thing omega adds, it's made for black particles

#

Not for the whitey ones

flat spindle
#

nono base ars
((EntityProjectileSpell) entity).setColor(color);

radiant depot
#

Are you using the same color as the default one?

#

Also the alpha looks a bit lower

#

I really need more context

#

Since it doesn't make much sense if you're changing only the color of an existing projectile

#

But can if you have a custom projectile or smth

bright shore
# radiant depot What are you planning?

Making extra amplifies from staffs immune to the limit
I got it to work with some reflection but that's not ideal since any change to the spell resolver code could break it

mossy hollow
#

I just need to get recipes done and we're good to release

#

Little showcase of what I have so far

radiant depot
#

well, time for yellow so you can use the channels

mossy hollow
#

Eventually yes

#

Recipes are something I'm struggling with

#

I have some base recipes for the glyphs

#

but no idea what to do for the items and gems

radiant depot
#

the gems are the three tiers, right?

mossy hollow
#

Currently they accept any spell but have 3 tiers of durability

bright shore
#

That looks awesome!!

mossy hollow
#

So they have 250, 500 and 1000 mana in each tier of gem respectively

#

Should probably make it configurable eventually

#

Ooh gold

mossy hollow
#

Thoughts on adding an imbuement recipe to source gems to turn them into spellgems? Would mess up anyone just leaving source gems in imbuement chambers

#

Probably best to have a pedestal item required

radiant depot
#

Uh, looks like the idea behind NEG of remaking other addons stuff and disabling them if said addon is loaded works

#

Not the most elegant way, but should solve the overlap and the update time problem

mossy hollow
#

Nice, that's pretty cool

#

How can I check an ingredient to make sure it's not damaged for a recipe?

radiant depot
#

you need the itemstack somehow

mossy hollow
#

I'm specifically trying to make an Enchanting Apparatus recipe only work when the reagent is pristine

radiant depot
#

then you check the durability

#

from isMatch you should be able to check

mossy hollow
#

Yeah just trying to figure out where I can implement that

#

Ah okay, so I need to create my own enchanting recipe type

#

rip

radiant depot
#

yeah

flat spindle
#

(ignore music)

#

im firing a projectile, and the tile entity has a internal function that loops through all possible RGB values and applies that to surrounding spells

radiant depot
#

ok, so the projectile is still "vanilla" and you're just setting its position and color ?

mossy hollow
#

Doesn't answer your question, but if you want a proper RBG cycle, it's easier to loop over HSV and convert to RGB, it'll produce a nicer effect

flat spindle
#

position is done by kubejs

#

color is done by my TE

flat spindle
mossy hollow
#

Looping through HSV creates a more guided transition through the colours with a mixture of RGB, it's the method most RGB lights use

radiant depot
#

then it's weird, only thing i can think of is that the color you're setting is lower than the one that the projectiles usually use

radiant depot
#

since the color is additive, higher value colors also have higher alpha

#

which is why 1,1,1 is transparent

flat spindle
#

Hmm, oh well... Ig its not that important anyway

#

thanks for the help

mossy hollow
#

It'll probably improve how it's seen too as the brightness is baked into RGB

flat spindle
#

thankss

zealous zenith
#

๐Ÿ˜ฎ

#

Iโ€™ve always wondered how you easily translate color gradients

#

Rainbow particle setting thonk

radiant depot
#

isn't the jeb sheep an example already?

#

or is mojang impl a bit mojank?

zealous zenith
#

Ohโ€ฆgood point lol

mossy hollow
#

The Jeb_ implementation isn't exactly the easiest to read

#

SheepFurLayer if you're curious

radiant depot
#

well, especially with the decompiled

mossy hollow
#

yeah

#

It seems more like they're interpolating between the Dye Colours

zealous zenith
#

You should make a whole particle generator for your artifice mod jarva ๐Ÿ‘€

mossy hollow
#

but why

zealous zenith
#

Because xacris would love you for it

#

Heโ€™s been wanting a block like a spore blossom for the particles

#

But you could do lots of configurations and settings

radiant depot
#

The problem I'd expect is that some vanilla particles have built-in movements

#

The enchanting table ones for example

#

While the modded ones might require extra stuff. One should look into the particles command

#

Maybe that would lead to allowing Ars particles with commands too

mossy hollow
#

Currently on my to-do list for Ars Artifice is:

Finish Recipes
Release
Add bulk scribing method

And then I'll get around to looking at other ideas

#

I'm not really sure what the whole idea around a particle generator would be

zealous zenith
#

Iโ€™ve been wanting to make one but it likely requires gui work to make something complex, or be restricted to a handful of movement behaviors with color and range

radiant depot
#

Ars had one

#

basically a particle selector, offset and speed sliders (or maybe fields)

nocturne mason
#

Idea for an addon, if this isnt supported by something:
Occultism mobs working in jars (Pipe/right click items in, result dropped in world), or for the item transport the cleaner one basically working like an allay but being able to transport to remote inventorys/entitys/entity jars, and the item transport dude doing the same but picking from chest or entity instead. I'm working on learning modding so if nobody ever does such an addon I might try to see how it would work myself but just putting idea here for now

mossy hollow
#

@radiant depot how does one get an #addon-index post? ๐Ÿ˜„

radiant depot
#

by doing that

#

i was writing it while you pinged anyway

mossy hollow
#

๐Ÿ˜„ perfect, thank you

spice tinsel
#

OK so how do you guys manage your development time vs your personal play time? I'm not finding it easy at all.

zealous zenith
#

dont play the game, easy

spice tinsel
#

You're killing me, Smalls.

mossy hollow
#

Unfortunately it's kinda the case

#

I usually end up flipping between Dev mode and player mode, depending on what my ADHD decides gives dopamine

#

That also means swapping between projects, etc.

spice tinsel
#

Well at least I'm not alone then. #Solidarity

trail sinew
#

Yeah

#

I basically stopped working on things to try and play more to find direction in what I wanna play

flat spindle
#

Ive been trying to figure out how the portal tile method works for teleporting entities.

ive tried changing it so it wont tp specific entitys, like item entitys etc. But it just wont do.

So if I could be redirected to exactly what does the warping and stuff thatd be super helpfull

#

thanks ๐Ÿ™‚

#

I have the suspicion that im looking at the wrong class.

radiant depot
flat spindle
#

Yea so heres the issue

#

I completely deleted the entire warp method so nothing should happen

#

tho when I go into the portal

#

it still tps me xD

#

or anything as a matter of fact

#

actually nvmd, I may just be incredibly stupid

#

ive got the feeling warp is not doing anything xD

radiant depot
#

TeleportEntityTo is the method actually doing the job

flat spindle
#

im in .18

#

but yea I finally figured out what I have to change in code

flat spindle
#

Alrighty, so ive gotten another thing:

So im working on a PR for ars that includes a new Entity tag that prevents entities from getting tped...

So far so good, the tag works and allthat.

Buut , weirdly. when theres ars nouveau familiars in the entity tags.... It doesnt work. For Orbit projectiles it does work, even though thats also from ars

#
{
  "replace": false,
  "values": [
    "ars_nouveau:starbuncle",
    "ars_nouveau:drygmy",
    "ars_nouveau:whirlisprig",
    "ars_nouveau:bookwyrm",
    "ars_nouveau:wixie",
    "ars_nouveau:orbit"
  ]
}

This is the EntityTag json btw

#

but yea.. for everything except orbit for some reason it doesnt work

#

from the things in the json

#

for other entities it works

#

should I already PR this?

zealous zenith
#

Sorry what was the original goal? a tag to prevent TP?

flat spindle
#

ye

zealous zenith
#

There are two places teleports happen, one is called in the block method and one in the tile

#

iirc orbit might have special handling in its own collision because spell projectiles have special logic to make sure they warp

flat spindle
#

Are you suggesting the tag is broken?

mossy hollow
#

I think it may be that you're only checking the tag in one teleport location?

flat spindle
#

good point

zealous zenith
#

that, or you may need to check the spell projectil code where it force warps itself if it ray traces a block that is a portal

flat spindle
#

nono I have no issues with orbit is the thing. that excludes itself perfectly

#

But whirlisprig and stuff

#

is what doesnt want to get tped

zealous zenith
#

ohhhh I read the reverse lol

flat spindle
#

but yea ig ill change the warp and tick method for it

zealous zenith
#

in portalTile there is the warp method and the tick method which also warps entities, make sure you check both

flat spindle
#

ive done it, but now that ive changed the warp method it crashes the game xD

#

lemme troubleshoot a bit and ill get back

#

prolly dun sth dumb ๐Ÿ˜„

zealous zenith
#

crashing just means progress!

flat spindle
#

you are right!

#

it worked

#

ok doing the pr

#

now i only need to figure out how they work xD

#

weird whenever I do the pull request github errors

#

ig ill do it tmrw

#

the gods want me to sleep

bright shore
flat spindle
#

hmm I should prolly also include this change for warp spells shouldnt i

#

cant find the class that has the warp function for warp spells

#

could someone help me?

zealous zenith
#

It is in EffectBlink for warping other targets

flat spindle
#

want me to rename the portal blacklist tag then? seeing as it doesnt also cover warping in its name?

zealous zenith
#

I would make a different tag for blink

flat spindle
#

sure

radiant depot
#

there's also the warp ritual, if that's relevant

flat spindle
#

yea im contemplating wether or not I add the blink blacklist tag to that aswell

#

as reliably farming and automating warp rituals isnt exactly easy lol

#

but ig that changes from pack to pack

flat spindle
#

ok I updated the pull request

#

no more entity yoinking

spice tinsel
#

What's the effective difference between 1.19.2 and 1.19.4 for mod coding? I really like the Bountiful mod but it's 1.19.4 only and I'm wondering how much of a hassle it'd be to backport to 1.19.2 for my own use only.

mossy hollow
#

The main thing I've seen is Registry changes

zealous zenith
#

UI changes, registry, creative tabs

spice tinsel
#

So probably not a good idea, which is what I expected.

mossy hollow
#

It wouldn't have to be for your own use only

#

You could PR it and they may release it, otherwise you could release bountiful-1.19.2

spice tinsel
#

Dude already said he won't be backporting himself, which is 100% understandable.

rugged urchin
#

there are mods that skipped 1.19.2 for .4? ๐Ÿคจ

radiant depot
#

What does Bountiful add?

radiant depot
spice tinsel
#

Ugh nevermind it's Fabric...

rugged urchin
#

even still i guess i'm still surprised they didn't commit staying on .2

spice tinsel
#

A bounty board in villages you can get quests from to kill X mobs, craft X items, etc. and turn in for rewards.

rugged urchin
#

that sounds pretty cool

spice tinsel
#

It's pretty cool IMO and if tweaked for Ars integration it'd be even better.

radiant depot
#

Oh, I remember seeing it

rugged urchin
#

@zealous zenith steal for Starby guild? :P

radiant depot
spice tinsel
#

I'm obviously blind or tired or both.

#

A Starby guild? Oh man now I've got visions of a village like MineColonies but Starby fanatics.

#

And it was another mod that was Fabric only I wanted to use but can't.

rugged urchin
#

the guild is like half meme/half real pet project we've wanted to do where you can send the Summons on little missions

spice tinsel
#

Cool concept. I'm guessing you could form little teams with different magical helpers in the same group to fill roles and increase success?

rugged urchin
#

maybe lol,

#

it really hasn't gotten far

#

The guild would request items for their adventures like equipment/potions/food and then come back with dungeon loot

spice tinsel
#

Fire support of a Wixie dual wielding dual wands...

#

I like it, I like it, I like it.

mossy hollow
spice tinsel
#

Adds an item sink, which I think MC misses in a lot of ways.

#

It is Jarva, I got it crossed in my mind with a cool dimension mod that's Fabric only.

mossy hollow
#

Ah right

rugged urchin
#

yeah item bloat is like a key issue with the game

radiant depot
#

It's Kotlin too

spice tinsel
#

There's the issue, I knew there was one somewhere.

radiant depot
#

You need a lot of player hooks for bountiful, I guess

#

But for this you just need a set of prompts as missions

spice tinsel
#

Probably more sane to add an Ars integration into MineColonies since there's already a big item sink and effectively a quest system to build the colony.

#

If I ever manage to learn enough coding to make that happen I may just do that.

radiant depot
#

An item request system shouldn't be hard

spice tinsel
#

Honestly I think my first real coding test needs to be figuring out how to turn off vanilla MC structures individually during world gen.

mossy hollow
#

I'll take a look at backporting Bountiful

#

I backported Origins from 1.18.2 to 1.16.5, this should be a walk in the park ๐Ÿ˜…

spice tinsel
#

The Kotlin not going to be a hassle?

mossy hollow
#

who knows

#

never touched it before but how hard can it be

spice tinsel
#

Fair enough.

#

To you probably not, to me...

mossy hollow
#

Ah yikes

#

Here's the roadblock

#

Bountiful developer also maintains their own Kotlin library

#

that would also have to be backported

#

Time to look at that first

bright shore
#

that does sound like a roadblock lol

mossy hollow
#

actually it was pretty easy, that library is done backporting, I'm onto the main mod now

radiant depot
#

.2 and .4 doesn't change enough to be a problem for any mod

#

And the less they rely on mc code, the easier it is to port it.

spice tinsel
#

Now I'm going to owe Jarva a case of beer, at a minimum.

zealous zenith
#

if anyone wants to port that to 1.19, free PR count jarva ๐Ÿ‘€

mossy hollow
spice tinsel
#

I'll keep the beer cold just in case you succeed and throw you at least a 6er for the attempt regardless.

wide swan
#

ah ok

#

Because my render and model wants that the Item class implements IAnimatable

radiant depot
#

the reason i'm a bit confused is because i didn't have any issue with elemental armors

#

even if they are still very similar, it's a custom render

wide swan
#

that's my armor

#

I can try to do it like you but I don't know if the model will still work

radiant depot
#

cool

#

anyway, to implement without using AMA

#

you basically add Mana regen and max mana buffs via attributes

wide swan
radiant depot
#

then for slots and threads you can use ArsNouveauAPI.getInstance()#registerPerkProvider to register the slots

wide swan
#

ah I did not do the registry you send. is that the problem?

radiant depot
#

very likely, that screen doesn't say much

#

i'm not 100% sure if the armor upgrade recipes will work, assuming the only thing you were missing was the perk holder registration

#

they should work tho

wide swan
#

I give up xD that's too high for me. I don't have enough Java knowledge for this

wide swan
radiant depot
#

but it's a waste to not use that armor :/

#

if gradle doesn't go nuts, i can check what's wrong or quickly make the code for it (tonight)

wide swan
radiant depot
#

since it should really be just few lines of code, copy paste aside, to add the compat

wide swan
radiant depot
#

Oh, you are mixing two different package of geckolib

#

that might explain it

#

There's a geckolib inside Ars, for reasons

#

Which have a different package path so the compiler will always throw error

#

even if the classes are basically the same

wide swan
radiant depot
#

the one with bernie.ars_nouveau.geckolib3

#

you'll see in the commit

wide swan
#

ok thx I will try to change it

wide swan
radiant depot
#

let me finish this, but in theory yes

wide swan
#

ok

radiant depot
#

ok, confirmed

#

but you chose the worst possible timing to completely rearrange your project structure, my god

radiant depot
#

hopefully nothing too different from my test

wide swan
wide swan
radiant depot
#

Let me know when this compat releases for the SAD Role. I've added a link to it in the bottom of addon index in advance. Also interesting to know that there is a commission site.

#

Prices are perhaps medium-high for models, especially without knowing what they did in the past, but i might consider them if i don't see someone else interesting

wide swan
wide swan
wide swan
wide swan
#

How hard is it to make a custom ritual crafting like the enchantment apparatus?
I will make a new block for the Samurai things I guess that I can add custom items and stuff?

radiant depot
#

"Like" as in [ central catalyst and rituals around it] or as derivative of enchanting apparatus?

#

In both cases you need to define a recipe type + serializer

#

Then if you piggyback Ars apparatus you need to call an api method to register the recipe type to apparatus recipes

#

Otherwise, you make your own block and pedestals. Then when a catalyst is used to craft, do the checks to fetch pedestals items and find the matching recipe.

wide swan
radiant depot
#

well, you can take a peek for apparatus for most. But if you never made custom blocks and tiles i can pinpoint a tutorial that cover the basics

wide swan
#

It created one already for another mod. But not pedestals. I don't know how to do the thing with the item showcase on top.

#

With a custom recipe type and JEI support

#

But only a custom block

#

Would be a good practice for the next mod I have planned to do.

radiant depot
#

item showcase on top is in the renderer

wide swan
#

Ah cool thx. I will try it this weekend.

wide swan
#

Can I use all the ars block models as reference for the addons? For example when I will make a new type of source jar but with another texture and other details on it? Because of the GNU license.

radiant depot
#

Ars is GPLv3 or something

wide swan
#

curseforge is saying "GNU LESSER GENERAL PUBLIC LICENSE"

#

or is it the same you wrote?

radiant depot
#

yeah, GLPL

#

very permissive

#

but anyway, for addons i'm certain you can

wide swan
#

ok I am asking because of the pedestal I made and I will do something like source jars

#

the licenses are written in such a strange way that i never fully understand what they mean

#

If I am right the GLPL is a open source license or?

zealous zenith
#

yep you can modify and redistribute as long as you also open source it and give credit

wide swan
#

ok than I will use the license for the addon and add ars nouveau in the credits. Thanks. Because I am using MIT for my mods.

shadow helm
#

I think that's one of the restrictions of GPL, if the work you're getting inspired by is GPL you need to have GPL as well

#

Not that I think it likely for Bailey to sue you, I assume he'd rather buy another fish ๐Ÿ˜‰

wide swan
neat mango
#

Am I free to change the license if I use the addon template ?

#

I probably won't as I am fine with it as long as it is FOSS but I am just curious

shadow helm
#

Since the example addon is under the unlicense which is basically "go nuts", yep, afaik you can

#

Maybe I should become a software lawyer ๐Ÿค”

neat mango
#

noice

mossy hollow
#

A common license used in the addons is LGPL3

neat mango
#

I am playing around with example addon mod. Since the "test glyph" only takes amplify, a setup like this will trigger the resolver of the glyph twice, right ?

zealous zenith
#

yep

neat mango
#

okay cool

zealous zenith
#

spell resolver is just a fancy forloop over the effect calls

neat mango
#

remember yesterday we were talking about using a different resource for player mana ?

#

May I ask how that system works/where it is in code?

#

I am guessing it is a player cap or something similar

#

package com.hollingsworth.arsnouveau.api.mana; this it?

trail sinew
neat mango
#

I would appreciate that!

#

Blood Magic is still at 1.18 (WayOfTime is on a break from modding). Using any type of compat right now is not possible

#

I want to create a new LP inspired system in ArsNouveau directly. I will think about integrating it some time later

trail sinew
#

Huh

#

Neat o:

wide swan
radiant depot
wide swan
wide swan
#

Ok I used the classes of ars and it worked

#

Do i need to add the rotation to "public void render" or "public void renderRecursively"

#

sorry for askig but how I said its my 2nd mod and just started learing java

radiant depot
#

the rotation is done via
stack.mulPose(Vector3f.YP.rotationDegrees(((float) ClientInfo.ticksInGame) * 3f));

#

idk how much CG you know

#

but basically everything you make a stack.push() you create a copy of the current matrix (basically what tells the rendering system where to render on screen and how) and when you are done with stack.pop() you restore the matrix to before the push

#

so if you do that in render, you would have everything rendered follow the transformations, while doing it specifically in render recursively you only apply to the specified bone

wide swan
wide swan
neat mango
#

I have a java related question but its from Ars Nouveau source code

#

What does this notation mean (red arrow)

#

the variable OVERLAY is referencing a function (but the types do not match)

zealous zenith
#

isnt that because its a functional interface

neat mango
#

I don't know what that is

zealous zenith
#

a functional interface in java is their form of passing/assigning functions around, where you can return a function if it conforms to the type of the interface

neat mango
#

So similar to functional programming you can pass functions references around ?

#

and just expand the function var when you call it

zealous zenith
#

Not familiar enough to say yes or no, but if you mark an interface as functional, it can only have a single method, and then you can return methods and it conforms to that type

#
/**
 * A HUD overlay.
 *
 * @see RegisterGuiOverlaysEvent
 */
@FunctionalInterface
public interface IGuiOverlay
{
    void render(ForgeGui gui, PoseStack poseStack, float partialTick, int screenWidth, int screenHeight);
}
#

so you can mimic passing actual functions as first class members (variables)

neat mango
#

Thats pretty interesting

zealous zenith
#

yeah pretty handy

#

afaik it is just syntactical sugar for instantiating the interface, it is just anonymous

neat mango
#

yeah that clears things up

neat mango
#

for addons, should I strictly rely on the API or can I use static objects like Networking.INSTANCE

#

also since I am replicating alot of player mana code from ars nouveau, I think I should also move the mod to the same license (LGPLv3). Do I need to do something special to change license or me simply updating the license file would be enough ?

neat mango
shadow helm
neat mango
#

right now I am out right copying code to replicate the mana system

#

so i should be compliant with the license

radiant depot
#

You can always make more open, but not more strict

neat mango
#

Why is that part required ?

#

((ClientTicks + partialTicks) * const)

#

Why does the manaoffset depend on that?

#

oh nvm got it! It is used to pick animate the manabar (X offset for the sprite sheet)

radiant depot
#

Yep, it's scrolling the texture to make the animated effect

neat mango
#

is IDamageEffect#attemptDamage the preferred way of doing spell damage ?

#

I need a way to check if it did damage or not

zealous zenith
#

That wont return a boolean, but there is a TODO for next version

#

You can use SpellDamageEvent.POST

#

that will be fired when damage occurs

neat mango
#

Where is that event fired ?

#

oh normal event bus

#

can I check which glyph caused the damage in that event ?

zealous zenith
#

yep via SpellContext

neat mango
#

Um how do I do that lol ?

radiant depot
#

Pick the index and then use it to access the part from the spell recipe?

neat mango
#

I dont get it ๐Ÿ˜…

zealous zenith
#

Which part?

neat mango
#

I just need to check if it was the correct glyph or not

zealous zenith
#

Once you listen to the SpellDamage.Post event, you are given the SpellContext, which is what stores the spell, which glyph was being resolved, and a whole bunch of info

neat mango
#

Yeah where is the glyph inside the context ?

#

oh so get index from context and get it from the spell

zealous zenith
#

Oh, Spell is private in SpellContext? thonk

#

oh no just use getSpell

neat mango
#

Ye

radiant depot
#

I am not sure, but you might need to pick index-1

#

So if it doesn't work at first, that could be an hint

#

But if it works it works

neat mango
#

okay :)

#

does AbstractEffect#DAMAGE and AMP_VALUE need to be declared for each glyph ?

zealous zenith
#

if it deals damage and you want it to be configurable yes

radiant depot
#

Not declare but you need to add them to config builder

#

And iirc IDamageEffect force you to add a getter for them

#

Either return the configs or a fixed value

neat mango
#

Its a bit slow for some reason (probably needs to be forced synced)

#

(btw I am trying to make Blood Magic like LP system where you get "essence" by hurting other things or yourself)

radiant depot
#

You probably need to send the packet to sync

#

Server -> Client

neat mango
#

Yep that worked!

#

projectile and self works

#

rune doesnt seem to work but I will around with it. Need to test turrets and weapons also

radiant depot
#

Check rune + sensitive too

#

Might have a different interaction that simple rune

#

And one time vs permanents

mossy hollow
#

this isn't Ars development related but I don't have other Java devs to ask, is there a better way to handle this?

this.channelId = channel.discord.channelId != null ? channel.discord.channelId : config.discord.channelId;
neat mango
#

no there isnt as far as I know unless you use optionals which isnt that much better

radiant depot
#

Yeah, that looks a job for the orElse() of optionals

zealous zenith
#

no ?? sadturt

radiant depot
#

But it could also be an overcomplication if you only use it once, lol

neat mango
#

but why does that work lol ? I have never used sensitive

#

lol there goes my plan for a essence farming ritual

mossy hollow
#

Will give that a try

radiant depot
#

But those are only used with sensitive

#

Useful for stuff like pickup, from the rune to your inventory

#

Instead of "to the nearby inventories" as is the default

neat mango
#

oh that would make sense

neat mango
#

How does augment creation work ?

#

for normal glyphs I can see that you supply it with a set of supported augments

#

what if I want to create an augment that works with other existing glyphs

radiant depot
#

Basically iterate the glyph map and add to each glyph compatible augment list

#

It's a public field

#

Do not use the method that returns a list, that one is only used as a base for the actual list

neat mango
#

oh okay

#

is it possible for an augment to be only applied to another augment

radiant depot
#

Example? I think I got it and then answer is no, but I might have misunderstood

neat mango
#

I want to create an augment that doesnt do anything on its own. It can only be put after another augment.

#

basically I will creating a "mimic" augment that can replicate another existing augment (but which consumes my custom resource on top on player mana)

#

for example you can only stack fortune 4 time normally but you can put the mimic augment after that and you get fortune 5 (it will cost you little bit of essence which is my resource)

bright shore
#

That sounds really difficult with how the mod works right now, and would also be very confusing to users since augments aren't supposed to affect each other.
I think it could theoretically be done though, might be worth a shot

neat mango
#

Interesting. I will try and experiment with it

#

is the glyph item generated and registered by the Ars Provider ?

radiant depot
#

Yep, that's why it needs to be in init and not in post-init

#

While stuff like external school or augment addition should be added in post-init to avoid concurrency problem

#

For post-init i mean the CommonSetupEvent, after the parallel mod initialization that one fires and the situation become more thread-safe

neat mango
#

hmm interesting

#

i was planning on using Registrate to datagen item jsons

#

i will see if there is some other way

radiant depot
#

Setup a more classic datagen

#

Save aside the instances of glyphs you are adding, then use that list to tap into the glyph item map and make the model

neat mango
#

Yep that was very straightforward

#

The addon example already had a list of spells and hint about datagen

#

just had to create a small ItemModelProvider class

neat mango
#

Whats this Timed Helix stuff ?

#

MethodSelf class

neat mango
#

Also I would like to know how to "fail" a glyph.
For a normal effect glyph, I would like to stop the spellcast if the requirements dont meet
For a form/cast method glyph, I would to like to check some prerequesites are met or not (if not, do nothing)

#

can I just return the resolver early for normal glyphs ?

radiant depot
#

You can cancel the context to interrupt mid-casting (EffectResolveEvent.Pre)

#

Or cancel the event to cancel the spellcasting at all

radiant depot
#

Now, if it works or not I have no idea

#

First time I see that, probably cool to fix it if it doesn't

neat mango
radiant depot
#

Ye

neat mango
#

Is it fine if I use this place for development updates and ask for opinions or will #off-topic be better suited for that?

rugged urchin
#

Thats what this chat is for

neat mango
#

(bar art not by me, i suck at it lmao)

#

this is my first system. You can make sigils out of entities (for players or mobs). Using a form/cast method, you would be able to apply effects to the said entity (by putting the sigil in offhand)

#

This is a very basic curse system, where you can put effects from very far away

#

The second part of this will be making poppets out these sigils. They will be affected by environmental effects like lava or lingering potions and even regeneration rituals (even flight now that I think about it )

#

The sigil system is still pretty basic but I will try to get a bit creative with it

neat mango
#

Just want to confirm if AbstractCastMethod#onCast is server sided or not

radiant depot
#

It should be, but if you want to make sure then breakpoint it

#

The client thread is called RENDER_THREAD

neat mango
#

Yall think this a too powerful mechanic?

radiant depot
#

Well, it might be for PVP and bosses I guess

#

Maybe the sigil should need to decay after each cast?

#

Or have a maximum range

#

Otherwise you only need to mark the opponent once and then they're done

neat mango
#

oh range would be a good idea!

#

even decay makes sense to have!

#

I would planning on putting so debuff on the caster also so that you cant spam cast and I will bump up the essence cost also

radiant depot
#

I can see few nice combos like remote exchanging

neat mango
#

wait let me try that, it might be possible to teleport to any entity kek

#

so super long range teleports that to any place (for example any player )

neat mango
#

I think I am gonna make the price for sigil scales according to the type of mob (making boss sigils harder)

neat mango
#

Can you guys add the call to other applyModifiers() for the augments as well ? This method is provided by ISpellModifier which augments implement but none of the augments use and thus will not break existing stuff.

radiant depot
#

I don't think Bailey noticed that, I can pr it but it won't be on release until next update. Once merged you will be able to test it tho, as maven build all the commits to git

neat mango
#

Yeah thats fine!

#

will it be out for 1.19.2 or the latest only ?

radiant depot
#

will surely make it for 1.19.2

neat mango
#

awesome

#

no hurry, I decided to rethink my mod idea from scratch

radiant depot
#

It's a legit change since the augments implement the interface but don't use it

#

So probably there has been a refractoring gone wrong

neat mango
#

the interface will allow many context based augment possibilities since you get access to entire spell

neat mango
#

Am I allowed to use/modify the assets of base Ars Nouveau ?

zealous zenith
#

yes

mossy hollow
neat mango
#

nice! Thank you

neat mango
#

time to start the addon from scratch :)

radiant depot
#

This little update have your requested change

#

Did BM port in the meanwhile?

neat mango
#

I did it myself ๐Ÿ˜…

#

I got permission from WayOfTime

#

also from Toxic to continue ToB

neat mango
#

I am trying to open the spellbook models in blockbench but it says cant open "builin/entity"

#

do I need to do something special to open them ?

neat mango
#

Found some geo models, will see what they are

radiant depot
#

You need the geckolib plugin for BB too

#

The models for most of Ars blocks and 3d items are in geo

neat mango
#

Does it matter what version of geckolib I compile against vs what is Ars nouveau bundles with

zealous zenith
#

Ars shades geckolib so you donโ€™t need your own

neat mango
#

So I dont need it in my dev env?

zealous zenith
#

No. Did you fork the example repo or build your own env from scratch?

neat mango
#

forked it/used it as template

zealous zenith
#

It shouldnโ€™t have included it in the gradle file, might need to be deleted

#

Just import geckoliv from the ars nouveau namespace

neat mango
#

its not in the gradle file. I was thinking of adding it

zealous zenith
#

Oh okay

neat mango
#

because it can find references used from Geckolib

zealous zenith
#

your imports look broken

neat mango
#

oh that is not my class. That is decompiled Ars nouveau

radiant depot
#

Ars imports refer to the bundled package, which is then somehow refractored at build time

#

You need to import the right classes

#

the one with bernie.ars_nouveau.geckolib3

#

Instead of bernie.geckolib3

neat mango
#

I think the deobf is messing something up

neat mango
#

may I know why the second one is getting removed ?

zealous zenith
#

it takes a player instead of a living entity

#

spells can be cast by living entities

neat mango
#

ah I see

neat mango
#

Was the spellbook model simplified ? I remember it have proper inlays and gold trims

radiant depot
#

It was changed at some point

#

But you might just be looking at the base appearance

#

Make sure you enabled visibility for all the bones

neat mango
#

just recolored books for now. I want to make them visually distinct without going over the top. not much of an artist though ๐Ÿ˜…

topaz heart
#

Hello ! Is there an addon that allows you to change the appearance of the spell projectile other than its color? I find the basic projectile rather simple and boring and would like to be able to customize it according to the spells I use.

rugged urchin
#

I don't believe there are any

radiant depot
#

It would be very invasive probably

#

The least breaking thing that could be done is editing the particles spawned

#

But might also fall into sync issues as most of spell data are on server

bright shore
#

yea I imagine it might require mixin shenanigans to synch more data to the client
that said it's probably achievable for sure, just... not worth the trouble

wary orbit
#

uuuh is the Ars-Nouveau-Example-Addon literally a template that one can use to create their own addons?

#

it's only updated up to 1.18, or am i dumb

shadow helm
wary orbit
#

aw man, sweet!

#

any good tutorials on starting for newbies?

shadow helm
#

the pinned messages contain a couple of useful links, but there's no tutorial specific for Ars Nouveau Addons.
Also, if you've never coded before you might want to look for general Java tutorials as well

wary orbit
#

yeah, i was talking about the java ones

shadow helm
#

I've learned Java 15 years ago in school, so my knowledge about learning java resources is horribly out of date, sorry

wary orbit
#

i should download this, right?

shadow helm
# wary orbit i should download this, right?

Depends. If you want to just try around locally, you can click the code button, copy the url there and do git clone <url> in a terminal.
(or use your IDE (I'd recommend IntelliJ Community) to check out the repository).

If you want to publish your addon, I'd suggest clicking the use this template button and creating a new repository under your own github name

#

I feel like there's so many topics to teach someone who hasn't coded before to make sure you can get started...

wary orbit
#

i'll try muh best

chrome sleet
bright shore
#

Do you know java?

chrome sleet
#

no

#

only a little bit

bright shore
#

You need to learn java before you can make a Minecraft mod

neat mango
#

I am back from vacation, is the 1.20.x version stable enough to move the addon dev to?

shadow helm
#

Probably still some changes to make, afaik?

neat mango
#

oki I shall wait

shadow helm
#

You can start the general porting portion, probably, just some parts of the Ars API might not be quite stable yet.

radiant depot
#

I can check if I can port the example this morning

#

So you have the gradle already setup

wide swan
#

what is the right version for 1.20.1 to implement it in inteliJ?

#

because of this

#

because InteliJ cant find the classes

#

ah found it ^^

zealous zenith
#

yeah a bunch of imports got changed

#

the mod is still being refactored, there is a high chance any ported addons break again

wide swan
#

ok

#

you know the changes for the perks?

zealous zenith
#

PerkRegistry

#

the registries got split into their own classes

wide swan
#

does someone know why this is not working?

wide swan
#

I think I got it working

radiant depot
#

The add-on example is updated on my fork, for 1.20

wide swan
radiant depot
#

Won't probably help you specifically if you already got it to work :V

#

But someone else needed it iirc

wide swan
#

But would be helpful for the addon I am working on

radiant depot
neat mango
#

What versioning format does Ars Nouveau follow?

radiant depot
#

As in maven artifact or releases?

#

Cause the maven is basically release number then (.) build number which increases on each commit (since the maven was set up)

#

For releases, it started with 1.x in 1.16 and is now 4.x with 1.20. Then minor versions are bumped every time a significant update is released, subversion is for bug/hot fixes

neat mango
#

Oh okay. I will follow the same versioning system. This one make sense to me

radiant depot
#

addons are free to choose their versioning

#

mine are a bit of a mess since for some i feel like bumping the major is too much

#

so for example Elemental 0.5 is 1.18 and 0.6 is 1.19 iirc

neat mango
#

major version of minecraft breaks mods anyways (ignoring the recent updates). It will just make it easier for me to map supported versions of other mods with this addon

radiant depot
#

surely does

#

the decision of not bumping the major decimal is just a dev feeling of "the 1.0 and up should be as feature complete as possible, while 0.x are wips "รน

#

and then there's mojang that released 1.0 and never moved to 2.0

neat mango
#

I have seen multiple projects never move off from 0.x and just end omitting the first digit later in the lifecycle.

#

Does the Glyph registry also generate the glyph name lang or do we need to do it ?

zealous zenith
#

No you have to implement your own datagen

#

We probably could make subclasses of datagen that let you pass a modid and they pull all the rituals/familiars/glyphs for datagen @radiant depot

#

So addons could just extend with 1 param

#

Saves you from copy pasting all that datagen across all your addons too lol

radiant depot
#

Sure, now that everything have modid we can

#

I thought about that but since so little people needed that I forgot long ago

neat mango
#

since the glyph class has overrides for name and descriptions

zealous zenith
#

You can use those but you still have to wire your glyphs up to be data generated

neat mango
#

Yeah thats fine

#

i will just use registerSpells.forEach() in datagen

#

no thats a bit annoying. the lang format for name and desc for glyphs is MODID.glyph_name.GLYPH_ID while you specify registry name as MODID.GLYPH_ID

#

just gonna copy paste ArsNouveau's Lang Datagen

zealous zenith
#

Datagen got more annoying in 1.20 so probably good idea

neat mango
#

I have Registrate for that

#

Registrate is giving me more pain rn though. Trying to figure out where I can add that glyph for each loop in Registrate

neat mango
#

no I am was just being dumb. It was super straightforward

shadow helm
neat mango
#

How did you generate the spellbook logo for this discord and CF ?

zealous zenith
#

it is a blockbench model

#

goo might have put it through blender for lighting, not sure

rugged urchin
#

It's rendered through Sketchfab. You can upload to directly through blockbench

neat mango
#

ohh I wanted to create one but it sounds complicated lol

rugged urchin
#

Making the model or uploading to Sketchfab? Sketchfab is pretty easy to just play with the settings. Hardest part is making the model and texture in BB

neat mango
#

lol I am stealing the Ars nouveau spellbook model

#

I have a temporary texture (recolored) over it for now. I will redo it properly

#

I want the same model/look as in the Ars Nouveau logo on CF just with a different texture

neat mango
#

Had to take help from a friend who knew blender but I managed to replicate the logo a bit

#

(I know the colors are bad. I will change them later along with the book trims to make it visually different from normal books)

neat mango
#

Whats the difference between modname-version.jar and modname-version-all.jar

zealous zenith
#

you can build different jars or build a single jar with everything. One for sources, API, content, etc

neat mango
#

ah makes sense

#

I am assuming that we deploy the normal jar ?

radiant depot
#

Isn't the -all for when you shadow or JarJar? squidconfused

#

Ars build task make both, but one have geckolib and mixin extras and the other is just the mod

#

And in that case, we release the fat one

neat mango
#

oh! i thought it was the one with sources

#

okay I will change it

radiant depot
#

@wide swan the "JarJar instead of Shaded" thing means that Ars will return to use standard imports for geckolib classes instead of the modified ones

#

#announcements

#

Now there shouldn't be "duplicate" classes anymore

#

You only need to fix the imports, with ReplaceInFiles for example, removing the .ars_nouveau.

wide swan
#

is this the right one?

zealous zenith
#

You also have to include mixin extras and geckolib in your path, the maven doesnt include the fat jar yuet

#

add jitpack to your repositories

    maven { url 'https://jitpack.io' }

and then mixinExtras

    implementation("com.github.llamalad7.mixinextras:mixinextras-forge:0.2.0-beta.8")
wide swan
#

ah thx

neat mango
#

Whats the reasoning behind picking LGPLv3 for Ars Nouveau ?

wide swan
#

Which one do I have to upload?

zealous zenith
#

-all

#

errr

#

are you jijing things/

#

curious why you have a JIJ jar

wide swan
#

created an armor variant

zealous zenith
#

did you copy the JIJ stuff from ars for geckolib?

wide swan
#

no

#

a I used AnimatedMagicArmor

#

Don't even know what JIJ is ^^

zealous zenith
#

@radiant depot did this happen for your builds?

wide swan
#

jar in jar?

zealous zenith
#

you shouldnt get a -all jar unless you enabled jar in jar

wide swan
#

I only updated the mod, implented the mixinsextra and changed the imports

radiant depot
#

Uh, no?

#

I will have to retest

radiant depot
#

Just to be sure @wide swan how do you make jars?

#

Do you use the build run?

#

Otherwise open the larger jar and check what's inside METAINF

#

If it jarjarred, there should be a file with something

wide swan
#

I reopened InteliJ and rebuild it now there is only 1 file

#

maybe a bug or something

mossy hollow
neat mango
#

fair enough. I forgot about addons

#

looking at ShockedEffect's source code, was it created to fight against Tech armors by any chance ?

shadow helm
#

yup

neat mango
#

๐Ÿคฃ

#

nice

radiant depot
#

To be fair, specifically Mekasuit

wide swan
#

You have seen something like this before? That happens with all my armors. Weird Geckolib bug?

zealous zenith
#

Itโ€™s a bug with shaders

radiant depot
#

Does it happen without Ars?

#

It's a question I didn't got an answer about yet

wide swan
#

I think its a geckolib bug

wide swan
bright shore
#

Ars can't fix it though

#

And Ars didn't cause it

radiant depot
#

Yeah, but we suspected for a bit that the bug was tied to Skyweave

#

If it happens without Ars, it's not Ars

wide swan
#

I know that it is not Ars but my intention was to find a fix

radiant depot
#

Shaders option

#

Disable entity shadows

#

The armor render is called twice with that on

wide swan
#

ah lol so its an issue from geckolib?

radiant depot
#

Which leads to whatever bug that is

#

It's either geckolib or oculus fault

wide swan
#

found this

neat mango
#

{b:180,g:25,r:255,type:"ars_nouveau:constant"}

#

know what logs this ?

radiant depot
#

A particle?

#

Likely a spell projectile

wide swan
#

If my armor extends on AnimatedMagicArmor can I use the color change as well?

#

I am trying to figure out how to set it up because I got some suggestions for dyable samurai battlemage armor

neat mango
#

:)

#

refer the PR i linked lol

radiant depot
#

The class should already implement color or texture provider. But that's basically just giving you a string to use in the renderer to use a different texture

#

You will still need to have a texture for each color. The crafting grid to apply the color should be pretty easy, there's a recipe type for it. Make one json with it for all the four pieces.

wide swan
#

ok thx ๐Ÿ˜„

neat mango
#

I am trying to load occultism in the dev environment. I have added it's dependencies in build.gradle but it only picks up modonomicon and not the other two

#

specifically geckolib. wont a normal implementation break with the shaded stuff in ars ?

zealous zenith
#

are you on 1.19?

#

you also need to do genIntellijRuns after you add new deps

neat mango
#

tried that

#

still did not work

radiant depot
#

Made sure you refreshed gradle?

neat mango
#

Yep

wide swan
#

I have both layers but how can I use the methods from ars nouveau to change the color of the items as well?

radiant depot
#

Register item colors

wide swan
#

is there a documentation for it? or where can I find it in the ars code?

wide swan
#

"initItemColors" ?

radiant depot
#

Basically takes the color from the itemstack via the interface, then applies it to the sprite.

#

The >0 return -1 is because the model is layered. So the layer1 (gold inlays) needs to not be tinted.

wide swan
#

ah its working. thx . Ok I understand.

neat mango
#

I have noticed that creative spellbook doesnt have familiars

radiant depot
#

Yeah, nobody felt it like a big deal since the number of familiars is pretty low

#

While unlocking all glyphs was def a big deal

neat mango
#

thats fair

neat mango
#

What folder structure should I follow for multiple mod compat ?

#

should I create a base package for each mod and have everything related to it inside the package?

#

or should I group all glyphs and items in an outer package

mossy hollow
#

I usually have a compat package and then a package for each mod inside that

neat mango
#

because I plan to have my own non compat glyphs and items

#

wont it cause too much confusion ?

mossy hollow
#

Would it confuse you?

neat mango
#

thats a good question. not really lol

mossy hollow
#

If you use intellij changing a classes package is very simple to refactor

zealous zenith
#

The class search when you double tap makes finding everything super easy anyway

neat mango
#

Yeah that makes sense. I doubt anyone else is gonna touch the code

zealous zenith
#

Double tap shift rather

#

Vanilla files had never been so easy to find until I found that little shortcut

mossy hollow
#

Wait what

#

I just use Ctrl+N or whatever it is to search classes

neat mango
#

Does GlyphRecipeProvider support ModLoadedCondition in some form?

#

want to add a forge conditional to check whether mod is loaded to load the recipe

radiant depot
#

For datagen?

#

I don't think it does

#

I should have added a way to add the flag to patchouli datagen

#

But because that was easy

#

You can PR a way to wrap a recipe ( Json object iirc so it works for all) into a forge loaded condition

#

Thinking back it should be pretty easy

bright shore
#
ResourceLocation glyph = new ResourceLocation(glyphs.get(i).getAsString());
                
                ArsOmega.LOGGER.info(glyph.toString());
                AbstractSpellPart component = ArsNouveauAPI.getInstance().getSpellpartMap().get(glyph);
                components.add(component);
                ArsOmega.LOGGER.info("component: "+component.getName());

                glyphsDebug.add(glyph.toString());

the code that's crashing

#

the resourcelocation looks right... but it's wrong somehow.... whyyy

#

or something

#

the map is returning null clearly since logging component.getName throws the null pointer exception

#

but the resource locatin looks good....

#

wait I was missing glyph_ lol oops

#

yaaaay finally

young halo
#

probably been answered previously so mb ๐Ÿ˜… but im on a server (playing all the mods 8) and im trying to make the mark of mastery from ars elemental but each time i put in all the materials when i use the wilden tribute it just says recipe not found and i cant find anything to do could someone help pls

radiant depot
#

Make sure there are the right essences, there is a source jar nearby and it is the right machine

young halo
#

tried both the imbuement and the enchanting cos JEI says it can be either and i got 2 full source jars :/

radiant depot
#

In latest there should be a recipe for both since I lost hope on people using the apparatus instead of the imbuement, but also didn't want to break the existing setups

young halo
#

๐Ÿคฃ ye

#

this is the setup currently

#

also tried moving the enchanting apparatus up so its in line with materials

radiant depot
#

Swap the conjuration essence with anima essence

#

Nvm

#

I changed that recipe

#

The imbuement chamber have a smaller range

#

Basically only checks the blocks around it

#

You would have to place it over the apparatus (or replace it)

#

Then recheck the imbuement recipe, since it might be different from apparatus one

young halo
#

wait have i been using magebloom fiber by accident

radiant depot
#

(Sorry for mess about those two)

young halo
#

np np thx for the help

young halo
#

OMG i was using magebloom fiber instead of abjuration essence

#

this has taken me 4h to figure out thx for your help ๐Ÿ˜…

neat mango
#

What is the containment jar called in in code ?

mossy hollow
#

Mobjar

neat mango
#
    at net.minecraftforge.registries.NamespacedHolderHelper.createIntrusiveHolder(NamespacedHolderHelper.java:192) ~[forge-1.19.2-43.2.0_mapped_parchment_2022.08.14-1.19.2-recomp.jar%23177%23184!/:?] {re:classloading}
    at net.minecraftforge.registries.NamespacedDefaultedWrapper.createIntrusiveHolder(NamespacedDefaultedWrapper.java:210) ~[forge-1.19.2-43.2.0_mapped_parchment_2022.08.14-1.19.2-recomp.jar%23177%23184!/:?] {re:classloading}
    at net.minecraft.world.entity.EntityType.<init>(EntityType.java:158) ~[forge-1.19.2-43.2.0_mapped_parchment_2022.08.14-1.19.2-recomp.jar%23178!/:?] {re:classloading}
    at net.minecraft.world.entity.EntityType$Builder.build(EntityType.java:712) ~[forge-1.19.2-43.2.0_mapped_parchment_2022.08.14-1.19.2-recomp.jar%23178!/:?] {re:classloading}
    at com.github.klikli_dev.occultism.registry.OccultismEntities.lambda$static$0(OccultismEntities.java:51) ~[occultism-1.19.2-1.81.6_mapped_parchment_2022.08.14-1.19.2.jar%23187!/:1.81.6] {re:classloading}
    at net.minecraftforge.common.util.Lazy$Fast.get(Lazy.java:55) ~[forge-1.19.2-43.2.0_mapped_parchment_2022.08.14-1.19.2-recomp.jar%23177%23184!/:?] {re:classloading}
    at net.minecraftforge.common.util.NonNullLazy.lambda$of$0(NonNullLazy.java:25) ~[forge-1.19.2-43.2.0_mapped_parchment_2022.08.14-1.19.2-recomp.jar%23177%23184!/:?] {re:classloading}
    at com.mystchonky.arsoscura.common.integration.occultism.OccultismIntegration.registerJarBehaviours(OccultismIntegration.java:18) ~[%23183!/:?] {re:classloading}
    at com.mystchonky.arsoscura.common.integration.occultism.OccultismIntegration.init(OccultismIntegration.java:11) ~[%23183!/:?] {re:classloading}
#

any clue what this could mean ?

#

oh it needs to be in postInit

radiant depot
#

Intrusive holder is when you register a blockitem without the block

#

At least usually

bright shore
#

um

#

can someone help me figure out why IntelliJ is opening Ars wrong?

#

WTF is this

#

what is going on here

#

the actual folder structure has generated and main inside of source

#

which is empty according to intellij

#

oh wait is it just reorganizing it weird in the view for some reason?

neat mango
#

does putting a mob into a jar reset the mob somehow ?

mossy hollow
#

The entity gets saved and removed from the world afaik

#

What do you mean reset?

neat mango
#

For familiars, do we need to datagen LANG entries for these ?

#

same as glyphs ?

radiant depot
#

Need? No. Can? Yes

neat mango
#

For glyphs, the description wouldnt show up unless datagen-ed/had lang entries

radiant depot
#

You need to make the lang entry

#

But datagen it is not mandatory, I meant

neat mango
#

oh datagen is not an issue. I wanted to know if the lang entries are required are not

#

just need to copy paste this for familiars :)

neat mango
#

To add custom familiars, would I need to use custom entities/models/renderers?

#

I am trying to add ars functionality to occultism familiars and dont want duplicate all the models and renderers

radiant depot
#

Custom entity yes, model and renderer only if the occ classes would be incompatible with the FamiliarEntity class.

neat mango
#

just need to figure out how to dispel

radiant depot
#

Dispel?

#

Or use the keybind

neat mango
#

when you switch familiars or use the dispel button

#

okay I think I am stuck

#

all Ars familiars inherit from Ars' FamiliarEntity which takes care of managing all familiars, their count, terminations, events, etc.
all Occultism familiars inherit from its own FamiliarEntity which has all the brain and logic

#

I need a way to combine them both. is it legal to create an entity and have another entity field ?

radiant depot
#

Make a copy of Occultism Familiar class but make it extend Ars Familiar class? Then use that as a base

#

Can't tell how spaghetti that would be without knowing how the occultism code is

neat mango
radiant depot
#

In Java a class can only extend one class (but implement limitless interfaces)

#

So you have to use a child of Ars and copy paste the logic of the occultism fams

ashen grail
#

could someone remind me whether Ars Nouveau makes any use yet of Capabilities for its source system?

#

i had an old project idea that i attempted work on involving Applied Energistics 2 integration to work directly with source as an object capable of being stored and handled across an ME network

#

if i am to resume it and add, say, a P2P tunnel for source then it would require an associated capability to be provided by Ars

radiant depot
#

It doesn't afaik, but Bailey knows better

ashen grail
#

actually i should be more specific: does source use a cap?

zealous zenith
#

No

#

It has methods you can use instead of an interface though

ashen grail
#

i wonder whether that will be enough in order to allow things like AE2 interfaces to provide source to anything that needs it

#

supposing that i do eventually return to that add-on idea i had a long while back

neat mango
#

@zealous zenith did you notice any item order scrambling in creative tab for 1.20 ?

#

I am following your implementation for my port but them item order is all random every time I relaunch

radiant depot
#

public static final RegistryObject<CreativeModeTab> TAB = TABS.register("general", () -> CreativeModeTab.builder().icon(Registry.SHADOW_GEM.get()::getDefaultInstance).title(Component.translatable("itemGroup.eidolon"))
            .displayItems((params, output) -> {
                for (var entry : ITEMS.getEntries()) {
                    output.accept(entry.get().getDefaultInstance());
                }
            }).build());
#

Try this instead?

#

Using your own ITEMS deferred

#

I think Forge registries order can be shuffled a bit, your own will keep the code registration order

neat mango
#

Yeah thats what I found out from NeoForge discord just now

#

earlier I was using ForgeRegistries.ITEMS with a modid check. Now I directly use my own DR

shadow helm
#

Before I beat my head against a known problem:

* What went wrong:
A problem occurred configuring root project 'Ars-Instrumentum'.
> Failed to notify project evaluation listener.
   > 'void org.gradle.api.internal.artifacts.repositories.descriptor.FlatDirRepositoryDescriptor.<init>(java.lang.String, java.util.Collection)'
   > 'void org.gradle.api.internal.artifacts.repositories.descriptor.FlatDirRepositoryDescriptor.<init>(java.lang.String, java.util.Collection)'

Anyone got an idea why gradle is throwing a hissy fit?

radiant depot
#

Is that your usual 1.19?

#

Welp, I forgot to open the PR for 1.20

shadow helm
neat mango
#

did you upgrade gradlew?

shadow helm
#

Yep

#

8.2.1 should have been the target

radiant depot
#

I opened the PR after the message anyway

shadow helm
#

Saw it, merged it, will test it locally as soon as I am on my tower and not the work laptop.
Thanks again!

shadow helm
#

Of course your Gradle setup works while mine didn't.
Is forge gradle that specific with which gradle version it wants to run, since I've had 8.2.1 and not 8.1.x like you?

zealous zenith
#

Gradle plays favorites

shadow helm
#

Makes sense

radiant depot
#

I have 8.2.1 as well?

#

Oh nvm

#

Idk why. Maybe it's really a matter of versioning

#

I am only sure of the fact that FG6 requires gradle 8.1.+

#

And NeoGradle is forked from 6

bright shore
#

hmm

#

if I want to know which item is casting reactive I'm going to need a mixin aren't I

#

๐Ÿ˜ฆ

#

how bad of an idea is it to mixin ReactiveCaster to make it override CastSpell? I can't figure out another good way to do it

#

later down the chain there's no access to the item (but here the ReactiveCaster seems to have it)
and further up the chain I'm redoing too much work which leads to more compat issues

radiant depot
#

isn't the itemstack of the casting contex included now?

bright shore
#

ok but hear me out

#

how do I know whether it cast from the reactive enchant or not?

#

the ISpellCaster isn't saved, only a living entity

#

which doesn't help

#

is it?

#

I don't see it maybe I'm just missing it

#

that might make life easier

#

nope that info doesn't look to be saved anywhere ๐Ÿ˜ฆ

radiant depot
#

check if the spell on reactive tag of the item match with the spell in the context?

bright shore
#

that's hacky as heck

radiant depot
#

only edge case, caster tool with reactive and both spells are the same

bright shore
#

interesting concept I guess

bright shore
#

hmm, might be worth it

#

hacky way to detect vs hacky mixin
choices choices

#

hmm, slight frustation

#

how do I make this work with discounts?

#

there's no chance to modify the casting cost of a resolver after discounts take effect

radiant depot
#

Pre event?

bright shore
#

huh

#

it does run getResolveCost again

#

so I could add the discount to the spell then

#

based on the calculated cost before I run

#

alright I'll see how well this works

#

wait no that doesn't work though

#

because what if an event or buff modifies the spell?

#

I don't want that to make it fail

#

though this does provide one more piece of inspiration

#

I could always just use multiple mixins to reduce how invasive the mixins are

#

and use the event for the main part

#

one mixin on SpellContext to make it store a value representing whether it's a proactive or reactive cast

#

...

#

wait the event doesn't have access to the resolver

#

so I can't check the discounts anyway ๐Ÿ˜ฆ

#

... wait a minute

#

getResolveCost removes the discount from the spell

#

so if a spell has a discount on it, it won't apply when the mana is subtracted

#

ssince that's called a second time when expending mana

#

so discount on spells doesn't even apply...

#

is that a bug?

#

seems like a bug

#

I guess I could do 3 mixins then to make them less invasive and more effective

#

one on spell context to make it be able to set and get a bool for whether reactive was used

#

one to make reactive caster override CastSpell so that it adds that flag to spellContext

#

and finally one for SpellResolver expendMana

#

wait no I'd need a fourth for enoughMana

#

bruh

#

funny enough since inject mixins can stack

#

I'm still convinced this is less invasive than having one override mixin breaking a huge function

#

no idea what performance looks like on way or the other

#

wait does it count as 4 mixins or only 3 if I'm doing 2 injects on 1 class?

#

I don't know how terminology works

#

oh well

#

um

#

ah, of course

#

now the place I need to mixin is getSpellResolver on the ReactiveCaster

#

at which point I can make the spell resolver save the flag

#

bringing it to 2 files I'd need to target

zealous zenith
#

what version?

bright shore
#

1.19

#

did you change that in 1.20?

zealous zenith
#

no

#

but why not just make a PR and include the itemstacak?

bright shore
#

the itemstack is included

#

it's the ISpellCaster that isn't

#

plus, there's no way to use an item instead of an entities mana that I can see

#

not without a custom spell resolver

#

which would be an option

#

but requires another mixin anyway and then it breaks if being used in a situation where an EntitySpellResolver would normally be used

#

do I just not understand modify variable? or is this a bug in the IDE error checking?

#

aaaaand the caster tool in the spell context is a copy ๐Ÿ˜ฆ

#

this is turning out so hacky ๐Ÿ˜ฆ

#

all I wanted was to make reactive use the durability on the item casting it

#

it works!!!!

#

yay I got it to work! had to store the itemstack on the resovler but it works now!

bright shore
#

this enchant is basically the magic pickaxe / weapon everyone has wanted lol

#

it does work

#

and it's arguably cooler because it's more versatile

#

oh goodness imagine this on modded armors

radiant depot
#

Indestructible say hi

bright shore
#

is that the one that keeps it at full durability? or the one that keeps it at 1 durability?

#

if the durability is too low you still use mana

#

but yea any mods lettting you have infinite full durability will make this suuuper busted

radiant depot
#

Both my mod and ForbArcanus keep them full

bright shore
#

... your mod adds infinite durability

#

ok I'll make the enchants incompatible

#

now I just need to decide a recipe for the enchant in the enchanting apparatus

radiant depot
#

I mean, not an addon

#

A separate, pretty ignored other mod

bright shore
#

oh

#

the one called indestructible?

bright shore
#

um

#

on 1.19 for some reason adding augment limits to my own glyphs isn't working

#

aside from this override what do I need to do for it to apply?

 @Override
    protected void addDefaultAugmentLimits(Map<ResourceLocation, Integer> defaults) {
        defaults.put(AugmentAmplify.INSTANCE.getRegistryName(), 2);
    }
#

also, is this a bug with using too much extra mana LOL

#

if your max mana is like 100 and you use like 1000 mana this happens

#

well, try to cast a 1000 mana spell

bright shore
radiant depot
bright shore
#

I'll give it a shot

#

don't see how it could make a difference though as the method in AbstractSpellPart just calls the addDefaultAugmentLimits method

#

which BTW I checked and the method is being called

#

nope just tried it and no luck

zealous zenith
#

Is your config using it

bright shore
#

what do you mean

#

what am I meant to do from my mod's side as far as config goes?

#

I thought it's taken care of when glyphs registernow

zealous zenith
#

are you using a custom spell part class?

#

default augments are just used as part of the config generation, if you didnt wire your configs because you are not using effect or form, it isnt wired

bright shore
#
public AbstractSpellPart registerSpell(AbstractSpellPart part) {
        glyphItemMap.put(part.getRegistryName(), part::getGlyph);

        //register the spell part's config in
        ForgeConfigSpec spec;
        ForgeConfigSpec.Builder spellBuilder = new ForgeConfigSpec.Builder();
        part.buildConfig(spellBuilder);
        spec = spellBuilder.build();
        part.CONFIG = spec;
        ANModConfig anModConfig = new ANModConfig(ModConfig.Type.SERVER, part.CONFIG, ModLoadingContext.get().getActiveContainer(), part.getRegistryName().getNamespace() + "/" + part.getRegistryName().getPath());
        ModLoadingContext.get().getActiveContainer().addConfig(anModConfig);
        return spellpartMap.put(part.getRegistryName(), part);
    }
bright shore
#

and abstract effect does override build config to call the method...

#
[11Aug2023 17:14:55.160] [modloading-worker-0/INFO] [com.dkmk100.arsomega.ArsOmega/]: Ars Omega Constructor
[11Aug2023 17:14:55.168] [modloading-worker-0/INFO] [net.minecraftforge.common.ForgeMod/FORGEMOD]: Forge mod loading, version 43.2.0, for MC 1.19.2 with MCP 20220805.130853
[11Aug2023 17:14:55.168] [modloading-worker-0/INFO] [net.minecraftforge.common.MinecraftForge/FORGE]: MinecraftForge v43.2.0 Initialized
[11Aug2023 17:14:55.397] [modloading-worker-0/INFO] [com.dkmk100.arsomega.ArsOmega/]: hell flare get default augment limits
#
@Override
    protected Map<ResourceLocation, Integer> getDefaultAugmentLimits(Map<ResourceLocation, Integer> defaults) {
        ArsOmega.LOGGER.info("hell flare get default augment limits");
        super.getDefaultAugmentLimits(defaults);
        defaults.put(AugmentAmplify.INSTANCE.getRegistryName(), 2);
        return defaults;
    }
zealous zenith
#

did you delete your config and regenerate it/

bright shore
#

...

#

oh wait yea it's common config isn't it

zealous zenith
#

configs don't dynamically apply changes ๐Ÿ˜›

bright shore
#

I thought it was the server config for some reason

#

I created a new world

#

ooops

#

nice it works

#

sorry for bothering you with my noobiness

shadow helm
radiant depot
#

please note this for 1.20 addons

#

Datagen path will need to be adjusted or the "normal" folders moved

#

for datagen, just don't override the getPath and you should be fine

radiant depot
#

Short version for @shadow helm :
All patchouli pages from addons now needs to be inside assets/ars_nouveau/patchouli_books/worn_notebook to show up

#

I'd keep addons linked to 1.19 branches for a while anyway

shadow helm
#

Don't change your default branches then ๐Ÿ˜

#

Joking aside, I'd only try to switch the wiki to 1.20 once the new book is live, unless you say that's to late

radiant depot
#

Nothing important has been added or changed for now, so it should be fine to wait for that too

neat mango
#

so is that a yes for updating addons ?

radiant depot
#

a semi-breaking change PR have been made, not yet merged