#[REQUEST CLOSED] Looking for artists / ideas to help me make an infinite library dimension

1621 messages · Page 2 of 2 (latest)

sonic thistle
#

If you're going to have the Tome of Return be single-use, might I suggest that you not make the Altar consume 30 levels? I could easily see players getting locked into the Library if they spend too long there, drop below 30 levels, and don't have convenient XP to harvest nearby.

#

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.

sinful leaf
#

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

sinful leaf
#

Ill edit the trello accordingly

#

What if they dont have the levels nor the tome?

sonic thistle
#

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?

sinful leaf
#

It should be a bit more dead imo

#

Tho the idea is valid

sonic thistle
#

Occasional loot chests, perhaps, like in Stronghold libraries?

sinful leaf
#

Whats tabula_rasa.png?

sonic thistle
#

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.

sinful leaf
#

Fair enough

#

Ill merge the request now

#

Btw, you should have direct write access so you dont have to make pulls all the time

sonic thistle
#

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/

sonic thistle
sinful leaf
#

Yeah that looks good

#

Sorry for not checking out the project all day, just got home and gotta study for a test tmr 😅

sonic thistle
#

No problem. Same here! What’s your test about?

sinful leaf
sonic thistle
#

Ah, I’ll be studying algorithm design.

sinful leaf
#

Oh, good luck!

sinful leaf
#

Ngl scraps of wisdom are not that good looking in game

#

we should probably rethink how the texture looks

sonic thistle
#

I’ll rework it, good to know.

sonic thistle
wintry relic
#

Is there a public repo for this?

sinful leaf
#

If you want to contribute i can add you tho

sinful leaf
#

@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)

sonic thistle
sonic thistle
sinful leaf
#

yeah thats already a lot better

#

do you know how to use accesswideners btw

sonic thistle
#

Kind of.

sinful leaf
#

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

sonic thistle
#

Did you reload Gradle?

sonic thistle
sinful leaf
#

i think i just solved it

#

i forgot to add it to build.gradle

sonic thistle
#

That would do it.

sinful leaf
#

@sonic thistle pushed my changes, im going to bed

#

@river path please pass us the blockbench project file if you have it

river path
#

okay as long as you credit to me

river path
#

@sinful leaf what your email @sonic thistle do you know?

#

got it nvm

sonic thistle
river path
#

got it

sonic thistle
#

Or do you want it to glow more?

sinful leaf
# sonic thistle 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)?

sonic thistle
sinful leaf
sonic thistle
#

Oh, that. That's just decor to show the altar in a more natural setting.

sinful leaf
#

Cause of my broken ass system either we completely remake worldgen or all structures are 16x16

sonic thistle
#

The only interesting piece is the single central block.

#

The one that's a raw gold block with ivory on the sides.

sinful leaf
sonic thistle
# sinful leaf 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.

sinful leaf
#

I dont get it

#

Like a colored light?

sonic thistle
#

I'll finish it up and send a short video.

sinful leaf
#

Yeah please do

sonic thistle
#

I'd presumably make it glow as well.

sinful leaf
#

Whoa- yeah that looks INCREDIBLE

sonic thistle
#

Perfect.

#

I'll leave the old texture in there (appropriately labeled) in case you want to repurpose it for anything.

sinful leaf
#

Perfect

sonic thistle
#

Now, you also wanted entity models/textures I think?

#

Ink Spirit and Peruser, right?

sinful leaf
#

