#General & Development Help
1 messages · Page 14 of 1
wdym can't utilise? as you can't receive them?
I could share curse points too if you want
i can recieve them just that i wont be able to use them on local stuff
there are a couple of projects ranging from a bit of touchups to me needing full artistic design help

o boi
yea
latter
-# 
anyhow i aint got the kind of commitment to do long term project helping
ill just take a singular month's worth of nitro for some short work if you really need it

(is it cheap enough for me to slack off and just get some things done)
that sounds very reasonable. can I dm you details in a few days ?
yea sure
perfect
To be fair, the existing texture is somewhat of a placeholder anyway until I get the time to design something better suited for a “master of the elements”
i actually proposed the idea of a black set just because
lol
figured that being netherite colored would also fit in with the "protection of the elements" upgrade to spell books
somethinh that animates between colors?
I haven’t figured out animated armor yet, and what’s there is workable for now until I have the time to get around to it.
if you make it greyscale, you can tint it in code and animate it like that
might not be perfect
tried animating the armor texture like other textures yet
or you meant moving the model itself because its geckolib
Wait you guys are using blockbench right?
Yes
You can put animated decals on things
One sec
Yea by making a texture 2d and changing its resolution to be 16 by 16 times the number of frames it lets you switch between the 16x16 sections and animate it. There was a vid hold on
My go-to artist @queen breach is also open for commissions if you're interested
They have published pricing for MC textures and models
always go for the one that seems more prepared
i love to cut corners
definitely not professional attitude wise

