Started by
snoopy_dono
on
Topic category: Help with Minecraft modding (Java Edition)
Hi all, I had this idea, replace the portal activation in End, not with ender eyes, but with 12 unique items. So, I found that the portal frame has a boolean state 'eye'. I created a procedure that when I right click this unique item in my hand, it changes the state of the portal frame to 'eye=True', but when I activate the 12 portal frames, the portal itself is not activated. But if I activate 11 portal frames with my item, and insert an ender's eye into the 12th frame, the portal activates. Does anyone have any ideas how to realize the activation of the portal only with my item?
First off, this is a sick idea and I would love to have this mod. Second, it might be easier to make it so that the item just replaces the portal frame with a different block and that block checks to see if all the frames are in the right spot. Then it just fills the area.
Making a custom block does sound like the easiest solution. You could make 12 blocks, all of them being an end portal frame block with your custom items on top. Then on item right clicked on end portal frame replace x y z with custom block.
To make it easier you can make a variable for each block to check whether one has been placed or not. That way players cant make 12 of the same block. Then a number variable which adds 1 each time a custom block replaces an end portal frame. Then you can make another if statement on each block to check whether number variable = 12. If so check for custom blocks in the area and spawn the end portal itself.
Recognising the blocks and spawning the portal would be quite a long procedure but I dont know another way.
I think the problem with the last item is that the last block you place an eye into is the activation block e.g. it checks for the other 11 activated blocks and then places the portal in the middle.
Ok, I did that, but now I have a whole other problem) How do I disable the ability to spawn port frames in the ende with the eye inside?
You can make a custom block eg the normal portal frame. Then makes its spawn weight the max possible and make it only be able to replace end portal frames. Then replace all your procedures, which interact with end portal frames, so they interact with your custom empty version.
Do you mean to replace all vanilla portal frames with my custom block? If you can give me a tip on how to do this, using Mcreator or other tools, I would be very grateful.
Yes, replace all portal frames with a custom one.
Make a custom block, make a model the same as the end portal frame and use its texture, basically the exact same block. Then in the blocks properties set generation to true. Your then gonna need to add all the vanilla biomes into that (and any custom overworld biomes), make min y = 64 and max y = 320. Then pick the end portal frame in blocks this block can replace. Mcreator says values above 32 may crash the game for ore groups. So try some high numbers and check strongholds to see if the custom block is actually replacing the end portal frame.
Alternatively if that doesnt work you can use a feature. Make the feature basically spawn anywhere and everywhere, what will be placed is a structure 1x1x1 of your custom block. Then make a conditional placement that if block at x y z = end portal frame. That might work better as you can set the stage of generation for that.
I tried the first option, but unfortunately it does not work, and with the second I can not figure out, can you see what I do wrong?
Well I tried it and cant get it to work. However my Mcreator seems to be a bit buggy right now so try this out anyway.
Try this at different generation stages:
My only other solution would be to run a tick update on player, that if an end portal frame is in an area then replace it with your custom block.
With your first option seems to work, but it does not replace all blocks, that is not with 100% chance, can I somehow turn this value to the maximum? Because now i have this, and this is not enough)
First you should have it on uniform and not triangle.
If that doesnt improve how much they replace then as long as one custom block is set per stronghold then you can do this. Make each custom block on tick check for end portal frame blocks nearby, then replace those with your custom block. Theres a check for block in a 6x6x6 area in the procedure templates.
Doesn't work(.But I got an idea, can I remove any texture from Vanilla or make it transparent via mcreator?
I seem to have figured out how to do it, but I keep having trouble figuring out how I can remove that thing above the block.
If you can somehow overwrite the bounding box to be the same as the normal end portal frame then it would go away. Idk how you even made it transparent let alone changing the bounding box.
I replaced the end_frame_filled texture with end_frame in the blockstate parameter)