(If you want to - we'll find someone else if you dont want)

sonic thistle
sinful leaf
#

Also @sonic thistle just a curiosity how old are you if you dont mind me asking

sonic thistle
#

Why do you ask?

sinful leaf
#

Not cause you are not smart just cause you give me that vibe

oak cairn
#

That’s personal and a lot of people wouldn’t be comfortable answering that

oak cairn
oak cairn
#

Kudos to ISeal and Oakenshield also

sinful leaf
#

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

sinful leaf
sonic thistle
sinful leaf
sonic thistle
#

Okay. So what sort of particle and visual effects did you want?

sinful leaf
sonic thistle
#

When should that be triggered?

sinful leaf
sinful leaf
#

All the code for detecting the charges is there you judt have to make the effect

sonic thistle
#

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.

sinful leaf
#

Yeah put it at the end of the queue lol, its not important releared to that

sinful leaf
#

@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

sinful leaf
#

and whether to use AnimatedParticle or spawn a new one each time

#

@bitter inlet any update on the scholar?

sonic thistle
sinful leaf
#

Or we could make them ourselves (the coords i mean)

sonic thistle
#

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.

sinful leaf
#

I think you have to make a pr to your own project pulling thr changes

#

If you want I can try and fix it

sonic thistle
#

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.

sinful leaf
#

What-

#

OH WAIT

#

its probably cause I set the repo to public

#

That might have disconnected the fork

sonic thistle
#

Huh. I don't know why that would do it, but that's the best guess I have so far.

sinful leaf
sonic thistle
#

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.

sinful leaf
#

I can try and look it up, give me 10 mins to go back to my desk

sonic thistle
#

Found it.

#

Looks like delete/recreate is the solution, ugh.

sinful leaf
#

btw, why not just work on a branch in the actual repo

#

why make a fork?

sonic thistle
sinful leaf
#

fair enough

sinful leaf
#

@sonic thistle i pushed some stuff

sonic thistle
#

I'll get around to it when I can. Still haven't re-set-up the workspace.

sinful leaf
#

yeah take your time

bitter inlet
#

HELLO hi yes sorry. Been working on server maintenance this last week, ill let you know when im next not-busy!!

sinful leaf
#

@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

sonic thistle
#

There are some workarounds I know about, depending on what you're trying to do.

sinful leaf
#

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)

sonic thistle
#

Hmm...

#

Ok, how are you choosing the destination?

sinful leaf
#

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

oak cairn
#

!!timer

hoary foxBOT
#

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 + override scheduledTick in your Block.
  • 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
oak cairn
#

You can either use that as a one-time thing or make a timer system

sonic thistle
sinful leaf
#

fabric is such a fucking joke sometimes 🤦

oak cairn
sonic thistle
oak cairn
#

That would work nicely

sinful leaf
#

god you fucking genius ill do that right now

sonic thistle
#

Then, you just inflict the effect for whatever length you desire, and there's your cooldown.

oak cairn
#

/effect just received a new usage: teleporing entities to their spawnpoint 😎

#

Oh wait, does onRemoved provide access to the entity

sonic thistle
#

Oh, I've done so much fun stuff with effects.

sonic thistle
#

Just use the tick method.

#

Check the remaining duration.

oak cairn
#

Ah, if the duration is almost over, apply effect

#

Got it

sinful leaf
sinful leaf
#

thanks

sinful leaf
sonic thistle
#

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)

sinful leaf
#

are you sure thats the right version? MobEffect doesnt exist and applyEffectTick is not in StatusEffect

sonic thistle
#

Oh, sorry.

#

Wrong mappings.

sinful leaf
#

i have an idea tho, ill try to implement it and check back in

sonic thistle
#

I'll translate real quick, sorry again.

sinful leaf
#

your solution is probs better than what I came up with, can you translate it?

sonic thistle
#

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;
    }
}
sinful leaf
#

nope- applyUpdateTick doesnt exist

sonic thistle
#

Huh.

sinful leaf
#

i could just make a listener at end server tick

sonic thistle
#

Argh.

sinful leaf
#

that triggers this tbh

sonic thistle
#

I mistyped it, sorry.

#

Again.

sinful leaf
#

np

sonic thistle
sinful leaf
#

im 90% sure there is a gradle task for it as well

#

@sonic thistle implemented recall effect and tome of return

sonic thistle
#

Awesome. How'd you do the recall effect, by the way?

sinful leaf
#

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

sonic thistle
#

Whoops. Wrong portal effect.

sinful leaf
#

Bruh

sonic thistle
#

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.

sinful leaf
#

yeah, i translated it and implemented

#

seems to work fine

sinful leaf
#

addedd back the particles, now with some nice exponential scaling

sinful leaf
#

aand now the game crashes when i right click the block

#

wtf

sonic thistle
#

Whoops. What's the crash report?

sinful leaf
#

getting it rn

#

pushed te broken code so you can see

sinful leaf
#

@sonic thistle mind checking it out

sonic thistle
#

I'll take a look, sorry - I was just getting the fork set up again, so it'll be a little bit.

sonic thistle
#

Yeah, it's crashing the game when it's trying to generate the core room.

sinful leaf
#

But going through the portal is broken at the momebt

sonic thistle
#

Okay, I'm testing some edits to the recall effect to see if they'll work.

sonic thistle
#

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.

sinful leaf
#

