The kelp looks too uniform, and you can't even keep it cropped randomly because it grows back too quick. I think there should be a variance in the top height of each plant.
Also, we really need some kind of palm trees for this tropical (coral) update. Maybe you could add some island/Atoll biomes in the warm oceans and put them there. Nothing big, just a way to get that tropical feel without having to craft your own trees everywhere. There's nothing like a palm tree against a setting sun to make you feel warm and fuzzy
The Meaning of Life, the Universe, and Everything.
Join Date:
7/1/2017
Posts:
130
Minecraft:
jjlr
Member Details
I agree and disagree with the tree part, i would like new tree types but this is the aquatic (water) update, not a beach update. As for the kelp part that seems like it would be difficult to implement.
As for the kelp part that seems like it would be difficult to implement.
Difficult? Mojang can use the following code from my own mod (tweaked for the greater depth of oceans in 1.7+):
public void updateTick(World par1World, int x, int y, int z, Random par5Random)
{
// Growth rate is about the same as sugarcane (an average of one block every 16 updates)
if (this.onNeighborBlockChange(par1World, x, y, z, 0) && par5Random.nextInt(16) == 0)
{
int meta = par1World.getBlockMetadata(x, y, z);
if (meta >= 5 && this.canGrow(par1World, x, y, z))
{
// Each new block has a different data value from the block below it; previous top block is
// set to a normal block by subtracting 5 from its metadata
meta -= 5;
int newMeta;
do {newMeta = par5Random.nextInt(5);} while (newMeta == meta);
par1World.setBlock(x, y + 1, z, this.blockID, newMeta + 5, 2);
par1World.setBlockMetadata(x, y, z, meta);
}
}
}
// Determines if kelp can grow taller based on its maximum height and number of blocks below
private boolean canGrow(World par1World, int x, int y, int z)
{
if (par1World.getBlockId(x, y + 1, z) != Block.waterStill.blockID || !this.canBlockStay(par1World, x, y + 1, z)) return false;
int maxY = y;
while (true)
{
--y;
if (par1World.getBlockId(x, y, z) != this.blockID) break;
}
return (maxY - y < getMaxHeight(x, z));
}
// Returns a random number between 6 and 16 based on the x and z coordinates
public static int getMaxHeight(int x, int z)
{
return (int)(((long)x * 341873128712L ^ (long)z * 132897987541L) >>> 33) % 11 + 6;
}
Some screenshots showing kelp:
Yes, this is 1.6.4:
This is actually not much different from the code for sugarcane and cactus, except the maximum height depends on the coordinates (in my mod the height of cactus is also varied from 3-6 blocks in Desert M; both of these also apply during world generation).
And yes, my mod also has palm trees and Tropical and Frozen Ocean both include small islands with various snowy/tropical biomes - more variety in world generation never hurts, especially when biomes are laid out as in my mod:
(the random areas of ice are also generated in a similar way to the heights of kelp, by applying a filter to Perlin noise plus a random value, otherwise it is all Frozen Ocean. The 5 small "islands" to the left are actually icebergs)
Palm trees also generate in an Oasis biome in Desert M (instead of water lakes), as well as on sandy beaches in 25% of 4x4 chunk regions:
This is a rendering of the last world I made with my mod (prior to new ocean types and all the other features I've mentioned recently); I found no less than 31 distinct biomes (excluding hills, river, and edge biomes) within less than one level 4 map - and I've still yet to find a couple biomes added in the first version:
Also, I made it so that you can bonemeal kelp, cactus, and sugarcane to grow it to any height (limited by the build limit or water depth):
else if (block == Block.cactus.blockID || block == Block.reed.blockID || block == Block.kelp.blockID)
{
// Using bonemeal on cactus, sugarcane, or kelp causes a block to grow above it
// Searches up for top of block column
do {++y;} while (par1World.getBlockId(x, y, z) == block);
if (y < 256 && par1World.getBlockId(x, y, z) == (block == Block.kelp.blockID ? Block.waterStill.blockID : 0) && Block.blocksList[block].canBlockStay(par1World, x, y, z))
{
if (!par1World.isRemote)
{
int meta = 0;
if (block == Block.kelp.blockID)
{
// Converts top of kelp to normal block and sets meta for new top block
meta = par1World.getBlockMetadata(x, y - 1, z) % 5;
par1World.setBlockMetadata(x, y - 1, z, meta);
int oldMeta = meta;
do {meta = par1World.rand.nextInt(5);} while (meta == oldMeta);
meta += 5;
}
par1World.setBlock(x, y, z, block, meta, 3);
--par0ItemStack.stackSize;
}
return true;
}
}
The Meaning of Life, the Universe, and Everything.
Join Date:
7/1/2017
Posts:
130
Minecraft:
jjlr
Member Details
First of all, did you spend the time to completely port 1.13 oceans to 1.6.4, and if so why? Second, the location variable in determining the height feels messy and disorganized to me, it is only pseudorandom and can still look odd.
First of all, did you spend the time to completely port 1.13 oceans to 1.6.4, and if so why? Second, the location variable in determining the height feels messy and disorganized to me, it is only pseudorandom and can still look odd.
Why? Just as some people like building fancy houses, others like making custom maps, I like making my own "version" of the game with whatever features I like, which go far beyond some features found in newer versions, and even then many of them are not exactly the same; for example, my version of Mending is a direct replacement for renaming an item so the prior work penalty does not increase (you have to use the anvil to repair items for a cost which depends on the enchantments and durability) and my attack "cooldown" lets you attack multiple mobs as fast as damage immunity allows and is more of a punishment (it reduces damage dealt based on a value which increases if you hit a mob while it is damage immune or miss too often, and it takes effect over a period of time, not just the following attack).
Also, nearly every feature that I've added has some role in world generation or is useful to me, such as rail blocks (1 block = 9 rails, 1 stack = 576 rails, which saves a lot of space when exploring mineshafts); I don't just add blocks for the heck of it, which is why there is no colored glass in my mod and I only added stairs and no slabs for quartz sandstone (used in new biome/structure); I only added variants of fences so structures like mineshafts could use different types of wood depending on the biome (which goes far beyond 1.10's mesa-exclusive mineshafts; each biome has one or more types of wood which mainly depend on the trees it has).
Why? Just as some people like building fancy houses, others like making custom maps, I like making my own "version" of the game with whatever features I like, which go far beyond some features found in newer versions, and even then many of them are not exactly the same; for example, my version of Mending is a direct replacement for renaming an item so the prior work penalty does not increase (you have to use the anvil to repair items for a cost which depends on the enchantments and durability) and my attack "cooldown" lets you attack multiple mobs as fast as damage immunity allows and is more of a punishment (it reduces damage dealt based on a value which increases if you hit a mob while it is damage immune or miss too often, and it takes effect over a period of time, not just the following attack).
Also, nearly every feature that I've added has some role in world generation or is useful to me, such as rail blocks (1 block = 9 rails, 1 stack = 576 rails, which saves a lot of space when exploring mineshafts); I don't just add blocks for the heck of it, which is why there is no colored glass in my mod and I only added stairs and no slabs for quartz sandstone (used in new biome/structure); I only added variants of fences so structures like mineshafts could use different types of wood depending on the biome (which goes far beyond 1.10's mesa-exclusive mineshafts; each biome has one or more types of wood which mainly depend on the trees it has).
I was only asking because you shared an image of 1.13 items in 1.6. Though that is alot of dedication to making your own "version" of the game.
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
The kelp looks too uniform, and you can't even keep it cropped randomly because it grows back too quick. I think there should be a variance in the top height of each plant.
Also, we really need some kind of palm trees for this tropical (coral) update. Maybe you could add some island/Atoll biomes in the warm oceans and put them there. Nothing big, just a way to get that tropical feel without having to craft your own trees everywhere. There's nothing like a palm tree against a setting sun to make you feel warm and fuzzy
Thanks!
I agree and disagree with the tree part, i would like new tree types but this is the aquatic (water) update, not a beach update. As for the kelp part that seems like it would be difficult to implement.
Difficult? Mojang can use the following code from my own mod (tweaked for the greater depth of oceans in 1.7+):
public void updateTick(World par1World, int x, int y, int z, Random par5Random) { // Growth rate is about the same as sugarcane (an average of one block every 16 updates) if (this.onNeighborBlockChange(par1World, x, y, z, 0) && par5Random.nextInt(16) == 0) { int meta = par1World.getBlockMetadata(x, y, z); if (meta >= 5 && this.canGrow(par1World, x, y, z)) { // Each new block has a different data value from the block below it; previous top block is // set to a normal block by subtracting 5 from its metadata meta -= 5; int newMeta; do {newMeta = par5Random.nextInt(5);} while (newMeta == meta); par1World.setBlock(x, y + 1, z, this.blockID, newMeta + 5, 2); par1World.setBlockMetadata(x, y, z, meta); } } } // Determines if kelp can grow taller based on its maximum height and number of blocks below private boolean canGrow(World par1World, int x, int y, int z) { if (par1World.getBlockId(x, y + 1, z) != Block.waterStill.blockID || !this.canBlockStay(par1World, x, y + 1, z)) return false; int maxY = y; while (true) { --y; if (par1World.getBlockId(x, y, z) != this.blockID) break; } return (maxY - y < getMaxHeight(x, z)); } // Returns a random number between 6 and 16 based on the x and z coordinates public static int getMaxHeight(int x, int z) { return (int)(((long)x * 341873128712L ^ (long)z * 132897987541L) >>> 33) % 11 + 6; }Some screenshots showing kelp:
Yes, this is 1.6.4:
This is actually not much different from the code for sugarcane and cactus, except the maximum height depends on the coordinates (in my mod the height of cactus is also varied from 3-6 blocks in Desert M; both of these also apply during world generation).
And yes, my mod also has palm trees and Tropical and Frozen Ocean both include small islands with various snowy/tropical biomes - more variety in world generation never hurts, especially when biomes are laid out as in my mod:
(the random areas of ice are also generated in a similar way to the heights of kelp, by applying a filter to Perlin noise plus a random value, otherwise it is all Frozen Ocean. The 5 small "islands" to the left are actually icebergs)
Palm trees also generate in an Oasis biome in Desert M (instead of water lakes), as well as on sandy beaches in 25% of 4x4 chunk regions:
This is a rendering of the last world I made with my mod (prior to new ocean types and all the other features I've mentioned recently); I found no less than 31 distinct biomes (excluding hills, river, and edge biomes) within less than one level 4 map - and I've still yet to find a couple biomes added in the first version:
Also, I made it so that you can bonemeal kelp, cactus, and sugarcane to grow it to any height (limited by the build limit or water depth):
else if (block == Block.cactus.blockID || block == Block.reed.blockID || block == Block.kelp.blockID) { // Using bonemeal on cactus, sugarcane, or kelp causes a block to grow above it // Searches up for top of block column do {++y;} while (par1World.getBlockId(x, y, z) == block); if (y < 256 && par1World.getBlockId(x, y, z) == (block == Block.kelp.blockID ? Block.waterStill.blockID : 0) && Block.blocksList[block].canBlockStay(par1World, x, y, z)) { if (!par1World.isRemote) { int meta = 0; if (block == Block.kelp.blockID) { // Converts top of kelp to normal block and sets meta for new top block meta = par1World.getBlockMetadata(x, y - 1, z) % 5; par1World.setBlockMetadata(x, y - 1, z, meta); int oldMeta = meta; do {meta = par1World.rand.nextInt(5);} while (meta == oldMeta); meta += 5; } par1World.setBlock(x, y, z, block, meta, 3); --par0ItemStack.stackSize; } return true; } }TheMasterCaver's First World - possibly the most caved-out world in Minecraft history - includes world download.
TheMasterCaver's World - my own version of Minecraft largely based on my views of how the game should have evolved since 1.6.4.
Why do I still play in 1.6.4?
First of all, did you spend the time to completely port 1.13 oceans to 1.6.4, and if so why? Second, the location variable in determining the height feels messy and disorganized to me, it is only pseudorandom and can still look odd.
Why? Just as some people like building fancy houses, others like making custom maps, I like making my own "version" of the game with whatever features I like, which go far beyond some features found in newer versions, and even then many of them are not exactly the same; for example, my version of Mending is a direct replacement for renaming an item so the prior work penalty does not increase (you have to use the anvil to repair items for a cost which depends on the enchantments and durability) and my attack "cooldown" lets you attack multiple mobs as fast as damage immunity allows and is more of a punishment (it reduces damage dealt based on a value which increases if you hit a mob while it is damage immune or miss too often, and it takes effect over a period of time, not just the following attack).
Also, nearly every feature that I've added has some role in world generation or is useful to me, such as rail blocks (1 block = 9 rails, 1 stack = 576 rails, which saves a lot of space when exploring mineshafts); I don't just add blocks for the heck of it, which is why there is no colored glass in my mod and I only added stairs and no slabs for quartz sandstone (used in new biome/structure); I only added variants of fences so structures like mineshafts could use different types of wood depending on the biome (which goes far beyond 1.10's mesa-exclusive mineshafts; each biome has one or more types of wood which mainly depend on the trees it has).
TheMasterCaver's First World - possibly the most caved-out world in Minecraft history - includes world download.
TheMasterCaver's World - my own version of Minecraft largely based on my views of how the game should have evolved since 1.6.4.
Why do I still play in 1.6.4?
I was only asking because you shared an image of 1.13 items in 1.6. Though that is alot of dedication to making your own "version" of the game.