#[REQUEST CLOSED] Looking for artists / ideas to help me make an infinite library dimension
1621 messages · Page 2 of 2 (latest)
An alternative might be to have the Altar consume 30 levels if the player doesn't have a Tome.
That way, players that forget to bring a Tome can still escape - at a higher cost.
The idea is that on failure (when you dont have the levels) the tome gets returned and enemies get spawned. But I see your point actually
This makes more sense tbh
Ill edit the trello accordingly
What if they dont have the levels nor the tome?
Then the materials for the Tome should be obtainable within the Library, just like you can get a Flint and Steel in the Nether.
How does this look for the Tome of Return (rough draft)? It's based on the Knowledge Book, re-done in red (since the portal in is red), with gilded pages and insets in the Ender Pearl color scheme.
That's the last thing I'll work on tonight, most likely.
The pages might be a bit garish, though, what do you think?
Assuming garish means too bright then yeah
It should be a bit more dead imo
Tho the idea is valid
I have to think out how
Occasional loot chests, perhaps, like in Stronghold libraries?
Whats tabula_rasa.png?
Blank scroll image.
I created the blank scroll before putting the eye icon on it for the Knowledge effect.
It looked nice, so I left it in there, labeled as "blank slate".
You could easily adapt it for other effects, just by putting a different icon over it - or use it as an item texture.
Fair enough
Ill merge the request now
Btw, you should have direct write access so you dont have to make pulls all the time
Oh, thanks! I'll be careful with that.
Also, here is a list of quotes about knowledge in case you want achievement/item name inspiration. https://appel.nasa.gov/km_quotes/
Quote Author A little knowledge is a dangerous thing, but a little want of knowledge is also a dangerous thing. Samuel Butler Be curious always! For knowledge will not acquire you; you must acquire it. Anonymous Discussion is an exchange of knowledge; an argument an exchange of ignorance. Robert Quillen I love talking about nothing. […]
How's this?
Yeah that looks good
Sorry for not checking out the project all day, just got home and gotta study for a test tmr 😅
No problem. Same here! What’s your test about?
Physics and another one about geography
Ah, I’ll be studying algorithm design.
Oh, good luck!
Ngl scraps of wisdom are not that good looking in game
we should probably rethink how the texture looks
I’ll rework it, good to know.
Do you think it would help to simply flip which side is torn?
Is there a public repo for this?
Not yet, if they agree i would like it to publish it as CC-BY-SA when its released
If you want to contribute i can add you tho
tbh, not really. i think it needs a complete rework
@sonic thistle do you think you could make the models for the enemies except the scholar? ( @bitter inlet was making it last time i checked)
I could try. Entities aren't my strength, though.
How is this?
Kind of.
im getting this error but when I put the AW entry in the file i still get the error
i got the entry by clicking copy AW entry
i can commit if you want to checj it out
Did you reload Gradle?
(Sorry for the delay)
That would do it.
@sonic thistle pushed my changes, im going to bed
@river path please pass us the blockbench project file if you have it
okay as long as you credit to me
No, I don't know ISeal's email.
got it
Altar-ish?
Or do you want it to glow more?
Try putting it in the dark to see it, as that is how the dimension is lighted
It doesnt really look 16x16, im not sure from my perspective tho
Also, it is compatible with the access points (how each chunk in the dimension generates)?
The texture doesn't look 16 by 16? Huh.
The structure
Oh, that. That's just decor to show the altar in a more natural setting.
Cause of my broken ass system either we completely remake worldgen or all structures are 16x16
The only interesting piece is the single central block.
The one that's a raw gold block with ivory on the sides.
Oh lol, yeah it looks good
I also have another idea I was working on - instead of having a raw gold block, it would be a polished ivory block pulsing with the experience glow, like how the gleaming chiseled ivory does.
I'll finish it up and send a short video.
Yeah please do
Hopefully this uploads correctly.
I'd presumably make it glow as well.
Whoa- yeah that looks INCREDIBLE
Perfect.
I'll leave the old texture in there (appropriately labeled) in case you want to repurpose it for anything.
Perfect
Now, you also wanted entity models/textures I think?
Ink Spirit and Peruser, right?
Yeah
(If you want to - we'll find someone else if you dont want)
Oh - if you want to see why I took a little bit to respond here, take a look at #mod-dev-1 .
Np, take your time lol
Also @sonic thistle just a curiosity how old are you if you dont mind me asking
Why do you ask?
You type like if you were in your 30-40s but ehat you type makes me think 15-20
Not cause you are not smart just cause you give me that vibe
That’s personal and a lot of people wouldn’t be comfortable answering that
The animated textures from this mod inspired me to make my own animated textures, especially the chiseled-quartz-style one
Nice work
Thank you!
Kudos to ISeal and Oakenshield also
yeah its fine
alr so I got the enchantment registering and getting recognized right
- i have the charges working
i just need particle / visual effects in general
@sonic thistle are you able to help
btw, thank you! and I agree that startraveler really did a nice job
Sure, just a bit.
i just pushed btw
Okay. So what sort of particle and visual effects did you want?
The best way i can describe it is a circle expanding from the user
When should that be triggered?
there is a listener like chargelistener or sum
All the code for detecting the charges is there you judt have to make the effect
I'm a little busy at the moment, since I realized there are some real-life things I need to work on that have higher priority. It's added to the queue.
Yeah put it at the end of the queue lol, its not important releared to that
@sonic thistle do you have an idea on how to implement this? i want to damage the entity when they get hit by a particle, but particle rendering is (obviusly) on the client
and whether to use AnimatedParticle or spawn a new one each time
@bitter inlet any update on the scholar?
I honestly haven't worked with particles much (or at all, really). I don't even know if they can do that.
As far as i saw, they have a move() method that supplies the next xyz
Or we could make them ourselves (the coords i mean)
Also, for some reason, my GitHub fork of the project (which is what I was working on locally) has become disattached from the main repository.
I'll have to see if I can figure out what's going on there, it may require removing and re-setting-up the project on a new fork, which would be annoying.
I think you have to make a pr to your own project pulling thr changes
If you want I can try and fix it
My own project - the fork - is no longer attached to your project.
So, a PR to my project won't show up on yours, and vice versa, from what I can tell.
What-
OH WAIT
its probably cause I set the repo to public
That might have disconnected the fork
Huh. I don't know why that would do it, but that's the best guess I have so far.
(Ill set it back to private, i just had to test some thing)
I don't think that would change anything at this point, actually.
Now that it's detached, I don't know how to reattach it.
I can try and look it up, give me 10 mins to go back to my desk
Found it.
Looks like delete/recreate is the solution, ugh.
No significant reason, really. A fork lets me experiment a little more and review all incoming/outgoing code.
fair enough
@sonic thistle i pushed some stuff
I'll get around to it when I can. Still haven't re-set-up the workspace.
yeah take your time
HELLO hi yes sorry. Been working on server maintenance this last week, ill let you know when im next not-busy!!
oh np
@sonic thistle do you know how to execute a task a couple of ticks later?
BukkitTasks are in spigot but idk how its done in fabric
That is not actually easy. What sort of task do you need to defer execution of?
There are some workarounds I know about, depending on what you're trying to do.
I want to make it so that after spawing the particles the server waits 20 ticks before teleporting the user (this is the tome of return)
get the ServerPlayerEntity -> get their spawnposition (if null get the world spawn pos) -> teleport them
its currently commented cause i was testing other stuff
but it works
!!timer
Fabric itself does not include APIs to schedule something in the future.
DO NOT use threads or java.util.Timer. (This can cause a crash!) Instead:
- If you are making a block do something in the future:
world.scheduleBlockTick+ overridescheduledTickin yourBlock. - If you are making a custom tickable stuff (usually block entity/entity) do something in the future/periodically: see below, but instead of Mixin just implement yourself
- If you are making a vanilla tickable thing (world, server, etc) do something in the future/periodically: use the following mixin.
@Mixin(StuffToTick.class) // ServerWorld, MinecraftServer, etc
public class StuffTimer implements StuffTimerAccess {
@Unique
private long ticksUntilSomething;
@Inject(method = "tick", at = @At("TAIL"))
private void onTick(CallbackInfo ci) { // Fix parameters as needed
if (--this.ticksUntilSomething == 0L) {
doSomething();
// If you want to repeat this, reset ticksUntilSomething here.
}
}
@Override
public void yourmod_setTimer(long ticksUntilSomething) {
this.ticksUntilSomething = ticksUntilSomething;
}
}
public interface StuffTimerAccess {
void yourmod_setTimer(long ticksUntilSomething);
}
Usage:
MinecraftServer server;
((StuffTimerAccess) server).yourmod_setTimer(100L); // do something after 100 ticks
You can either use that as a one-time thing or make a timer system
In that case, you could also use my favorite hack for this: potion effects.
fabric is such a fucking joke sometimes 🤦
thanks btw
Eh, I think potion effects for timers are weird
You could create a "Recall" effect that teleports the user to their spawnpoint when it has one tick remaining. (Actually, that name would match the theme pretty well).
That would work nicely
god you fucking genius ill do that right now
Then, you just inflict the effect for whatever length you desire, and there's your cooldown.
/effect just received a new usage: teleporing entities to their spawnpoint 😎
Oh wait, does onRemoved provide access to the entity
Oh, I've done so much fun stuff with effects.
No need.
Just use the tick method.
Check the remaining duration.
nope- its just an attributecontainer
whats the tick method of an effect?
applyEffectTick, and also set shouldApplyEffectTickThisTick to return true.
Example:
public class BoneMealEffect extends MobEffect {
public BoneMealEffect(MobEffectCategory category, int color) {
super(category, color);
}
@Override
public boolean applyEffectTick(ServerLevel level, LivingEntity entity, int amplifier) {
super.applyEffectTick(level, entity, amplifier);
// Random chance.
if (entity.canBeCollidedWith() && entity.getRandom().nextFloat() >= 0.05 * (amplifier + 1)) {
// Applies bone meal below, at, and above the player.
BoneMealItem.growCrop(Items.BONE_MEAL.getDefaultInstance(), entity.level(), entity.blockPosition());
BoneMealItem.growCrop(Items.BONE_MEAL.getDefaultInstance(), entity.level(), entity.blockPosition().below());
BoneMealItem.growCrop(Items.BONE_MEAL.getDefaultInstance(), entity.level(), entity.blockPosition().above());
}
return true;
}
@Override
public boolean shouldApplyEffectTickThisTick(int duration, int amplifier) {
return true;
}
}
(I actually ended up scrapping this effect, but I still have the code for it just in case I ever want to re-add it)
are you sure thats the right version? MobEffect doesnt exist and applyEffectTick is not in StatusEffect
i have an idea tho, ill try to implement it and check back in
I'll translate real quick, sorry again.
np
your solution is probs better than what I came up with, can you translate it?
Alright. I think this should be translated. This isn't for the teleporting, this is just the example status effect I had laying around.
public class BoneMealEffect extends StatusEffect {
public StatusEffect (StatusEffectCategory category, int color) {
super(category, color);
}
@Override
public boolean applyUpdateEffect(ServerWorld world, LivingEntity entity, int amplifier) {
super.applyUpdateTick(level, entity, amplifier);
// Random chance.
if (entity.isCollidable() && entity.getRandom().nextFloat() >= 0.05 * (amplifier + 1)) {
// Applies bone meal below, at, and above the player.
BoneMealItem.useOnFertilizable(Items.BONE_MEAL.getDefaultStack(), entity.getWorld(), entity.blockPos());
BoneMealItem.useOnFertilizable(Items.BONE_MEAL.getDefaultInstance(), entity.getWorld(), entity.blockPos().down());
BoneMealItem.useOnFertilizable(Items.BONE_MEAL.getDefaultInstance(), entity.getWorld(), entity.blockPos().up());
}
return true;
}
@Override
public boolean canApplyUpdateEffect(int duration, int amplifier) {
return true;
}
}
nope- applyUpdateTick doesnt exist
Huh.
i could just make a listener at end server tick
Argh.
that triggers this tbh
np
There's also this nice tool, which is what I was using to translate the names: https://linkie.shedaniel.dev/mappings?namespace=mojang_raw&version=1.21.4&search=applyEffectTick&translateMode=ns&translateAs=yarn
View mod dependencies; Search up mappings; All on your web browser instead!
im 90% sure there is a gradle task for it as well
@sonic thistle implemented recall effect and tome of return
Awesome. How'd you do the recall effect, by the way?
check if its a player when its applied and spawn particles on tick
- when duration <= 1 teleport the user
Ill head to bed now
Its 2 am
Im going to be really awake in 4 hours when i wake up
Whoops. Wrong portal effect.
Bruh
Do you want the effect to return players to their spawn points, or to their spawn points in the overworld, specifically?
public class RecallEffect extends MobEffect implements Portal {
public RecallEffect(MobEffectCategory category, int color) {
super(category, color);
}
@Override
public boolean applyEffectTick(ServerLevel level, LivingEntity entity, int amplifier) {
boolean superReturned = super.applyEffectTick(level, entity, amplifier);
if (entity.level().isClientSide()) {
// Do client effects - like particles, if desired - here.
return superReturned;
}
// Get the smallest remaining duration of this effect.
int minimumRemainingDuration = entity.getActiveEffects()
.stream()
.filter(mobEffectInstance -> (mobEffectInstance.getEffect().value() == this))
.mapToInt(MobEffectInstance::getDuration)
.min()
.orElse(Integer.MAX_VALUE);
if (minimumRemainingDuration == 1) {
entity.setAsInsidePortal(this, entity.blockPosition());
}
return true;
}
@Override
public boolean shouldApplyEffectTickThisTick(int duration, int amplifier) {
return true;
}
@Override
public TeleportTransition getPortalDestination(ServerLevel level, Entity entity, BlockPos start) {
ServerLevel targetLevel = level.getServer().getLevel(Level.OVERWORLD);
if (targetLevel == null) {
return null;
} else {
if (entity instanceof ServerPlayer serverPlayer) {
return serverPlayer.findRespawnPositionAndUseSpawnBlock(false, TeleportTransition.DO_NOTHING);
}
BlockPos blockpos = targetLevel.getSharedSpawnPos();
float facing = 0.0F;
Set<Relative> set = Relative.union(Relative.DELTA, Relative.ROTATION);
Vec3 vec3 = entity.adjustSpawnLocation(targetLevel, blockpos).getBottomCenter();
return new TeleportTransition(
targetLevel,
vec3,
Vec3.ZERO,
facing,
0.0F,
set,
TeleportTransition.DO_NOTHING
);
}
}
}
Untranslated, with indenting sacrificed on the altar of brevity, but it works for me.
addedd back the particles, now with some nice exponential scaling
Whoops. What's the crash report?
@sonic thistle mind checking it out
I'll take a look, sorry - I was just getting the fork set up again, so it'll be a little bit.
It also looks like the library dimension is broken at the moment. Is that normal?
Yeah, it's crashing the game when it's trying to generate the core room.
Yeah thats my fault, it doesnt crash if you f3+c and edit the dimension in that command
But going through the portal is broken at the momebt
Okay, I'm testing some edits to the recall effect to see if they'll work.
Looks like it was probably this.
@Override
public ParticleEffect createParticle(StatusEffectInstance effect) {
return null;
}
You can't just return null in random places, it'll crash.
Also - returning false in applyUpdateEffect is dangerous, I think. If I remember correctly, that boolean is used to determine whether applyUpdateEffect should run the next tick - so you usually want to return true.
Then why does it work with the command?
/effect didnt have problems with it
I returned false when something unexpected occured
It was crashing with /effect for me.
Yes, I simply removed that function override.
Was there a particular reason you didn't want it to show particles?
It didnt fit into the effect i wanted
Can you try overriding it and returning ParticleTypes.ENCHANT?
Sure.
You could also apply the effect with particles and icon hidden, if you'd like.
Ideally the potion for it will be obtainable (even tho it will be hard to obtain - and maybe not usable in pvp) so imo it should have an icon and a particle effect
Yeah
That does work, but for whatever reason the particles all spawn in and approach from the same direction - so it looks really weird.
Could we possibly make an empty particle?
Or just turn the existing effect particle transparent - which is what I'm trying now.
Done; they are now transparent.
For now:
(Just so you can play around with it before I have a chance to push changes.
I also moved the color into a parameter of the constructor. It's usually recommended - as far as I know - to leave things like effect color, effect category, and block and item settings as constructor parameters.
It helps make things easier to work with and less fragile in the future.
wait in onApplied you check if its client, and then you check if its instance of ServerPlayerEntity?
that will never get triggered
That’s not my code. I left that function precisely how you gave it to me.
yeah im dumb
also its not locked to players, and seems to work with entities as well
so ill keep that
That was the idea.
yeah you can just remove the onApplied override and push
Will do.
any clue on the structure spawning btw?
I haven't taken a look yet, sorry.
np, just, take a look when you can please - im kind of stumped at the moment
I'll be busy for most of the rest of the day, but I'll get to it when I can.
thanks
just fixed status effects - pushed
also implemented crafting for apples
Also, this should be pretty quick, do you mind setting the effects of the apple to the ones listed on trello? Its in ItemRegistry
I already set a couple so it should be pretty straightforward
i did it myself, dont worry bout it
Hey, if you wanted a boss/enemy I could try to model it for you, I probably won’t do texturing or animating but I’m happy to do the actual model.
yeah that could be really helpful! want me to pass you some of the ideas we had?
Sure, I was thinking some sort of tentacle monster but I’m all ears.
if you have your own idea then by all means you can suggest it
@sonic thistle did you do the ink spirit and peruser textures in the end?
#1334551093174206517 message these are the ideas we had
none of them are modeled nor textured
I’ll model the Librarian/Peruser, the ink spirit is just a player model so it should need to be modeled at al just textured, I might add in my own thing as well.
I completely forgot, sorry!
Np, do you want to texture them?
Here's the model I made for the Peruser which I titled "The Light Keeper" because of the lantern.
@sonic thistle @sinful leaf
8 for the actual body (Legs are two each because I think it looks better with knees) the cane is 2 and the lamp is 5
Oh, not sure let me check
Compared to the player model he looks about 4 maybe 5
I'll send the file
Would you like it dm-ed or here
@sinful leaf ?
Probably dm-ing it would be best
Actually, I think the Illager model might work well - I'm pretty sure those come with a hood already, plus they're already animated!
Perhaps something like this? (The head's cut off a bit)
You could display the lantern similarly to how the villagers display items they're willing to trade.
Yo, just wandering if y'all have finished the mod or if it's released yet
Nah, im currently "on pause" because of school, but the projwct isn't dead
@sonic thistle sorry for taking so long 😭 just got back. @fallen abyss sent me some models, and they look really good, tho they need textures and animation, are you up for it?
I'll take a look. Could you send the models? I'm terrible at animation, though.
may I use DM's?
Alright.
sent
me
?
i wanna be a artist
Uhh.. do you know how to make entity animations?
@sonic thistle have you taken a look?
I have been too busy to do much for this, sorry.
Np
However, four more hours of the day just opened up to me as a result of a fire alarm going off in the middle of the night. So maybe I’ll have time to do something today.
(In other words, someone set off the fire alarm and woke me up four hours earlier than usual)
Damn, don't stress yourself with this if you don't want to xD
@sinful leaf A purple version as requested, how is this?
(Original in the replied-to message above)
What if the librarian has an attack similar to the iceologer's but with books?
That would be funny - it summons a heap of books above your head!
I'm thinking that it could have three or so spell attacks, perhaps something like:
- iceologer-like attack with books
- shulker-like attack with homing bullet(s)
- summon some sort of ground-based minions
For the ground minions something like the ink spirits?
Perhaps a small version like baby zombies; inklings?
And maybe we could give them an animation similar to the warden but that could b4 hard
Yeah
Honestly, an ink-particle poof would probably work perfectly well.
Yeah probably
i said artist not animator
mb sorry!
can you send me the file please?
update, figured out how to add the librarian entity, gave it basic goals. now gets mad at a player if they are not shifting
also librarians close by will attack the player as well
Hmm... maybe once you've got a good implementation of it done you could add multiple variants, perhaps with a different spell depending on their robe color?
if we do this we should give the peruser a different texture, like librarians are ranged, and perusers are melee
Yes, that's what I was thinking.
Librarians would be miniboss-style, challenging fights - like evokers, but actually difficult. Perusers would be the equivalent of vindicators; they run at you and attack.
It would be cool if lighting fires or placing torches would summon a small group of monsters near you, but that might be a little complicated.
so it would be like (from most powerful to least)
- librarians, spawns at structures
- perusers, spawns on paths kinda everywhere
- ink spirits, librarian minions that spawn when a torch is placed down
actually it should be pretty straightfoward
wait i just realized
the entire dimension is flammable
we'll worry about that later i guess
i already have an idea for it
You simply remove the fire block.
yeah its basically what i was going for
i have an idea of somethig to protect the dimension from being alterated
what do you think the homing bullets shoudl look like
Maybe a cross between shulker bullets and wind charges? I don't really know.
Or maybe they could be experience-glow-colored, or perhaps only visible from their trail of particles?
maybe like the shulker box projectile but experience colored and emissive lighting
as for the projectile, i (accidentally) made it only a trail of particles, but i like it this way xD
also, the entity teleports away when a player is close and it is attacking
pushing my changes now
Nice.
Wrong thread, sorry.
Added particle effect when a player breaks a block in the dimension, will push when I get home
Also I left some TODOs and FIXMEs in the code, can you take a look when I push? @sonic thistle
I'll take a quick look tomorrow. Could you ping me when you push it?
Yeah, thanks
im still working on it btw
ill push it when i finish xD
(time to push 1:30 AM again)
@sonic thistle if you are still online, im still working on this, just be expected to receive a 7 line rant of me crashing out about mixins
yeah no im just pushing it at this point
cant even figure out where to inject
good luck. its all I have.
pushed! @sonic thistle
Would you happen to have a summary of what you're trying to do?
basically, when a player breaks or places a block in the dimension it has this particle effect around the edges for x (in this case 40) ticks and then reverts whatever was done. if the block was broken it gets replaced (obv no block drop) and if it was placed it gets broken (dropping the block=
Oof. I... really have no idea how to do that.
i jotted down some ideas, implemented some stuff
it mostly works
just needs a couple of fixes tbh
It might be easier to simply cancel any block modifications. By the way, I know I mentioned this ages ago, but I'm not sure if you remember it.
What if you allowed the player to place and break blocks freely, but just made the ivory blocks that the library is made of a special unbreakable variant?
i considered that idea, but i dont want players doing the iron golem strategy for the mobs
i want the player to feel like they have to actually fight instead of finding a weird way out
what do you think about that
Hmm... so you want to prevent just cheesing it with iron golems.
i want to prevent cheesng it by making a 2 block pillar
What if the iron golems get "possessed" and turn hostile in the library?
Oh, that.
yeah, a lot easier xD
if they are creative enough to make an iron golem i say let them tbh, it is a sandbox game after all
Just give everything a projectile attack.
Or a teleporting attack, for that matter.
nothing 2 walls cant fix
If you wall yourself in, you still have experience be drained.
also it keeps intact that "i dont know where the FUCK i am" feeling as they cant track the way back home
So... you're dead soon enough anyways.
around 13 minutes from level 30 with the last changes
Precisely. So, you don't want to wall yourself in - you want to take the battle to the monsters, in hopes of harvesting experience.
yeah then we can just throw this away. maybe..
hold up let me cook rq
what if, we dont make this, but we can mixin into the save method for chunks and prevent any kind of external block from being saved?
The main concerns I have about preventing block placement are
a) Feasibility. Mods can and will add other ways to place / mine blocks, and there are a lot of edge cases even in the vanilla game. (Fluids, endermen, falling blocks)
b) It's a sandbox game. We presumably want to encourage creative solutions.
yeah probably the way to keep intact my vision (of making the player go insane trying to find the exit) is just making those blocks disappear when unloaded
Hmm... I'll have to think about that. I'm a little scared to mix into that, honestly. Also, that would mean that players will lose any blocks they've placed!
thats true...
It may also be weird for a player to go exploring, come back, and find half the base they built vanished. Preventing changes from saving also wouldn't prevent players from leaving breadcrumbs; it would just mean they couldn't reuse them between trips.
You said that the entry and exit points aren't the same, right?
exactly
So players will have the panicked insanity of trying to find the exit the first time, no matter what.
right
After that, if they're smart, they'll just take actual physical notes of how to get to the exit anyways.
so yeah this whole idea is pretty dumb xD
It's not dumb. It just needs refining.
my mixin crashout for reference
Perhaps you want to work in NeoForge?
(Obviously switching to NeoForge isn't feasible right now, but that's precisely what you're describing)
i would rather have to deal with mixins that have to touch that mess of a platform
NeoForge is a lot better than Forge used to be, honestly.
It's got a good community and decent documentation for basic operations, and they are much more open to suggestions and willing to provide help.
But, as it is, we are stuck with Fabric and mixins.
So - what are the nonnegotiables for the library dimension? Let's keep brainstorming.
have you ever played ultrakill?
I have not, actually.
ok ill explain the idea then
so imagine a game where you are a bloodthirsty robot in dante's inferno. you just finished playing the most intense chapter you have ever played in any game
im talking ADHD the game here
That basically summarizes what I've heard about it, yes. Lots of fast movement. Blood is fuel. And so forth.
and then you go into the next level and you see a really slow paced music. and an enviroment you have never seen before
i want to capture that disorientation
going from the insane speed of the older levels to that, its really hard-hitting
i want to capture that feeling of 1. where the fuck am i and 2. the spine tingling sensation that somethjing isnt right
thats why the librarians only attack you if you dont shift
i dont really know if I explained myself well
That makes sense, I think. A silent dimension.
https://www.youtube.com/watch?v=LfGccaGsamI here is a video if you want to see the entrance
Okay, how's this. Totally prevent block placing (except for certain blocks, as described later) and destruction when the player first enters the library.
The player can still place blocks in the #angers_librarians tag (such as torches, campfires, and fire), which promptly vanish in a poof of magic and summon an ambush.
The player can unlock placing and destroying blocks by obtaining an end-game item. They still can't destroy any natural ivory blocks (they're an alternate set of blocks that's unbreakable like bedrock). Destroying bookshelves (#librarians_protect) will have a chance to summon an ambush.
that seems.. perfect.
ill get to work on the tag and spawning enemies part
i cannot keep working on the block protection now or imma crash out
Awesome. For the block protection part, I'd recommend just directly canceling the break/place events. I'm not sure how to do that, but I can basically guarantee it would be easier than having a time-delay. I know a time-delay would be cooler, but there is a tradeoff as you have discovered between cool features and actual feasibility.
i mean some sort of way to tell the player that they cant do it in the library apart from "no lmao" would be nice
some sort of effect maybe?
i mean visual effect btw
btw, ive seen your modrinth profile and you deserver TONS more downloads! your stuff is amazing
An instant particle burst would work fine, I think.
Thanks!
yeah, most probably
do I make librarians protect all bookshelves?
yeah probably
You could just make it a tag, that might be the best idea.
So they just protect all blocks in the tag.
yeah im thinking of what to put in the tag
Bookshelves, chiseled bookshelves, lecterns, and whatever bookshelf types you add, at least to start with, in my opinion.
where can I throw away the old code to without losing it...
oh wait i committed it i can just get the commit history
WELP
ctrl + a - > delete
I think you can revert commits.
Ah, ok.
put everything on trello, time to get to work
everyone knows the best code is written at 12:09 with 4 hours of sleep
Of course, of course.
@sonic thistle can you make me a model of a player rq? using the one already in the game is giving me all types of type inconcistencies
What sort of model? Sorry - I had Discord closed.
like the default player model
Like an actual entity model? What is it for?
for the ink spirit
I'm not the best at models, but I'll see what I can do.
What class did you extend for the Ink Spirit?
i mean its theoretically just a carbon copy of hte player
hostileentity
Yeah, but it would need animations too.
That's the hard part. Models and renderers are often very closely tied to the entities they're for.
Could you summarize its behavior?
Will it just run at the player and attack them, or will it have ranged attacks as well? If so, it might be useful to extend the base skeleton class instead.
That way, you could also use the skeleton model and animations.
nah its a minion just designed to be annoying and take hits instead of the actual hard-to-fight enemies
its also summonable so it will be quite weak
I think that it might be easiest to extend the base skeleton class or the base zombie class - that way you get some basic run-and-attack code, plus a handy renderer that's similar to the player renderer.
Haha this is relatable but I would still take mixin any day, it’s too powerful
API is good but can be limiting
And of course, you cannot account for other mods that might break your mixin, you just do the best you can and move on
thats what i did
they work now, they just kick your ass REALLY fast
(they're missing the texture for now)
oh right discord cannot play mkv files
here, converted to mp4 for your viewing pleasure
i probably need to spawn less of em
figured out why librarians didnt fall
@sonic thistle can you make a texture for the ink spirits btw
pushed my changes
Awesome. I'll whip up a texture. Zombie model, right?
exactly
Excellent, that shouldn't be too hard.
By the way - to test out models, I use the CEM Texture Loader plugin for Blockbench. It has all the vanilla models.
Oh, here's an idea. Make the summoned minion versions be baby zombie sized versions.
hmm.. .wouldnt we want to make them look more like babies? as in, since they are going to be weak and quite small they should look less like a grown man with a beard imo
correct me if the idea sounds dumb
Oh, that wasn't meant to be a beard.
I didn't think about it maybe looking like that.
Is this better?
yeah that makes more sense imo
It's supposed to be vaguely wearing a helmet.
it gives me more the vibe of the ink covering his body making its way to the bottom of his face
How's this?
Whoops - messed up the eyes a bit. Corrected now.
The faint armor is patterned off Netherite.
It doesn't actually have to have armor; I just thought that armor would be nice so the body has at least some texture.
Great; here's the texture.
Thanks! Ill implement it tomorrow tho
Gotta go to bed soon today as tomorrow i have a test
Good luck with the test!
Yeah, that shouldn't be a problem.
(the whole class is going to copy from me because the teaches is so bad at explaining they still dont know what a variable is)
I know the feeling.
im back, yesterday i wasnt home all day
@sonic thistle I added a particle when the player attempts to break a block that has been naturally placed. It currently only needs a texture, mind checking it out when I pushj?
I'll see what I can do. I'm very busy over the next few days, due to final projects.
totally understandable. take all of the time you want ❤️
Scraps of wisdom in door formation in craftinf table -> page of wisdom
Book with pages of wisdom instead of paper -> book of wisdom
With the book in offhand you can bypass the break/place blocks restrictions
Barely cooked idea i wanted to drop in, give me feedback if you want
Sounds pretty good. I’d recommend adding one other item to the book recipe, preferably something fairly rare.
Hmmm.. how would you suggest obtaining it would go?
Maybe a rare drop from librarians??
Yeah, as long as one of the structures we make has it
Honestly, I have no idea how the structure generation will work. My idea a while back didn’t end up going anywhere. I guess I could look into the chunk generator system you have now when I have more time.
Ill ask the #mod-dev-1 wizards later
the wizards ignored me, we're done for
Okay, I do have a potential idea. I'll have to keep thinking about how it could work. Essentially, we wouldn't have a single, infinite structure - we'd have a bunch of very large ordinary Jigsaw structures with portals linking them so you can travel between them all.
hold up, why?
So we don't have to deal with chunk generator problems.
The structure wouldn't technically be infinitely big, it would just simulate it by being a bunch of smaller (though still huge) structures linked together. That way, we get the convenience of Jigsaw structures and still have an infinite library.
and how do we guarantee this connection?
uhhh, that seems... ambitious
They'd be like the End Gateway portals - just instead of taking you to the outer islands (or wherever they're set to take you) - they'd teleport you to the center room of the nearest library structure in that dimension.
Kind of like how Ender Eyes work with homing onto structures.
The portals could have a minimum range.
And they could probably also be directional.
Like I said, I'll have to think about this more.
yeah, the idea seems good, but it needs some more cooking time
also, is there a way to force the game to spawn structures everywhere?
What do you mean?
let me get this straight. you want to place jigsaws that expand as much as possible, and connect them togheder with portals. right?
well then, how do we make the game spawn those jigsaws as close as possible to each other?
another approach i saw for this is to split the world into grids (like 7x7 chunks), place some rooms in there randomly, and use a maze gen to fill in the rest
would that be a viable approach in your opinion?
They won't necessarily need to be close to each other, though that would be ideal. I'll think over it more later today - for now, I've got something important I need to do so I can't really talk.
fair, do whatever you must do before this 😄
ill make a new branch for this experimentation later
@sonic thistle just pushed a ton of stuff from the latest couple of days
ill let you explore the worldgen part for now because if i touch another inch of json file and / or worldgen code im going to crash out
gonna work on general world protection now
@sonic thistle had any time to take a look?
Not yet, sorry.
np, take all of the time you want
is this like actually infinite?
Its as infinite as a dimension can be
7 mil x 7 mil blocks iirc
can i by chance have the github link lol... been wanting to look into this kinda thing
kk
ill go grab the link
sick
xD, beware that on the worldgen side @sonic thistle is experimenting with another method
cool
i may at some point request an explanation if im unable to figure it out myself lol
sure
is the github private
lemme get it
(ill make it public when the mod is done, i dont like having unfinished things on my git)
sent you an invite
awesome
Could I check out the repo aswell?
yeah pass me your git
It’s lxlennox17
sent
Yo, @sinful leaf is there a way I could hop in the mod to check it out while you're still working on it?
lmk if you need help im avaliable ish again
oh kinda off topic but if yal use mcasset the website got updated which is interesting
its currently in a mostly unplayable state unfortunately.
cause the worldgen is pretty fucked up, no clue why
btw @sinful leaf if you need help making a map to a structure lmk because after a bit of pain i found out how to make a villager sell a custom map (I was missing a JSON file 😭 )
@sonic thistle mind if I move this post to a group / a server? I would still have an invite to it but only under approval. It's because I'm working on a project that requires details about the mod to be hidden for the time being
That's all right with me. I'll join via my other account, as I have lost access to the email I used for this account; so in other words, if I get simultaneously signed out on all devices, the account is dead.
Sorry I haven't been very active with this; I'm having both computer problems and final exams.
np, i get it.
Can I just make a private channel in my actual server? seems easier ngl
https://discord.gg/B6e98SCT join and send me your user so I can give you the dev rank
Great, I'll ping you once I've joined.
Confirmed that I'm in the server, that should be much more convenient.
Are you deleting this chat? Why not keep it?
got some stuff i would prefer not be public for the time being (the features of the mod). ill explain better in my server if you want
Ok, we can talk over there if you would like.
[REQUEST CLOSED] Looking for artists / ideas to help me make an infinite library dimension