/effect didnt have problems with it

sinful leaf
sonic thistle
sinful leaf
#

What-

#

Did not returning null fix it?

sonic thistle
#

Yes, I simply removed that function override.

#

Was there a particular reason you didn't want it to show particles?

sinful leaf
#

Can you try overriding it and returning ParticleTypes.ENCHANT?

sonic thistle
#

Sure.

sonic thistle
sinful leaf
#

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

sonic thistle
#

Would this work for the icon?

sinful leaf
#

Yeah

sonic thistle
sinful leaf
#

Could we possibly make an empty particle?

sonic thistle
#

Or just turn the existing effect particle transparent - which is what I'm trying now.

#

Done; they are now transparent.

#

(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.

sinful leaf
#

wait in onApplied you check if its client, and then you check if its instance of ServerPlayerEntity?

#

that will never get triggered

sonic thistle
sinful leaf
#

yeah im dumb

#

also its not locked to players, and seems to work with entities as well

#

so ill keep that

sinful leaf
#

yeah you can just remove the onApplied override and push

sonic thistle
#

Will do.

sinful leaf
sonic thistle
#

I haven't taken a look yet, sorry.

sinful leaf
#

np, just, take a look when you can please - im kind of stumped at the moment

sonic thistle
#

I'll be busy for most of the rest of the day, but I'll get to it when I can.

sinful leaf
#

thanks

sinful leaf
#

just fixed status effects - pushed
also implemented crafting for apples

sinful leaf
#

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

sinful leaf
fallen abyss
#

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.

sinful leaf
fallen abyss
sinful leaf
#

@sonic thistle did you do the ink spirit and peruser textures in the end?

sinful leaf
#

none of them are modeled nor textured

fallen abyss
#

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.

sinful leaf
fallen abyss
#

Here's the model I made for the Peruser which I titled "The Light Keeper" because of the lantern.

#

@sonic thistle @sinful leaf

sinful leaf
#

That actually looks really good

#

Is he 3 or 4 blocks?

fallen abyss
#

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

sinful leaf
#

Oh yeah sorry i meant like how tall is he

#

In game

fallen abyss
#

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 ?

sinful leaf
sonic thistle
sonic thistle
#

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.

fallen abyss
#

Yo, just wandering if y'all have finished the mod or if it's released yet

sinful leaf
#

Nah, im currently "on pause" because of school, but the projwct isn't dead

sinful leaf
#

@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?

sonic thistle
#

I'll take a look. Could you send the models? I'm terrible at animation, though.

sonic thistle
#

Alright.

sinful leaf
#

sent

silk oar
#

me

sinful leaf
silk oar
sinful leaf
sinful leaf
#

@sonic thistle have you taken a look?

sonic thistle
#

I have been too busy to do much for this, sorry.

sinful leaf
#

Np

sonic thistle
#

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)

sinful leaf
#

Damn, don't stress yourself with this if you don't want to xD

sonic thistle
#

(Original in the replied-to message above)

sinful leaf
#

What if the librarian has an attack similar to the iceologer's but with books?

sonic thistle
#

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
sinful leaf
#

For the ground minions something like the ink spirits?

sonic thistle
#

Perhaps a small version like baby zombies; inklings?

sinful leaf
sonic thistle
sinful leaf
#

Yeah probably

silk oar
sinful leaf
sinful leaf
sonic thistle
sinful leaf
#

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

sonic thistle
#

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?

sinful leaf
sonic thistle
#

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.

sinful leaf
#

so it would be like (from most powerful to least)

  1. librarians, spawns at structures
  2. perusers, spawns on paths kinda everywhere
  3. ink spirits, librarian minions that spawn when a torch is placed down
sinful leaf
#

wait i just realized

#

the entire dimension is flammable

#

we'll worry about that later i guess

#

i already have an idea for it

sonic thistle
sinful leaf
#

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

sonic thistle
#

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?

sinful leaf
#

maybe like the shulker box projectile but experience colored and emissive lighting

sinful leaf
#

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

sonic thistle
#

Nice.

sonic thistle
#

Wrong thread, sorry.

sinful leaf
#

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

sonic thistle
#

I'll take a quick look tomorrow. Could you ping me when you push it?

sinful leaf
#

im still working on it btw

#

ill push it when i finish xD

#

(time to push 1:30 AM again)

sinful leaf
#

@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

sonic thistle
sinful leaf
sonic thistle
#