They only just finished their carrd the other day, I've been telling them to do it for ages because I got them into pixel art for Ars Additions
Jarva. I remember you posted a tutorial for mod making somewhere
There's some pinned in this channel
Ic, thank you
guess what
👀
So I'm wrong?
nice
Is there a way to add/change the perk attributes of equipment? I tried giving the attribute ars_nouveau.perk.max_mana to an iron helmet and it didn't show up in the tooltip nor did it have an effect on my mana pool.
When I added the attribute to a piece of mage armour it instead cancelled its effects of increasing max mana, so it's definitely doing something
The mana value needs to be synced when the attribute is updated, but I don't believe this is possible from the command
Whats the reasoning behind making the armor take durability damage but self heal. Why not just get rid of durability?
Probably just to make unbreaking and mending still useful
people have managed to break their Ars armor believe it or not
It also used to or still does cost mana to repair it, so it has a player tax
it does cost mana still
it's not usually more than a second or two of mana regen to recover though
I thought it uses source and not player mana. I never noticed it before
you really only notice if you're looking for it
like hovering your mouse over the item while watching your mana bar
and watching it go down for a moment when the durability goes up
It shows me my armour durability get recovered next to my hotbar
and my mana bar appears randomly right when this happens
so i found out that way
It's noticable if you're early game and really needed that mana to kill the creeper right in front of you
But no. Gotta fix that hole from the skeleton arrow first
And now the scorch mark from a creeper blast
i never had that issue tho
My Ars armor broke when I got hit for 5m damage.😜
Which is why I always use an Eternal Stella on it now.
Ice and fire mobs can do it
Wait what's the current distro of Java?
Thats what it's called right?
Actually I figured it out
So what's the version (ig) of Java that Minecraft uses?
The thing is I would loose my health before the armor durability😊
so yeah back to spawn lol
With the gorgon it does enough dmg to kill you and your armor
21 i think?
Correct
just to not make you look for them later on, in 1.20 to 1.21 neo-port you may use these in IntelliJ's replaceInFiles to quickly clear some errors:
new\s+ResourceLocation\s*(\s*(.+?)\s*,\s*(.+?)\s*) ----> ResourceLocation.fromNamespaceAndPath($1, $2)
RegistryObject<\s*(\w+)\s*> ----> DeferredHolder<$1, $1>
RegistryObject<\s*(\w+)<\s*(\w+)\s*>\s*> ----> DeferredHolder<$1<?>, $1<$2>>
Let's start with the actual file and move on from there
here
what i want to do is right click a warp relay with the item and it sends source to me as if i was next to a sourcejar
I'm on mobile and about to go to sleep and already tried to teach you discord code formatting.
You'll either have to work with me or wait until tomorrow when I'm back at my desk and can read that file comfortably.
wdym work with u?
Using the discord code formatting tools like I initially asked you in #general-and-help and just asked you again.
But at this point I feel like you and me both are better served by me going to sleep and taking a look at this when I'm awake again in ~9 hours
okay. ill message here when im ready which is gonna be in more than 9 hours. well thats my cue to sleep byee
So just to get this right, you want the item to remember the position of the warper relay and to pull source from the warper relay into the player, converting it to mana?
What exactly isn't working? Because There's loads of things that could go wrong there, starting from the warper not being chunkloaded to the warper just not maintaining an internal buffer at this moment
oh actually the code is the problem. i have trouble controlling source. in the code i cant seem to find the functions that manage source. i kind of want it to be like how when you use a spellbook near a sourcejar, it takes soutce from there. can u help me? do you understand what im saying? cuz i can be a bit clonky with words
i kind of want it to be like how when you use a spellbook near a sourcejar, it takes soutce from there.
It doesn't
I understand what you want to do, but it's not working like that
Source is there for automation, Mana is your own personal spell casting and there are no bridges for that in the base mod
when i cast a spell near a sourcejar it takes the source, no? i wanna use that mechanic so i can use the source beacon item to have basically infinie spells to cast as long as i have an awesome source farm
no
that doesnt happen
It does not.
id also say itd be horribly unbalanced
I don't know what else to tell you and how else to explain it other than iterating that Source and Mana are completely different systems, one for automation, one for personal spell casting with no bridge between them
inb4 transfer mana glyph
You can of course try to code that bridge, yes. But it's going to need a bit of thought since a warper usually mostly takes and sends, not having a lot in it's internal buffer. Maybe linking to a jar would be better?
it doesnt sound too hard to do but i wouldnt advise breaking the balance
how about the sourcebeacon acts as a ender jar but you can hold it
that might be possible. You'd need to look at how additions handles ender source jars
is there somewhere i can get the sourcecode?
It's on github
okay guys i really need help with the code, i cant find out how to manipulate source. i cant find the actual functions
oh a little more help, how do i add it to the ars nouveau creative item tab?
https://github.com/baileyholl/Ars-Nouveau/blob/22a486baaa47ea9a7e30958052bbbed56d5871a7/src/main/java/com/hollingsworth/arsnouveau/setup/registry/CreativeTabRegistry.java#L13
You should be able to do so through here? It's been a while, not sure how it works in 1.21
Repository for the Ars Nouveau minecraft mod. https://www.curseforge.com/minecraft/mc-mods/ars-nouveau - baileyholl/Ars-Nouveau
Okay ty sm, i completely finished my modpack with the texture and the recipe and the code. I can now finally link my Source Beacon to a jar and wirelessly get source and rege mana instantly. Ty
Heyo! If you make a class (Lets say ClassA) that extends another class (ClassB) that also extends a class (ClassC)
Is there a way when using a super to use ClassC instead of ClassB
thanks
For my actual use case. I have a entity that extends the Phantom, but I'd like the aiStep and tick to super the mob class instead of the Phantom class
((Mob) instance).method() maybe
idk, I couldn't find a way online. Just gonna extend flyingmob instead. Thanks tho.
Annoyingly having issues with the summon's owner being lost when you re-open a save. Swear I'm using the same thing the summon skeleton does though
you know what....
summon undead seems to have the same issue
for interfaces its Interface.super.myFunc, but for classes if they are overridden then no iirc
so classa extends classb and classb extends classc?
oh nvm
Just trying to learn how to make Capabilities. Is there a way to search in GitHub for the 1.20.1 version? Whenever I search it goes back to the latest version
Or if anyone knows, where is the Registry setup? I don't see a listener for 1.20.1
search only indexes main branch yeah
id just clone and use ripgrep or something
capabilities should just be a deferredregister though
Press . and it'll open a vscode instance of the repo, and then search using that
Thanks, I was able to get it figured out. But that will come in handy in the future
Something simple for caps under lex? Doubt
Hello
What IDE would you recommend for Minecraft modding?
I think most of us use IntelliJ
Fair enough
Is there even another option besides eclipse? vscode for Java sounds terrible
Notepad
Notepad, command line, and clinical depression
A physical notepad, scanned with an old HP all-in-one
when you quite literally write the code
When you write the code to write the code
Explicit support of the neogradle should only be on IJ and Eclipse
Good to know
that wouldn't be ab ide anymore 😔
Netbeans is still a thing, I think? Not a good thing, but a thing?
It seems to still be under active development which is pretty crazy
its not "supported", its just that no one thinks about it that much and hasnt given any significant problems
it runs eclipse language server under the hood, so completion and what not is quite similar to eclipse
Okay, so I've had the idea for a dungeon in the sky. But the issue is that the structure would be far too visible and stick out like a sore thumb. So had the idea of a "cloud block" which would be a block that would only be visible when you get close enough. Now would it be possible to make a block like this that would hide the blocks behind it? Or if someone can think of a different solution that would be appreciated
Skyweave
well, they could look for the shadow it casts on the ground..
Has the additional advantage that the illusion isn't perfect and you can spot it
I'm fine with clues like that. Just don't want something that completely dominates the skyline
make your structure out of shulker boxes
lol
oooo, didn't know this was a thing. Was it in 1.20? I may have to recreate it if not
yeah it was in 1.19
fire, well that was easy
remember testing it while we were developing Arcane Isles
Might be a bit of an FPS drop
yeah, that's the one reason I wasn't suggesting it
I used it to hide Relay Storage Lecterns in Arcane Isles
if you plan on having a large dungeon, that could be a lot of skyweave
mmmm, yeah that may be an issue.
I was going to make it relatively large
Ah... What's a bit of an FPS drop, we hate poor people, right?
Not.
And MC is the great equaliser anyways: Runs shit on all hardware.
I may just have to bite the bullet and have it be super visible, would just make it really rare
what about two structures? ones a red herring (like a ruins) and the other's the real thing
nah, it's more of an issue of me not wanting to have some big floating structure in the sky. I don't overly care if it's hard to find
Hm. 2 structure's an idea though, although a (dev time) expensive one:
Ruined portal on the ground, empty dimension with the dungeon inside it on the other side of the portal
something small and light blue would be hard to see in the sky
oh yea
you could make a far smaller island if so
easier to see at night, perhaps
but you could also hide a portal island with skyweave much easier than a whole dungeon
Hmmm, I kinda like this. I have some small floating ruins in the sky and it leads to the main structure elsewhere
Thanks all. I don't mind teaching myself to make dimensions so I shall go with this
I wish you well. May the coding gods be ever in your favor and my idea not lead you to too much cursing!
mildly goofy I'm using a whole ah dimension for one structure but wdyd
I've already done a lot of taking on more than I can chew so atp who cares
make the skybox shybuya trust
mmmm nah
oh its not simple
no not build a city
im pretty sure you can replace the skybox itself
wth a pic of shybuya
😭
bro is definitely buncling it
lmao
Now this is an Ars trinkets glyph
I can’t say much considering we’re filter buddies
Is there any way to make caster tomes scribable in survival mode?
I’m wanting to give a blank caster tome as a quest reward in Expeditions that the player can then scribe with a spell of their choice.
You'd probably just want to make a new item at that point that just looks like a caster tome
Why, if it’s going to do the exact same thing?
In creative mode you can scribe them at a scribe’s table - I’m just trying to figure out if there is some way to either enable that functionality in survival mode or create a recipe that will allow for it.
That's incredibly strong, but you can do it with a mixin
Otherwise, I don't think so
Hmmm. Beyond my skill then.
It was going to be an ultimate reward for completing whole sections of the quest tree, like “learn every glyph” or “craft every armor thread”
oh speaking of, do you know where the file is with the caster tome spells? Was thinking of setting up something to automatically use the list for random mage spells
I was struggling to track it down though
Repository for the Ars Nouveau minecraft mod. https://www.curseforge.com/minecraft/mc-mods/ars-nouveau - baileyholl/Ars-Nouveau
ty
I was already in the file when you asked😂
I guess I will just have to make a selection of premade tomes for the players to choose from as rewards.
Might actually work better that way as I can make themed spells for different parts of the quest tree.
lol perf. I may just do it by hand but my list of spells is way too short rn
https://github.com/AdamRogres/AdamsArsPlus/blob/master/src/main/resources/data/adamsarsplus/mysterious_mage_spells/spell_list.json
https://mclo.gs/9tmMNAM
Game crashes when searching in creative inventory
any ideas why?
Seems like it's related to trying to render creative tooltips, but I couldn't tell you for which mod or why
looks like something related to irons or an addon for irons
looking back at it i might know
yeah i figured
I'm figuring out how to do percentage attributes
and forgot about that
it still crashes after removing that part tho..
hold on...
did i forget to ctrl+s
no i did not
i did
Percentage attribute?
If you mean something that multiplies instead of adding, there's the operation for it. In a version that multiplies only the base value of the attribute and one that multiplies after the addition of the others
When making datpacks do I just zip them up using something like winzip?
Is their a specific way that I'm supposed to package it?
nvm I figured it out, got my datapack working
any ideas of how I can debug this ?
never worked with network tools before or did any kind of perf testing
20kb/s is nothing
Can you reproduce it?
Does it happen with other Occultism entities?
I know but still I should atleast look into it
maybe. let me check
I can replicate it. It doesn't happen with entities outside the jar. only when inside
doesnt happen with other mobs
Interesting, it may be linked to the spirit init?
If this is impacting the test server, I use a linux client with quite a few dev tools installed for Minecraft. Let me know what you want to capture and I can try to examine the network flow.
I won't be able to use a standard tool like wireshark since I won't have the SSL certs and keys to decrypt the connection between the server and client, though.
XFactHD made this mod which I am probably gonna use https://github.com/XFactHD/PacketLogger
no binraries yet
Does anyone have an example of an inject on a record?
Are they different from usual classes or are you trying to inject into one of the hidden methods?
I was being dumb because I'm rusty and I couldn't remember how to properly mixin
I was trying to extend it to set the this type, but forgot I could do it without
that sounds like a weird thing to do. what are you trying to do?
@Mixin(Enchantment.class)
public abstract class EnchantmentMixin {
@Inject(method = "isSupportedItem", at = @At(value = "HEAD"), cancellable = true)
private void isSupportedItem(ItemStack item, CallbackInfoReturnable<Boolean> cir) {
HolderLookup.@Nullable RegistryLookup<Enchantment> enchantmentRegistry = CommonHooks.resolveLookup(Registries.ENCHANTMENT);
if (enchantmentRegistry == null) return;
Holder.Reference<Enchantment> enchantment = enchantmentRegistry.get(EnchantmentDatagen.SPELLWEAVE_ENCHANTMENT).orElse(null);
if (enchantment != null && enchantment.value().equals(this)) {
if (item.has(DataComponentRegistry.ARMOR_PERKS) || item.is(SPELLWEAVE_INCOMPATIBLE)) {
cir.setReturnValue(false);
}
}
}
}
yeah that makes sense
probably should not use inject and use one of the mixinextras methods
ModifyReceiver was it
the way mixin works, you are overwriting every enchantment instance regardless
so it might break when another mixes in same part of code
I check specifically that it's only my Spellweave Enchantment
and Inject at HEAD won't change
yeah you can retain that. no issues with that
Inject is the problem. some mixins will be incompatible and nothing stops other people from doing stupid stuff like redirects.
using ModifyReceivers works with redirects too if I understand correctly
No, ModifyReceiver should be used instead of redirects
Nothing wrong with an Inject
I could use ModifyReturnValue, but not much point
ModifyReturnValue means all the other code in the function still runs
There's no exiting early
could be. I might be mixing stuff /jk
Should be used in favour of Redirects when you are simply inspecting or conditionally modifying the receiver of an operation, as unlike Redirects, this chains when used by multiple people.
If you wanted to add support for an additional augment and resolve functionality for an existing glyph, e.g. EffectConjureWater, is that possible or would I have to use a mixin?
I could also just add a new Effect but would be cool to reuse what's there (for conjuring a different, temporary water, a bit like Magefire but Magewater)
Well there are limits, more than that is Mixin field
Additional augment is easy
Elemental has example
Resolve functionality depends, there might be a Post event for the glyph resolve
But might not cover your specific case
Nice, I'll have a look, thanks!
how could I set a tier for glyph?
I tried to put
@Override
public SpellTier defaultTier() {
return SpellTier.THREE;
}
inside of glyph but it dosn't works
That's just for the default tier, the tier itself comes from the config file, when developing you'll need to regenerate the config
which config you mean?
bc I didn't found any config where I could set a tier of glyph
I looked on another addon where guy just set manacost inside of glyph.
For example
I could set a School inside of glyph, but can't change a Tier or mana cost inside of glyph
it's just doing nothing
The primers in this repository are meant to provide a high level, non-exhaustive overview on migrating a mod between two Minecraft versions. Each subdirectory represents the version the primer is written for.
all primers. neatly documented on the website. no need to go to gist hunting
(even has old forge primers)
Hi! I was wondering how the additive particle rendertype was fixed. I tried using yours as an example but the particles only render correctly in fabulous graphics settings. (Tho they get rendered behind transparent blocks like water or glass). If i try to play my mod with yours the problem gets fixed, so i assume its a mixin? I tried looking for it in the source but i cant find anything related to it.
Im using neoforge 1.21.1
the only thing that seems to have changed in the particle update regarding the glow one was the render type but that shouldn't affect another mod...
https://github.com/baileyholl/Ars-Nouveau/blob/91ae349c3027497c43732f70773da29d586ce0b5/src/main/java/com/hollingsworth/arsnouveau/client/particle/ParticleRenderTypes.java#L18
Repository for the Ars Nouveau minecraft mod. https://www.curseforge.com/minecraft/mc-mods/ars-nouveau - baileyholl/Ars-Nouveau
uh, might actually be still unused. the uses still points to the old one, was it an attempt that got scrapped later@zealous zenith
Okay but i tried to use the ember one and it didnt work as in your mod
When i played with ars nouveau the problem solved
in a particle? youd need to post the code or branch
hello, Im trying to create a recipe for adding thread slots to armor from other mods, but seemingly there is more going on that just a tag being on the item as assing the tag to the item hasnt added the slot tooltip or enabled the armor to be placed onto the alteration table
@hasty vapor
Check the source code for Ars Additions
It requires a few different changes to allow it on armor that isn't owned by your mod
I could potentially add another method for enabling threads on specific armor sets
how does .addDeltaMovement work
Delta movement is the speed vector basically
Difference in speed, more likely
The speed doesn't conserve well, there's a lot of decay
So if you add delta movement once you usually end up with a 
i tried to copy your rendertype but without the configuration and i still have this issue
@Override
public BufferBuilder begin(Tesselator buffer, TextureManager textureManager) {
Minecraft.getInstance().gameRenderer.lightTexture().turnOnLightLayer();
RenderSystem.enableBlend();
RenderSystem.depthMask(false);
RenderSystem.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA.value, GlStateManager.DestFactor.ONE.value);
RenderSystem.enableCull();
RenderSystem.setShaderTexture(0, TextureAtlas.LOCATION_PARTICLES);
RenderSystem.enableDepthTest();
return buffer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.PARTICLE);
}```
fabulous graphics vs fancy
Not sure if anyone is willing to do it, but maybe sharing the full code in the form of a github repository for others to check might be easier at this point
is there a way (probably with kubejs) to add items to the recipes for every single glyph? bonus points if i can do it by tier as well
for example i want to add 2 arcane spirits from malum to every single glyph recipe
Yes there's definitely a way with kubejs
I don't know the script off the top of my head
You'll want to get every recipe of the scribe type, and then overwrite it with the modified items
You don't have the tier at hand but you can maybe base it off the exp it needs since they are usually based only on tier
oh, that additive one isnt even used. thats left overs from the particle update. It was made for a smoke particle but never used. it was designed to only work on fabulous because it didnt look right on fancy, so it was conditionally swapped in.
The vanilla rendering pipeline is extremely cursed and probably doesnt support whatever effect you are trying to recreate on fancy
The real question is wtf is it suddenly working if loaded with Ars
And technically, we don't have an answer
oh that’s actually a clever way of doing it
I wasn't adding .hurtMarked
Yes but i tried to copy ember one as well
And it didnt work
Its odd because its the same code but different result
i managed to fix it but i have no idea how i just wont question it
with further investigations
you actually didnt fix what i was looking for
so i apparently found a bug
this is just your mod
like i only play your mod and its dependencies
where do i report this
i dont honestly know if its considered a bug
i know its because the blend func you use for ember rendertype
you shuld change GlStateManager.SourceFactor to something else i think to fix it but does it actually need to be fixed?
Nah, it's just how additive works in fancy
If you add nothing, you don't see nothing
You start from transparent and add colors
To get black in fancy one would need something more like a subtractive one
Like Omega did for a variant of the mage light
Obv assuming to keep the glow particle, with sprite based particles without transparency the black shows
There are many fundamental flaws in mc rendering and they may only get fixed in 1.22 lifecycle as they progress in dismantling the old stuff in favour of the vibrant visuals stuff
Which won't be that easy to support on the dev side as it's a lot of changes but when we get to that modding age it should allow better stuff...
This was the variant of ember render capable of dark particles
A bit funky with high rgb values iirc
But worth trying out I guess if you need dark transparent ones
would i need to make a mod to let the cut spell count as killing with a knife from farmers delight? or could i do it thorugh a data pack or somethign
Looking to find how I can scale the size of a model. It's easy enough to change the hitbox but I'd like to make the render bigger. Trying to look for an example but I haven't seen one yet. ty
If it's an entity you can use the new scale attributes?
They are not yet on 1.21
You can probably just multiply the matrix stack in the renderer, the bookwyrm familiar is scaled down that way
Another option if they are geckolib entities is to have an animation do that, with a dedicated animation controller if it has to grow gradually for example
https://modtoberfest.com/ reminder
alas I am but a humble addon dev
have you read the objectives? its just making pull requests that correct more than typo'
s
I might need to submit my addons to see if I can get some of my minor bugs squashed
there are some ars addons too!
additions mainly
oh I think only jarva and lyrellion joined so far (and bailey ofcourse)
Would anyone know where the damage from colliding into a surface with an elytra is calculated / executed?
all I really want is a way to track a collision with a block and the speed at which it happens
Think I found it under 'travel' for the LivingEntity Class
Wasn’t able to figure out a good way to make this work. I haven’t touched Mixins, but would there be a concern with trying to just interject my new effect with the isFallFlying check for living entity block collision
Do you want to have an impact damage for non-elytra smashing against a wall?
Yeah, for what I literally want. I want an effect that makes you take damage upon smashing into a wall. So you could effect someone, knock them back, and then they take damage if they're stopped by a wall
Remember looking into it and being unable to figure out how without bad side effects
Do you remember what those side effects were? Ideally I'd like to not have to touch mixins but I haven't seen a way to track block collision reliably from an event and ticking checks are too slow
Well something like tricking the game to think the elytra is on but without the flying thing
hmm, the only problem with that is you would specifically need to trick it to think you're gliding or as it calls is "FallFlying". Which is kinda what I'm thinking, to make the impact check into:
(isFallFlying || hasEffect(NewEffect)) type of thing
wrapWithCondition from mixin extras i think
Or something like that
ty I'll look into it when I get the chance, I'm just thinking about it at work rn lol.
It may just be WrapCondition
I have limited connection at the moment, otherwise I'd look it up
Wait isn't fall flying an attribute
I'm referencing a check within the LivingEntity Class which is used to see if an entity should take damage upon collision
I'm sure the term fall flying is used a bunch in regards to gliding
Ic
Yay!
Tackled mixins and thay seems to have done the trick
also made sure I didn't break normal elytras in the process lol
Nice
If it works out it might become part of a feature in 1.21
Impact glyph is something Goo wanted
I’m sure it could be improved and tweaked but it seems to work as intended
it would be cool!
#1350826954596814958 message
The “impact” part is working, would just need to make it trigger the spell instead of straight damage.
is there a way to check for beneficial / harmful effects on an entity?
as in not check for a specific effect but just check if theres any harmful effect active
You should be able to just get all effects and loop over them
Hmm, so I see I can do something like: entity.getActiveEffects()
But idk how to actually use that to check all of the effect instances
It should return a list of effect instances, right? You should be able to use a for loop to iterate over them and check each one
kinda? I haven't really used "Collectives" or what it is. I just use arrays
They work very similarly, just search up "loop over collection java"
okay, got another issue.
public void render(FireEntity pEntity, float pEntityYaw, float pPartialTicks, PoseStack pMatrixStack, MultiBufferSource pBuffer, int pPackedLight) {
pMatrixStack.pushPose();
pMatrixStack.scale(pEntity.size, pEntity.size, pEntity.size);
super.render(pEntity, pEntityYaw, pPartialTicks, pMatrixStack, pBuffer, pPackedLight);
pMatrixStack.popPose();
}```
Trying to make an entity that can be summoned with different sizes. But it doesn't seem like the render method will update when .size is changed
if you want a different way there is an entity attribute for size/scale which you can use
it handles collisions too
using an attribute modifier you can apply it to specific entity instances instead of the entire class
Is that not for 1.21 an up?
This is 1.20.1
Is size a field in the entity?
It's likely simply not synced to the client
If the problem start with spawning it in different sizes, probably needs extra spawn data
The animated head should be an example on how to do that sync
I tried but there must be something I'm still doing wrong. Trying to use slimes as an example but I can't crack what's wrong
are you changing the size on the client and serverside or just serverside?
I doubt that variable is synced automatically if it is not an entity attribute
I'll send the code when I get home from work. But I'm passing "size" as a variable with the entity method. Then in that method I'm setting the synced variable to that value. Then in the renderer I'm using a .getSize method from the entity class similar to the magma slime renderer.
run the debugger or log the size in the renderer to make sure it actually changes on the client
just wanted to say thanks since that put me on the right track!
Still dealing with a new issue that for some reason the entity only seems to render within like 5 or so blocks away 
So, the entity I'm using for a glyph effect has this issue where it doesnt render when you move a couple blocks away. I've tried a couple different things to see what the issue is. I'm not quite sure what would be different from the other mobs I've made. one thing I could think is the issue is how I constantly change the texture of the entity to give it a fire animation. Does it make sense that this would be the issue? / Is there a good way to fix that?
https://github.com/AdamRogres/AdamsArsPlus/blob/master/src/main/java/com/adamsmods/adamsarsplus/entities/FireEntity.java
https://github.com/AdamRogres/AdamsArsPlus/blob/master/src/main/java/com/adamsmods/adamsarsplus/entities/client/FireRenderer.java
like, should I only perform the texture switch on the client? is there a way to have a static texture when people move away from the entity?
use the entity's age as % for the get resourceloc in the renderer?
that aside, i don't see how that should make it invisible
unless something odd like size dropping to 0 happens
I can send a video later. I'm pretty sure it isn't the size, since the damaging AoE still works with different size values even when I can't see the entity
that's server stuff tho, no?
while seeing the entity is client
if you can reliably make it invisible, double check the size clientsize just to be sure
and use the f3 thing to show bounding boxes maybe?
was it like f3+b
hmmm, maybe? When I move away it goes invis but when I move back within the small range it renders at the correct size.
i remember that happening with tile entities but it's weird for entities
I'll take a look, the bounding box is very small. Like 0.1, 0.1
also double checked the possible methods when defining the entity type?
idk if a small bb can cause culling
AdamsLibEntityNames.FIRE,
EntityType.Builder.<FireEntity>of(FireEntity::new, MobCategory.MONSTER)
.sized(0.1f, 0.1f)
.fireImmune()
.setShouldReceiveVelocityUpdates(true));```
I'll try making it bigger maybe?
For future reference, it was making the entity small.
sized it as 0.8 0.8 and it's good
there should be a method you can override that makes them visible from further away I think, but yeah there is logic to stop rendering when something is no longer a certain size in the camera space
can you lock in on a specific patch version of a dependency in NeoForge? I don't remember if it was just a Forge issue or not...
(limiting e.g. Ars Technica to Create 6.0.7, no later versions, as the 'API' breaks per patch)
according to my quick check yes, but on the surface it looked good for Forge but didn't work in practice.
or maybe i should just try it out myself haha, but if anyone happened to know 😄
Does anyone here happen to know how you make a block type bigger than 1x1? There's something similar in the DoorBlock class but I can't figure it out
The door is made by two blocks
Does anyone know of a good example on how to save a living entity to block? I went looking to see how mekanism does it.... but it's way too convoluted
look at how mob jars do it
tyty
maybe look at lectern for larger than 1x1
Is there a way to run the intellij environment with additional mods? It didnt seem to work when I just added mods to the run/mods folder
Question: Will a randomly generated structure via jigsaw blocks overlap? Like is it smart enough to know not to generate a room that would overlap another or will it just brute force through?
they shouldnt overlap if your dimensions are set on it
Wanted to make a structure that spawns in/under oceans. Is there a way to have it generate such that everything isnt water logged?
does anyone here use game tests, if so, would you recommend it or discourage, in favor of something else?
i would love to have full 'end to end' tests kinda like cypress/playwright but even these tests seem like a great idea to me
They've existed for years, but only just become easier to use.
Nice. So far I like it! UI testing seems to be a pipe dream though
fabric has client gametests but i dont think neo does
we use https://github.com/headlesshq/mc-runtime-test for https://github.com/Jarva/ArsAddonBuilder which powers ars.guide and the discord bot's glyph and eventually wiki capabilities
Game Tests are a way to run in-game unit tests. The system was designed to be scalable and in parallel to run large numbers of different tests efficiently. Testing object interactions and behaviors are simply a few of the many applications of this framework.
Ah right
What about this
this just allows game tests to be ran (with a command)
You only game test automatic stuff basically
UI does require the U dumbness
You can run a debug command to simulate scenarios without the clicks I guess, just sending packets
Is there a better channel to discuss addon mechanics rather than development questions? I want to bounce around some options I have for my addon and see which makes the most sense in the context of core Ars
But it's not really development questions
as in, you want user feedback for it or as in, you want other ars ecosystem people feedback on it?
Other Ars ecosystem people feedback on it
then this is a good place
theres also a private channel for api development that we routinely misuse but youre lacking the role for it
I'm very new here, so I'm not surprised I don't have it
it's General [& Dev]
so it's ok here
would tecnically be a good place for any addon that have its own thread without having to be too specific, or for anything too indev to have its own
I'll start here then 😄 I'm writing a solely necromancy focused addon, and one of my power progression lines is basically tying yourself to a phylactery block (binds a part of the soul to a box to make you immortal, which I'm doing with a ritual right now). My initial thought was to have a thread that gives you a perk that absorbs damage by source, basically sticking jars by your phylactery and equipping the thread would make damage take the source from the vicinity instead
My intended balancing for what is effectively invincibility though is scaling the source discount by thread level. i.e if you stick it in a level 1 thread slot, the source required for mitigation is unreasonably large such that you probably can't mitigate an entire death
As it stands I can either implement it by having the block actively use source to increase a player data attachment and then use that to mitigate on a damage event (which seems more efficient), or have a damage event trigger querying the bound blocks to pull source for mitigation. That's more of a dev question though that impacts the mechanic
have an internal buffer in the philactery?
you can kinda make it into a big source jar
so you can use option 2 and let the usual source routing refill it as usual
i guess it's basically using a mix of the two options, because #1 sounds like the buffer is on the player attachment
It would be, yeah. I think I like #1 more, but I'm a bit worried about efficiency for querying that block entity on every single damage event
(I'm not new to development, but don't know the MC codebase/domain very well yet so I don't know what's cheap/expensive tbf)
it's likely less expensive than having to update that player's data continuosly
main difference is probably the chunk loading condition
unless explicitly checked, it would cause a chunkloading of the chunk where the philactery is. or at least that's what i expect based off old ghost chunk loading issues in ars
and if checked, you're vulnerable if the chunk is unloaded
if you have the buffer on the player you kinda have it even if the block is unloaded until you don't run out
i guess one could use an uuid-based map too, stored as Saved Data
component is probably cheaper than map
which type of component you mean
sorry i meant attachments
though actually its probably a map under the hood
though you could definitely cache and bypass
you know what actually it doesnt even matter
you take damage twice a second
and the phylactery probably updates every second (matching relays)
and we are optimizing on the order of microseconds
case #1 is basically using the attachment as a near infinite buffer to use as a shield, refilled constantly
the thing you point is more for his case #2 without an internal buffer but an on-demand source jar scan
id prefer internal buffer
because chunk loading is confusing to normal people
anyways what im saying now is that efficiency doesnt really matter here
I mean that's a fine answer. If I'm overoptimizing out of the gate then I'll just try it and see if it causes problems 🙂 I can always change it
youre optimizing for time thats 4-6 magnitudes smaller than the frequency of occurence :p
i just wouldnt bother at this point
Great, less for me to worry about initially then 😄
at least for #1
My original intention was to expect the player to load the phylactery chunk to keep protection up
for #2 i just wouldnt recommend it
most players just dont understand chunk loading unfortunately
But users of packs might understand that (since other common mods rely on it, AE2 etc)
but in the context of just ars and addons (which is what I'm building/balancing around), maybe not
youd be surprised at how weirdly many players play packs lol
ive seen atm6 finished without rs/ae2
you can always benchmark if you have the optim itch
the code difference should be small enough
I could also have the phylactery block itself force load a chunk, but my gut tells me that's hidden behaviour that works well until it doesn't lol
no it works, it simply has unexpected side effects
thats behaviour thats likely to cause issues for large servers
like, for anything else in that chunk
(due to abuse)
That's my fear, it works until an edge case breaks it or adversely effects something else in the chunk, and then I get bug reports
chunkloading is so dangerous lol
I'd rather players have to consciously make the decision to load it and not do it transparently
it can cause a lot of issues if the person setting it up doesn't know what they're doing
love the classic "permanently loaded farm without proper overflow handling caushes server to crashloop"
yup
someone plays for 3 days straight then chunkloads their base then never logs on again
See I'd rather a player drop a chunk loader or force it with FTBChunks and then get yelled at by operators, rather than them dropping a phylactery beside their mob farm and going ??? why did it load my farm
for the record ars does have a really simple chunk loading solution but its pretty hard to accidentally do
yeah, invisible chunkloading is bad
(armor stand in a warp portal warping it into the same warp portal)
Feels like the solution that requires the block chunk loaded feels more true to core ars though, refilling source from nearby jars
back to gameplay-dev side of the mechanic
you should decide if how much source is accumulated is capped or not
That's my next question, yeah. If it's actively taking source from jars, it needs a buffer cap (unless it deliberately sucks as much source as it can)
and will the player be aware of the level when they're away from it?
But the buffer cap, in other words the amount of damage that can be mitigated in one instance, is dependant on the player's perk level of the thread
My plan is to have the perk tooltip display what the damage to source cost is based on current equipped perk levels
oh, you will end up having to account for thread levels over 3
blame powerscaler addons for that
curse you jarva /j
i think max value is 8?
Yep, the plan is to have the calc reasonably scale to something like 9/10 due to allthearcanists etc
by the way, the cost per damage better be hella high because source is extreeeeemely free
But realistically in most packs with those addons, by the time you hit thread level 7/8 you can reasonably expect to have access to other methods of invincibility
unfortunately i made the poor decision to post an extremely efficient source generator that is capable of making 8 jars a second and now its semi common
Yeah, the calc is going to take a fair number of iterations. The balancing goal is to make lower thread levels of cost prohibitively hard to reach
and have higher thread levels cut the cost by potentially orders of magnitude
I was also toying around with rendering heart overlays to show the player how much they can mitigate with their current source available (because 1 heart = 10m source on the tooltip isn't super helpful lol)
but that also expects the phylactery to have a buffer, uncapped or not
.... bigint buffer time? 😛
long ought to be enough
heart overlays aren't very fun due because overlay mods clash with them everytime
just a warning, because the idea is cute
Yeah, that was my worry
The downside though, is it better or worse than showing them a large source number in the perk tooltip 😛
well, scale it by the damage red cost?
I suppose that's fair, the tooltip itself could show how much is mitigated in terms of hearts
you don't have to say "currently storing 10 milions source" but "can sustain 100 damage points"
that does expect them to check tooltips before going into combat I guess but
it's a tradeoff
This brings the buffer cap question up again. Do I bump the block entity's buffer if the bound player's perk level changes (not sure if there's an event I can listen to an event I can listen to specifically for this, or if this is a "listen to equip event and check if perk levels changed" situation)
I guess the most ideal scenario would be to have the phylactery able to check how much source is available to it (in jars, etc) and then only take it at mitigation time
rather than keeping a changing/uncapped buffer (because in my suggested solution if I downgraded my thread level, it would just dump excess source above the new lower cap)
if you want to go that route, it might be more efficient to have the jars explicitly linked rather than doing a full AABB scan?
It would, yeah. Maybe a dominion wand linked to sources of source?
If the sheer amount of source needed to mitigate for lower thread levels is pretty large though, is that going to be an issue? Like, would it end up having a player linking like 40 source jars to it
Which I guess isn't necessarily a bad thing
if you are in atm setting, there is the bigger jar
well, if you give it an internal buffer that needs to be refilled, and then the rate at which it refills itself from jars also controls how often it can prevent damage
Yeah, it gives it effectively an internal cooldown. Which I don't necessarily want
That's true
even worse for depositors tecnically because it's a bottleneck
ideal would be a single splitter for every jar
Maybe a combo of both would give the player more agency? Have the phylactery have a fully uncapped buffer, but require the player to link specific sources so it's just sucking all source in the area
Then the player can decide downstream of the source... source, how to create whatever bottleneck they want
relays can be toggled off with redstone
and you just need to give redstone emission properties to the phyl
like, comparator ones
I guess my thing is more, do you want to set an intentional limit, or do you want to just care about how much source someone can figure out how to pump in?
I think the second one, no? Realistically, the numbers for mitigation for lower threads will be pretty large. If players want to invest in producing enough source specifically for it, I don't know that that's something I want to restrict
Is there existing capabilities for other blocks to potentially query exact source numbers of a storage block?
i.e. a capability to check if whatever block has this much source amount, emit a redstone signal. I know a few third party mods have those, but I don't know if that fine-grained option is built into core
jars for example have comparator integration built-in
otherwise a third party mod would have had to do a % to 1-16 redstone conversion, like a special reader
Right. So I could add comparator compat to the phylactery block so players could build redstone to say hey, only transfer source in if there's <1m left or whatever
I think that's a solid compromise. Players deliberately link jars (or other storage), uncap the buffer (and ensure it's stored in the block NBT so it persists through breaking it), and leave it to players to decide how much source they want to dedicate to mitigating
and that opens up two progression lines for making it more powerful - either increase your source gen (and also your relay into the phylactery capability), or progress through ars and the mod to get higher thread slot levels
to lower the mtigation cost
Switching gears to a render question, this is my first time using geckolib. What is the right way to have GeoItems render on players (say armor items) as a geo model, but render in the inventory and world as a 2d texture?
Is it as easy as overriding isGui3d and ensuring there's a texture available for the item ID?
For armors specifically, you have the armor defined in code, kinda
And then the item model is as usual
I'm just going by the base gecko4 example for neoforge right now, so I have an item/renderer and all that - it renders the model fine, but it renders the model for everything. In inventory, in hand, etc.
My armor models are... pretty detailed, so doing a 2d texture for everything else would be preferable since they're such small scale. I've found other examples of mods doing it (create goggles, etc) but they're using vanilla rendering utils, not gecko
As I said, in the specific case of armors the item model and the equipment model are different
Geckolib loads its equipment model from the .geo.json
Minecraft loads the item model as usual for GUI, hand, item entity
Ah, okay - so it's the other way around then? I'd be writing code to have the geo model display in other perspectives (if I wanted that)?
So you just make the 2d item model as any other item and then attach the gecko armor render
If you want the non-armor items to be 3d you follow geckolib guide
Gotcha - I'll work with it some more to get a better understanding
To adjust the positioning you export the model settings from block bench to use as vanilla item model
Basically no model in it but only the offsets for the various prospectives
You can look at the enchanter sword as example
Awesome, will do
Is there a good way to "randomize" or desynch an animated block texture? Like I have this block and I like the animation for it. But it looks weird when there's a couple blocks next to each other and they're all in sync. It would look a lot better imo if it was mixed around.
base it off random placement
like archwood logs
unsure how to explain, but basically you have different texture files (can be animated) and the game decides which one to use based on seed and xyz
Hmmm, makes sense. Thanks
if you wanna save time, copy paste the same texture and only change the order of the mcmeta frames, lol
Can anyone sanity check me on perk provider formats? I'm trying to wrap my head around why items are registered to a list of lists of perk slots. I assumed it was because individual items could be upgraded in tier to unlock more slots (going from tier 1, index 0 in https://github.com/baileyholl/Ars-Nouveau/blob/main/src/main/java/com/hollingsworth/arsnouveau/setup/registry/APIRegistry.java#L254-L256 for example to tier 2 at index 1 opening an additional level 3 perk slot), which would make the format make sense - but in core the sorcerer/battlemage/arcanist each have their own several lists. I thought the tiers WERE upgrading through the different types of armor
I went snooping at some addons to see if I could find more scaling tiers to understand more, and for example Jarva leaves the first 4 tiers empty https://github.com/Jarva/All-The-Arcanist-Gear/blob/main/src/main/java/com/github/jarva/allthearcanistgear/setup/registry/ArsNouveauRegistry.java#L63. Not sure if that's by design because existing items with their own perk slots get upgraded into those or not
not sure what you mean by this?
if youre wondering why chestplate/pants have better slots than boots/helmets, thats just how it is lol
Ah - so because none of jarva's items that hold perks get created below t5, there's no need
his armors start at t5
for ars elemental id expect to see 3 empty lists
because they only have t4
No, just trying to understand the system so I can implement some armors of my own is all. Is the tier set in a vacuum? i.e if I was to make one standalone set that is for example only ever t1, but gave the t1 perk list three level 3 slots, what would that impact?
then your set would have three level 3 slots at tier 1
Are tiers ever changed in the same item?
Oh - ignore me
I think I've understood the mappings now
So in jarva's case, he has 3 armor sets which can't themselves be upgraded through tiers, but upgrading the set to another set increases the tier
So just two different ways of going about it I guess
Each set that i have only technically needs perks data for the tier that it is. I just register all my tiers on all the armor for code cleanliness
There's basically the same array 4 times because it was possible to get tier 1 elemental armor in the past
Right, that makes sense. I think I understand the system now, thank you all 🙂
I wanna make sure I'm doing this right,
If I'm trying to implement an item with an animation I make a .mcmeta file of the same name right?
Then define each frame+duration
if you mean a 2d item with animated texture yeah
there's guides for it, since it applies to resource pack makers too
Good
One more thing in the context of frames in the code how many fps are there? I'm assuming 30 unless they are referring to ticks
it should be tick based
otherwise animated textures would speed up with uncapped frames
Figured
So I need my animation to last 50 ticks for optimal speed...
Yea I'm just putting in three per frame
Im mainly adapting from ars's code
There's like, the archwood texture
There are like 3 version of each because it's a randomly variant texture, but each is an animated texture
warp scrolls to,
ive said this before, I'm effectively trying to add an on use animation for the warp scroll when its used to teleport or record. I think that in order to make it work I would need to use a mixin to delay the scroll's deletion long enough for that animation to play (and let the animation be used in the first place) Though I'm not clear on the details of how I would implement it
oh, then you would need smth like...how the bow works?
i don't really have the mind to think how to make it without overcomplicating rn, i leave the ball to another coder
fair enough
Hey Alex, feel like I'm missing something. The only place I found the reference to the alternate models was in the blockstates file. Does MC process the random placement of variants automatically or smth?
"variants": {
"axis=x": [
{"model": "ars_nouveau:block/blue_archwood_log_horizontal", "x": 90, "y": 90},
{"model": "ars_nouveau:block/blue_archwood_log_horizontal_1", "x": 90, "y": 90},
{"model": "ars_nouveau:block/blue_archwood_log_horizontal_2", "x": 90, "y": 90},
{"model": "ars_nouveau:block/blue_archwood_log_horizontal_3", "x": 90, "y": 90}
],
"axis=y": [
{"model": "ars_nouveau:block/blue_archwood_log"},
{"model": "ars_nouveau:block/blue_archwood_log_1"},
{"model": "ars_nouveau:block/blue_archwood_log_2"},
{"model": "ars_nouveau:block/blue_archwood_log_3"}
],
"axis=z": [
{"model": "ars_nouveau:block/blue_archwood_log_horizontal", "x": 90},
{"model": "ars_nouveau:block/blue_archwood_log_horizontal_1", "x": 90},
{"model": "ars_nouveau:block/blue_archwood_log_horizontal_2", "x": 90},
{"model": "ars_nouveau:block/blue_archwood_log_horizontal_3", "x": 90}
]
}
}```
probably picks from the array based on world position
Huh, well if it does that automatically that's chill. Assumed I'd have to setup smth
Yeah the blockstate basically say "from this condition use one from this array"
After some more staring at the code until something clicks (also guides) I realize that while I do have a good grasp of how Java works however
Where the fuck does the code go. How do I run the auto generate commands why are there a significant lack of up to date guides. Etc etc
But the way I understand i (and I do really want to fully understand each concept) is that the main mod class holds all the lifetime events correct? Then my question is how exactly does it know what PNG to use for a model? My final comment is holy crap you guys are wizards at code. Ik that you guys likely have decades of experience but it was hard to see how much of a gap that translates to until now. Ok rant over.
I'd recommend downloading IntelliJ community edition, it handles a lot of the heavy lifting for you.
Main mod class is the initial entry point but doesn't really have to hold any events at all.
It uses a path based on the namespace of the texture determined in the model
That's what I'm using actually
It should import the gradle project when you load it up, and then you just run the runClient target
I got that part done, was able to import a texture and create a mcmeta for the textures animation and now I'm currently trying to see how to make a test item that uses my texture so I can check to see if the animation actually works
So my current main issue Is figuring out what class or event tells the game to use my texture as the model for that item
You can make a placeholder item, and then register in with an item registry
I recommend these tutorials:
https://m.youtube.com/@TurtyWurty
Or these:
https://youtube.com/playlist?list=PLKGarocXCE1G6CQOoiYdMVx-E1d9F_itF
turtywurty learns us how to mod,
because before, we could not.
and this quality tutorials, the people appreciate a lot
his videos are best ones by a long shot.
but how to make shrek mod I forgot...
custom potion get brewed from nether wart
custom texture and its art
already got my workspace so i have a head start
and rocket ship goes faster tha...
Yea I think I have that part down I'm just holding back because I want to understand what each part is.
Thank you I'll check those out (also get out of your hair, for now).
Yea these will definitely help greatly. The other guides were a touch outdated
watch kaupenjoe tutorial
👍
yea i was previously recommended a guy who only went up to 120
Hello I would like to contribute on the mod as there is a known bug I would like to fix, can I proceed by simply posting my PR solving this bug on git ?
Also I like to comment my code but I see that it is not done in most files so do you prefer no comment at all to keep the same "structure" everywhere ?
As long as the code is clean and readable comments are often overkill. If it's something obscure that doesn't really make sense a short explanation comment can work.
Okay it indeed seems a bit overkill in my case, I'll proceed then. Thanks
Is there something I'm missing about how lang strings interpolate arguments? I'm adding a translatable component to my armor using the core Ars lang string Component.translatable("ars_nouveau.tier", 1), and it only render Tier
No matter if the arg is a string, an int, whatever, it doesn't render it
i'm not seeing the "ars_nouveau.tier" lang entry to be honest
let me check what's going on
ah, it's the wrong lang. damn it.
for the elemental armors it works, so it's weird
but i do recall that kind of bug happening in a specific case
was it the jei
or maybe 1.20.1 stuff
Yeah, I checked it was there in the lang datagen to see if I was crazy
I booted up elemental to check too, and yeah it does. It's super odd. I can't see anything I'm immediately doing wrong, yet
Is there a good way to check if a block has a non-full hitbox. Like for example: Redstone repeaters, iron bars, runes etc
ty, I'll take a look.
I remember that in 1.21 whatever it is, is deprecated
But for 1.20 it shouldn't even have a warn on it
Hmmm, I can see a "isCollisionShapeFullBlock" but it looks to be depreciated
Well, Mojang deprecated stuff is still usable
The method for checking sunlight used by undead has a funny name and has been deprecated for years
Not a big deal, I was just trying to improve how my autoturrets check if they have line of sight. Right now if you're standing on something weird that it sees as a block that isn't in my checklist it thinks there's smth blocking it
int diffX = pos1.getX() - pos2.getX();
int diffY = pos1.getY() - pos2.getY();
int diffZ = pos1.getZ() - pos2.getZ();
int distance = (int) Math.ceil(Math.sqrt(diffX * diffX + diffY * diffY + diffZ * diffZ));
int numObstacles = 0;
for(int i = 0; i < distance; i++){
numObstacles = numObstacles + checkBlockList(world.getBlockState(new BlockPos(pos2.getX() + (int)(i * diffX / distance), pos2.getY() + (int)(i * diffY / distance), pos2.getZ() + (int)(i * diffZ / distance))).getBlock());
if(numObstacles > 1){
break;
}
}
return (numObstacles > 1);
}
public int checkBlockList(Block block){
if(block == AIR || block == WATER || block == LAVA){
return 0;
} else if(block instanceof StairBlock || block instanceof SlabBlock){
return 1;
}
return 2;
}```
Stairs and Slabs are easy enough, was just seeing if there was smth better
Does anyone know of any mod examples that keep track of animation frames on an internal timer?
I'm considering if I can add a triggerable animated texture to a renderer, but default animated textures just loop infinitely
Best option I've found with the gecko devs is to keep an internal frame timer and basically return the texture I want the render layer to use based on the internal frame counter
Don't skulk catalysts have a triggered animation? Could be wrong
Oh actually, that's a good shout
I think they must, since they respond to you moving around them
Time to go snoop through vanilla code
From what I remember this animation triggers when the catalyst makes more skulk
oh man I forgot the default sources are obfuscated
is there a nice way to attach parchment mappings in idea?
I wouldnt know
Looks like the catalyst animates by setting a blockstate though, not really available in an entity
Oh, this is for an entity?
Armor, but it's a geomodel. Whatever solution would work for an entity would likely work here, just with the playuer
player*
https://github.com/AdamRogres/AdamsArsPlus/blob/master/src/main/java/com/adamsmods/adamsarsplus/entities/FireEntity.java
Not sure if it's exactly what you need but here's an entity I made that uses an animated texture. You could easily repurpose the looping texture control for smth more complicated
Addon for Ars Nouveau. Contribute to AdamRogres/AdamsArsPlus development by creating an account on GitHub.
I have submitted a PR to fix issue #1907, please let me know if you have any questions 🙂.
https://github.com/baileyholl/Ars-Nouveau/pull/1998
They called me crazy for pointing out the splitter had weird throughput
i remember this was disscussed once
Yes the issue mentionned a conversation with a dev about this bug
What's the ideal range for addons to depend on for core Ars? Does ars use extended semver with build numbers, or is there an API version in the mix there?
you shouldnt need to put a limit at all beyond the major version or just minecraft version, breaking changes rarely happen
and if they do it wasnt planned enough for you to plan ahead because it was probably an accident
Gotcha, so [5.0,6.0] should realistically be reasonable?
Within 1.21.1 of course. I'm curious what versioning strategy you use across MC versions though, since I'm trying to work through mine. Normal semver works fine until I have to maintain parallel versions for multiple MC versions and backport changes
Ars 6 would be for the next Minecraft version so yeah, the third number are usually minor fixes and the middle is something new added
If one plans to keep multiple mc versions in par with content it can work to use the Create schema
that said your mod probably relies on things not present in 5.0.0?
honestly id just start with the newest version
which is 5.10.6 iirc
Yeah, I'll likely just use whatever version I'm using right now as a lower bound and the next nearest major as an upper
I'm considering just using calver honestly
you can also only use whatever neo supports which is semver* as far as I know
whatever that toml file lets you do
technically you can calver in the same format
yyyy.mm.dd
but still wouldnt recommend it
Calver is semver compatible yeah
I just can't find any reason to use semver when the components don't really have any meaning
Like I don't provide an API, and any "breaking" changes will be backwards compatible, as much as I can make them
I know, but that feels like using semver solely for the sake of using semver at that point
also can never guarantee that mods wont want to interact with yours even when you dont have an api
And then versioning gets hairy for multiple MC versions
for ars we just bump the major
Because if you make changes to a newer MC version and backport a fix, what version does that becomes
Become*
4.x was 1.20 and 5.x was 1.21
you are very much over thinking it but do whatever youd like lol
I am extremely overthinking it yeah
clearly the answer here is to not backport anything 👍
also fixes are just a patch version bump lol
its not that complex
no one really expects 100% compliance with semver either as long as you dont make breaking changes in the same major
Sure - but if versions are done linearly, let's say 1.21.1 is on 1.1.2 and 1.21.10 is on 3.1.2, and I want to backport for some reason
I can't just bump the old minor because presumably it's been taken, unless every MC version is just a new major, which I know some mods do
I dunno - I realize it's not that deep, I'd just rather put a bit of thought into it before I release something rather than making a versioning change down the line
version clashing is a nonissue
Somehow I feel like an addon to an ars addon is not super likely
Or at least, not to a small Ars addon
I guess if I'm only ever actively working on one MC version at a time all my qualms go away
thats the standard yes
and again, ^^^
many mods use the same version for different mc versions
super factory manager for example supports from 1.19 to 1.21
all of them using the same version
still actively updated
i cannot personally fathom why, but its a thing
Do they maintain parallel branches for different incompatible MC versions though, or is 1.19-.1.21 largely similar?
parallel
oh damn okay
at this point they have enough abstraction that merging usually goes well though
less merging and more cherry picking i guess
still i cannot fathom why youd support even 1.19
Even if I wasn't writing an addon to another mod I'd be hard pressed to do anything but 1.21.1 right now
i cant be arsed to support anything other than the latest version that most mods are on
1.20 is dead to me
I guess it's largely moot with my addon since I'm bound to whatever version core Ars is on
If/when Ars goes to 1.21.10 or whatever
Far away from gecko having a stable version for that or .11 though
speaking of that, i was planning to attempt an initial port some time in the future because i want to play with neoforge's new resources/transfer api
i dont plan on it being an actual release but itd be interesting to benchmark
Gecko 5 is not ready for prime time at all, tslat's mentioned a bunch of bugs for normal use
it should be significantly better which helps with starby and lectern performance
Plus it's likely being left in that state while they do a pretty big refactor
Whats a good range to set for chunks between structure spawn? I'd like them all to be relatively rare such that similar to strongholds you're likely gonna need the ender eye equivalent to find them but also dont want to make them basically non-existent. 🤔 Also restricting most to ceratin biomes so I don't just want to steal the stronghold ring spawns
depending on the biome Id say at least one per biome
Is that not like, way too many?
well what biome do you plan on adding it to?
if a pack has more than the normal number of biomes then finding your biome would be a chore to begin with
Flame: Nether
Frost: Ice Spikes
Earth: Deep Dark
Lightning: Anywhere in the sky
Holy: Soulsand Valley
Void: End islands
ah ic
Like, ice spikes are pretty rare alr so that's fine imo
yea frost should be the relatively most common
you should use the tags to reduce this issue
there's both BiomeTags and Tags.Biomes
I should look through worldgen code
its the only thing i havent yet
I made new has_structure biome tags for the structures, so worst case a pack could always add more biomes or smth. My prob is that the base mc tags are more lenient than I would like
Flame should be narrowed down more
perhaps in the basalt biome specifically?
then earth might be hard to have in the deep dark as you would need space, unless you plan on overwriting city spawns with those,
lightning should just be separated by 1000 block intervals
then I like holy and void where they currently are
theres my opinions on the matter, lets see your facts
wait you wanted to know spacing
i went off topic there
kinda
Flame is kinda intended to be the "first" in the progression so I don't mind it being the easiest to find. Esp since the structure spawns under lava lakes.
Earth carves out an area it doesn't need it to be a cave or smth
the under lava lake is gonna be funny
reminds me of Firenando's dungeon in hexblades
it kinda worked in terms of spawning in lava lakes
has the earth design been finalized yet?
i wanna know the shape/theme
yuh, they're pretty big so I can def see the most common experience finding them just being when you're trying to find netherite. It alr works pretty well I just gotta make them less common. I made it 32 chunks rn and they're all over the place
oh ic spawning means distance between in chunks
with some sort of range to induce randomness
I can send pics when I get home, but it's kinda like an aztec-ish temple that's been overgrown with fauna and sculk
mhm
Most of the structures are underground though so I didn't give them much of an exterior design
Maybe i remember it working more than it actually did
lol
"the strongest of the mages hold many an ancient fact. even they knew that the best base was a fucking hole in the ground that you build outwards."
I just made sure the absolute height for the flame structure was set correctly. It's tall enough it goes right from bedrock to right below lava so there isn't any wiggle room
Yeah I think that's a good idea. Esp since I found weird things happen when you try and make underground structures in basalt biomes
Similar vibes
Updating quests for Expeditions and don’t want to overlook anything. Has anyone added any major content to their addons in the past couple months?
I got the Flashjack, vexing caves, and variant armors from elemental; and the stuff from Ars Zero, Ars Affinity, Cat’s Jewelry, and Ars Structurize
Any new threads, glyphs, or rituals other than those addons I listed?
Do you have a list of all 1.21 addons that add glyphs?
I have all the glyphs in the questline, just not sure if someone has recently added a glyph to an addon that I didn't catch.
If i did a PR recently, should I remake it to use the new PR template ?
prolly fine
It wouldn't hurt if you want to copy over the template
alright 🙂
Bumped my ars dependency to the latest and started noticing lucene complaining about the vector incubator API on some runtimes - is there an incubating feature I should be turning on, or ignore?
just ignore it
Easy, thanks
must have been quite behind, that was from the docs update lol
Oh yeah, I just never updated from the addon template. Should've been my first task
What determines the position that a structure tag uses? Like when I'm locating a structure and it tells me that position what determines where relative to the structure that is?
If it helps I'm trying to make a check to make sure a ritual is performed within a structure. I can get the positions of the ritual and structure all fine and dandy the issue is that there seems to be some weird offsets
Here's how to get if the player is in a specific structure
Or any position is in a specific structure type
Thanks!
Can you generate a structure within the borders of a structure? Like lets say I wanted a big woodland mansion-esc structure with a fixed exterior but randomized rooms. Is there a good way to do that?
jigsaw
Hmm, I could just test this ig but I could place interior jigsaws? Would I need structure voids or anything?
Couple of fun questions, thematic and dev:
-
I'd like to add a new spellbook (not a book specifically, but a focus of sorts. Same function though, conduit for casting spells. Since it's death/reanimation magic I'm tossing around using like a floating skull head, broken chains, idk - any suggestions? 😄
-
Is there an idiomatic way in the current ars API to restrict certain glyphs to need certain held items? I know you can inherently restrict by book tier
umh i don't think you can, at worst you can simply check in the glyph and have a tooltip that specifies it only work in that special spellbook
if it's not a book but more like a casting tool, you could have that a specific glyph gets swapped for another at scribing (or casting) time
like "if used on a phylactery, life link becomes life chains" kind of stuff
Datapack or code?
Or kube
Cause:
- override the table
- Global loot modifiers (read the docs)
- inject in the table with the specific function
Feels like not a great experience is the downside - people would build a spell with it, and then go to cast it and it cancels the rest and gives them a chat message
It could be worse to be fair
Oh wait maybe one thing
But i am unsure if it's viable due to context
Is adding another validator so the glyph appear as not compatible (with a specific red tooltip)
But that only works if your item is more like Zero's that has a spellcrafting GUI too
Could argue that one could make it only appear in that GUI, without a validator, in that case though
The goal is a custom spellcrafting GUI, yeah - I guess I could always just not register it with the greater ars system and show it only in my gui, yeah
public boolean shouldShowInUnlock() {
return isEnabled();
}
public boolean shouldShowInSpellBook() {
return isEnabled();
}
this is on AbstractSpellPart
Alright, having issues with structure generation. It's somewhat inconsistent with what does and doesn't spawn but it never gets all of it. Any tips for making large consistent structures?
This is how the segments are split up for the missing area if that helps
aight, this is still forge 1.20 but I can reach out
well, telepathic grunt got back to me fast but nothing I wasn't aware of sadly
Is it possible to somehow save a larger nbt file than 48^3? Feel like it could help if I did this in less segments
Yes, but you need a mod for it
I had to use it for the Arcane Library
cool, I'll just try that
Jigsaws worked fine for the other structures since I wanted them randomized, but now that I wanted one big structure they're letting me down
Maybe look at how When Dungeons Arise does the Keep Kayra. That thing is ridiculously huge.
Now I'm somehow struggling to get my singleplayer mc to load a world. smh
What mod did you use? I've been trying to add "bigger structures" but having no luck. It may just be on me not setting up the maven correctly
I didn't use it via maven, I did it on a normal build
🤔 Is there a way to do that in the dev environment? Not sure why but my regular mc is giving me hell rn trying to load worlds
You can just download the mod and put it in your run/mods folder
huh, that gave me a bunch of errors last I tried. I'll give it a go
It's hit or miss
Yeah, having issues since the structure block mixin seems to fail
I'd just get your mod to build and then put it into an instance and export the structure
That's what I was planning to do, but my regular mc is having issues
I basically always play on servers so I never bothered to look into it
Make a local server then 😄
smh, why can't anything be simple
tfw I took out and added mods to see what the problem was. It was Ars. For some reason I can't load worlds with ars 🫄
How do you use KubeJS to completely remove all recipes for a specific item so that it is uncraftable?
Nevermind. Figured out what I was doing wrong
How would i go about changing an items model depending on a boolean data component?
(neo 1.21.1)
if the item is coded by you it's relatively simple
the item needs to register an override for its model then the actual model file can use it to switch between different item model files
Ars Additions handy Haversack has a boolean based model change @crude leaf
oh wait is it even simpler now that there are item components?
i was still thinking to the nbt, where you had to "expose" that field for the override to work
any idea why i can't apply velocity to a projectile when it's in a block?
As in stuck in a block or turned into an enchanted block entity
in AbstractArrow it checks for inGround, if that is true then it doesnt process any movement data that tick. You would need to set inGround to false and then move it, but youd probably need to teleport that arrow out of the ground first, since the first thing it does every tick is check if its in the ground/set itself in the ground
I've got a gecko question that maybe some people here have encountered before - tslat is pretty busy right now and I'd rather not bug him over and over for what is probably obvious rendering that I just don't have the foundational knowledge for
I have a gecko model that has a static texture for all but one bone, and an animated texture for one of the bones. How would I actually do that in a gecko renderer?
I can't hide/unhide model bones for specific render passes - I'm thinking maybe overriding the recursive bone rendering and switching the render type texture for the animated bone?
Iirc multiple textures on a model aren't supported
There might be a subclass that have a getTextureForBone or smth but might be only for entities and is obv more expensive
The dynamic renderers let you do textures per bone, yeah - but it's quite costly
I guess technically there's nothing stopping me from combining my static and animated textures though? Making my 128x128 texture a bit bigger and adding frames in the corner
I'd have to duplicate the main static texture across the frames, but it it's more tedium in blockbench to save on expensive rendering
how would i detect when an item is no longer being right clicked, besides releaseUsing(), because it only triggers when you LET GO of right click but not when you switch slots, enter a GUI or log off
probably the player tick method
on item use event post child class maybe?
are there any examples of registering custom sounds to show up in the spell style sounds' part?
i guess the example addon is outdated on that regard
i don't remember if unity adds any
i'd imagine it's similar to how you add particle types to it
hello there
what's the maximum amount of sauce that can be used in an apparatus recipe?
In 1.21 there shouldn't be a cap, give it a try
huh that's neat
Will it check for multiple jars or does 1 jar still need to fill the recipe?
If the later, the effective limit is still 10k, if you don't also make a bigger jar
Multiple jars, it already worked with 1 bigger jar
Very nice
the way it does it is a bit scuffed but its probably solvable with the new transfers api when we port
bit of a technical question, what color format do minecraft potion effects use?
nvm im dumb
Having issues with my armor crafting being bugged after I added worn notebook / JEI support. Is there a good way I can troubleshoot what's wrong with the recipe? bc I'm not even sure where it's having issues
Which problem exactly? I remember another dev having similar issue
But elemental doesn't seem to have it
im tired
Extensible Enums are an enhancement of specific Vanilla enums to allow new entries to be added. This is done by modifying the compiled bytecode of the enum at runtime to add the elements.
how the fuck does this work
i need to add a value to the HeartType enum in the Gui class
For whatever reason when I try and craft with the enchanting apparatus it either A) isn’t able to read the recipes or B) isn’t reading the recipes correctly. Because it says there’s no recipe found when I try and craft. I don’t think it’s due to the tier since I tried removing that requirement and it still didn’t work.
Ah this ain't very simple, let me see if I still have the example for the firework
Is this happening only after the jei support? With no change in the recipe itself?
The recipe json files haven't changed at all and when I remove them they still generate fine from the dataGen. I did change the ArmorPerkHolder to a class that extends it but when I switched it back it still didn't work. So I really don't know what I messed up besides the JEI / Worn notebook stuff but I don't see how that affects the recipes
Aside really code diff comparing with a version that works, no idea. Usually it means you accidentally changed something somewhere without noticing so you don't trace back
Is there a good way to see previous commit versions on github?
I've kinda been using the "blame" thing to just see where was changed but I haven't really found much
At least through the desktop app it's kinda decent
But even just going on the site you have the commit history
Blame is technically the better option in these cases though...from the IDE at least
One thing you can try aside that is checking that the recipes are correctly registered
Put a breakpoint in the apparatus recipe scan
If they don't appear there, it's a good lead
🤔 I'll give it a shot
If they do but the recipe doesn't work, breakpoint the recipe itself
that's the weird thing. I didn't change the recipe class at all, but you never know.
Hi! Uh- For Ars Additions, would it be possible to KubeJS the Explorer's Warp Scrolls into teleporting you to the Ars Monde dimension directly rather than random structures, or...? Very specific question, I know, but I guess it just ocurred to me to try that before going all-in on coding a whole addon to modify structures and add new portals...
Not currently no. But you could just make a stabilized warp scroll with the ability using kubejs and add it to a loot table
I'll give that a try 
Honestly, if you came up with an addon with a way to build an Ars Monde portal, I would retire Ars Monde Attuner and replace it with your addon.