Oof. I... really have no idea how to do that.

sinful leaf
#

i jotted down some ideas, implemented some stuff

#

it mostly works

#

just needs a couple of fixes tbh

sonic thistle
#

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?

sinful leaf
#

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

sonic thistle
#

Hmm... so you want to prevent just cheesing it with iron golems.

sinful leaf
#

i want to prevent cheesng it by making a 2 block pillar

sonic thistle
#

What if the iron golems get "possessed" and turn hostile in the library?

#

Oh, that.

sinful leaf
#

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

sonic thistle
#

Or a teleporting attack, for that matter.

sinful leaf
#

nothing 2 walls cant fix

sonic thistle
#

If you wall yourself in, you still have experience be drained.

sinful leaf
#

also it keeps intact that "i dont know where the FUCK i am" feeling as they cant track the way back home

sonic thistle
#

So... you're dead soon enough anyways.

sinful leaf
sonic thistle
#

Precisely. So, you don't want to wall yourself in - you want to take the battle to the monsters, in hopes of harvesting experience.

sinful leaf
#

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?

sonic thistle
#

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.

sinful leaf
#

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

sonic thistle
#

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!

sinful leaf
#

thats true...

sonic thistle
#

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?

sinful leaf
#

exactly

sonic thistle
#

So players will have the panicked insanity of trying to find the exit the first time, no matter what.

sinful leaf
#

right

sonic thistle
#

After that, if they're smart, they'll just take actual physical notes of how to get to the exit anyways.

sinful leaf
#

so yeah this whole idea is pretty dumb xD

sonic thistle
#

It's not dumb. It just needs refining.

sinful leaf
#

my mixin crashout for reference

sonic thistle
#

Perhaps you want to work in NeoForge?

#

(Obviously switching to NeoForge isn't feasible right now, but that's precisely what you're describing)

sinful leaf
#

i would rather have to deal with mixins that have to touch that mess of a platform

sonic thistle
#

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.

sinful leaf
#

have you ever played ultrakill?

sonic thistle
#

I have not, actually.

sinful leaf
#

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

sonic thistle
#

That basically summarizes what I've heard about it, yes. Lots of fast movement. Blood is fuel. And so forth.

sinful leaf
#

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

sonic thistle
#

That makes sense, I think. A silent dimension.

sinful leaf
sonic thistle
#

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.

sinful leaf
#

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

sonic thistle
#

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.

sinful leaf
#

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?

sinful leaf
#

btw, ive seen your modrinth profile and you deserver TONS more downloads! your stuff is amazing

sonic thistle
sinful leaf
#

do I make librarians protect all bookshelves?

#

yeah probably

sonic thistle
#

You could just make it a tag, that might be the best idea.

#

So they just protect all blocks in the tag.

sinful leaf
#

yeah im thinking of what to put in the tag

sonic thistle
#

Bookshelves, chiseled bookshelves, lecterns, and whatever bookshelf types you add, at least to start with, in my opinion.

sinful leaf
#

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

sonic thistle
sinful leaf
#

yeah but those had other QoL changes

#

i just removed it

sonic thistle
#

Ah, ok.

sinful leaf
#

put everything on trello, time to get to work

#

everyone knows the best code is written at 12:09 with 4 hours of sleep

sonic thistle
#

Of course, of course.

sinful leaf
#

@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

sonic thistle
sinful leaf
#

like the default player model

sonic thistle
#

Like an actual entity model? What is it for?

sinful leaf
#

for the ink spirit

sonic thistle
#

I'm not the best at models, but I'll see what I can do.

#

What class did you extend for the Ink Spirit?

sinful leaf
#

i mean its theoretically just a carbon copy of hte player

sinful leaf
sonic thistle
#

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.

sinful leaf
#

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

sonic thistle
#

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.

oak cairn
# sinful leaf my mixin crashout for reference

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

sinful leaf
#

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

sonic thistle
sinful leaf
#

exactly

sonic thistle
#

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.

sonic thistle
#

Here's the head so far.

#

Is this roughly what you were thinking?

sinful leaf
#

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

sonic thistle
#

Oh, that wasn't meant to be a beard.

#

I didn't think about it maybe looking like that.

sinful leaf
#

yeah that makes more sense imo

sonic thistle
#

It's supposed to be vaguely wearing a helmet.

sinful leaf
#

it gives me more the vibe of the ink covering his body making its way to the bottom of his face

sonic thistle
#

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.

sinful leaf
#

It actually looks really good

#

And fits within the ambience

sonic thistle
sinful leaf
#

Thanks! Ill implement it tomorrow tho

#

Gotta go to bed soon today as tomorrow i have a test

sonic thistle
sinful leaf
#

Its a programming test with basic python

#

Like for loop level python

#

Ill be fine

sonic thistle
#

Yeah, that shouldn't be a problem.

sinful leaf
#

(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)

sonic thistle
#

I know the feeling.

sinful leaf
#

Want to know something funny about it?

#

Its on paper.

sinful leaf
#

im back, yesterday i wasnt home all day

sinful leaf
#

@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?

sonic thistle
sinful leaf
#

totally understandable. take all of the time you want ❤️

sinful leaf
#

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

sonic thistle
sinful leaf
#

Hmmm.. how would you suggest obtaining it would go?

#

Maybe a rare drop from librarians??

sonic thistle
#

How about chest loot?

#

That way it needs both combat and exploration.

sinful leaf
sonic thistle
#

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.

sinful leaf
#

Ill ask the #mod-dev-1 wizards later

sinful leaf
#

the wizards ignored me, we're done for

sonic thistle
#

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.

sinful leaf
#

hold up, why?

sonic thistle
#

So we don't have to deal with chunk generator problems.

sinful leaf
#

why do you want an infinitely big structure?

#

i mean fair

#

keep going, im listening

sonic thistle
#

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.

sinful leaf
#

and how do we guarantee this connection?

sonic thistle
#

Portals.

#

That would be the tricky part.

sinful leaf
#

uhhh, that seems... ambitious

sonic thistle
#

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.

sinful leaf
#

and how do you avoid a loop?

#

or teleporting into the structure you are already in?

sonic thistle
#

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.

sinful leaf
#

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?

sonic thistle
#

What do you mean?

sinful leaf
#

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?

sonic thistle
sinful leaf
sinful leaf
#

@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

sinful leaf
#

@sonic thistle had any time to take a look?

sonic thistle
#

Not yet, sorry.

sinful leaf
sharp wraith
#

is this like actually infinite?

sinful leaf
#

7 mil x 7 mil blocks iirc

sharp wraith
#

can i by chance have the github link lol... been wanting to look into this kinda thing

sinful leaf
#

its the infinitelibrary project in my git

#

just look at my profile

sharp wraith
#

kk

sinful leaf
#

ill go grab the link

sharp wraith
#

sick

sinful leaf
sharp wraith
#

awesome

#

i will have a fun time deconstructing your code later lol

sinful leaf
#

xD, beware that on the worldgen side @sonic thistle is experimenting with another method

sharp wraith
#

cool

#

i may at some point request an explanation if im unable to figure it out myself lol

sinful leaf
#

sure

sharp wraith
#

is the github private

sinful leaf
#

oh mb it is

#

whats your git

sharp wraith
#

lemme get it

sinful leaf
#

(ill make it public when the mod is done, i dont like having unfinished things on my git)

sharp wraith
#

Underdog08 i believe

#

if not try Under?

#

one of the two

sinful leaf
#

sent you an invite

sharp wraith
#

awesome

sharp wraith
#

also just saying if you need sprites for blocks/items just lmk

#

ping preferably tho

wispy temple
#

Could I check out the repo aswell?

sinful leaf
wispy temple
#

It’s lxlennox17

sinful leaf
fallen abyss
#

Yo, @sinful leaf is there a way I could hop in the mod to check it out while you're still working on it?

river path
#

oh kinda off topic but if yal use mcasset the website got updated which is interesting

sinful leaf
#

cause the worldgen is pretty fucked up, no clue why

river path
#

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 😭 )

sinful leaf
#

@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

sonic thistle
#

Sorry I haven't been very active with this; I'm having both computer problems and final exams.

sinful leaf
#

Can I just make a private channel in my actual server? seems easier ngl

sonic thistle
#

Confirmed that I'm in the server, that should be much more convenient.

sinful leaf
#

thanks.

#

do you have anything from this chat you wish to save before i delete it?

sonic thistle
#

Are you deleting this chat? Why not keep it?

sinful leaf
#

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

sonic thistle
#

Ok, we can talk over there if you would like.

sinful leaf
#

[REQUEST CLOSED] Looking for artists / ideas to help me make an infinite library dimension