Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also .

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also .
Choose a Base Repository
cuberite/cuberite
36451/MCServer
4264/cuberite
Akheon23/cuberite
Alyxey/cuberite
Ba4life/cuberite
BrainShit/MCServer
C-Elegans/cuberite
ChriPiv/MCServer
Dam63/MCServer
DevToaster/MCServer
DjKiDD/MCServer
Erbelding/cuberite
ErrAza/MCServer
FX-Master/MCServer
Floppy012/MCServer
FullStackUnicorns/MCServer
GameClub2000/cuberite
HackerTon/MCServer
HaoTNN/cuberite
Haxi52/cuberite
HelenaKitty/EbooMC
Hillvith/MCServer
Hmaal/MCServer
Howaner/MCServer
Infinity-Codeur/MCServer
JABirchall/MCServer
JJOL/cuberite
JoeClacks/MCServer
JoseDiaz27/MCServer
Jothle12/MCServer
Kungfumoo/MCServer
Limb/MCServer
LinEvil/cuberite
MaxM357/MCServer
Motoburger1/MCServer
MuhammadWang/MCServer
Nerkyator/MCServer
Noraaron1/MCServer
Pheo/MCServer
PixeLInc/cuberite
PyroCybin/cuberite
Raekye/MCServer
RedEnraged96/MCServer-1
Redd-Dasan/cuberite
Renoh47/MCServer
Roro534/cuberite
SOSDAN/cuberite
SamMauldin/MCServer
Samvbnm/MCServer
Schwertspize/cuberite
Seadragon91/cuberite
Sentir101/MCServer
Solexid/MCServer
StefanNemeth/cuberite
Tank-D/MCServer
ThisIsAgent1k/MCServer
ThuGie/MCServer
TigerHix/MCServer
TonyMo/MCServer
Toyz/MCServer
Tri125/MCServer
UltraCoderRU/cuberite
WillEccles/cuberite
Xury/MCServer
Zeenjayli/MCServer
Zignixx/cuberite
acrade/cuberite
adesnos/cuberite
ameuret/cuberite
arekinath/MCServer
arnaudlahalle/cuberite
artemist/cuberite
axisd/MCServer
balika011/MCServer
bendl/cuberite
benhc123/MCServer
bibo38/Cuberite
birkett/cuberite
bowlofstew/MCServer
cacaxi/MCServer
carriercomm/cuberite
cedeel/MCServer
cheryl0047/MCServer
christopher-montagna/MCServer
codebucketdev/MCServer
coding12/cuberite
commshare/MCServer
crexalbo/MCServer
crosbymichael/MCServer
daemon777/MCServer
daniel0916/MCServer
darkzmii/cuberite
dave-tucker/cuberite
daveh86/MCServer
debug-stick/cuberal
deckerrj/cuberite
decterous/MCServer
default0/MCServer
dmonger/MCServer
dougvj/MCServer
electromatter/cuberite
ezhangle/cuberite
f0rb1d/MCServer
gdevillele/cuberite
geekpower14/MCServer
giriko/MCServer
greatman/MCServer
guijun/MCServer
gushromp/MCServer
hallucino/cuberite
hammermaps/MCServer
harryhare/MCServer
hide92795/cuberite
hmartinh/cuberite
ionux/MCServer
irrelevantdotcom/MCServer
jacky526/cuberite
jalons/MCServer
jamesliu96/MCServer
jamesmunns/MCServer
jamestait/cuberite
jamiepg1/MCServer
jammet/MCServer
jaumealoy/MCServer
jayr0flmc/cuberite
jimfinnis/MCServer
jimiy/cuberite
joeflezer/MCServer
john092/MCServer
josephcopenhaver/cuberite
joshi07/MCServer2
jpdamon/cuberite
kharashubham/cuberite
kjanku1/MCServer
lighth7015/cuberite
lima900/MCServer
linnemannr/MCServer
lkolbly/MCServer
lvshiling/MCServer
madtomic/MCServer
maki-chan/MCServer
maniak89/MCServer
marmot21/MCServer
martindev2/cuberite
marvinkopf/cuberite
meiavy/cuberite
mgueydan/MCServer
mhmd05/cuberite
mjhanninen/cuberite
mjssw/cuberite
mmdk95/cuberite
mrhabib/MCServer
narroo/MCServer
nathankot/MCServer
necrophcodr/cuberite
nesco/MCServer
nevercast/cuberite
nicodinh/cuberite
nounoursheureux/MCServer
p-mcgowan/MCServer
paizzj/cuberite
parlock/cuberite
patthekenny/MCServer
pillsbury7901/MCServer
planetx/MCServer
prabhjeet27/cuberite
psrivast7788/MCServer
ravenscroftj/MCServer
rcrimp/MCServer
rhamilton1415/cuberite
ricucremop/cuberite
ryansnewell/MCServer
scribblemaniac/cuberite
scriptsboy/cuberite
seijikun/MCServer
shaunstanislaus/MCServer
sircodes/MCServer
skarlitz/MCServer
soemthlng/cuberite
stpinker/MCServer
straemer/MCServer
thatchristoph/MCServer
then0rTh/cuberite
tomthoros/MCServer
tonetheman/MCServer
tt7truong/MCServer
ubiGG/cuberite
vyeluri5/MCServer
w00tc0d3/MCServer
waluoo/MCServer
wang108/MCServer
wnwkimo/cuberite
worktycho/MCServer
xanahopper/MCServer
yamamushi/MCServer
yinyunqiao/MCServer
yo4you/cuberite
zackp30/cuberite
zeliard/MCServer
Nothing to show
Choose a Head Repository
cuberite/cuberite
36451/MCServer
4264/cuberite
Akheon23/cuberite
Alyxey/cuberite
Ba4life/cuberite
BrainShit/MCServer
C-Elegans/cuberite
ChriPiv/MCServer
Dam63/MCServer
DevToaster/MCServer
DjKiDD/MCServer
Erbelding/cuberite
ErrAza/MCServer
FX-Master/MCServer
Floppy012/MCServer
FullStackUnicorns/MCServer
GameClub2000/cuberite
HackerTon/MCServer
HaoTNN/cuberite
Haxi52/cuberite
HelenaKitty/EbooMC
Hillvith/MCServer
Hmaal/MCServer
Howaner/MCServer
Infinity-Codeur/MCServer
JABirchall/MCServer
JJOL/cuberite
JoeClacks/MCServer
JoseDiaz27/MCServer
Jothle12/MCServer
Kungfumoo/MCServer
Limb/MCServer
LinEvil/cuberite
MaxM357/MCServer
Motoburger1/MCServer
MuhammadWang/MCServer
Nerkyator/MCServer
Noraaron1/MCServer
Pheo/MCServer
PixeLInc/cuberite
PyroCybin/cuberite
Raekye/MCServer
RedEnraged96/MCServer-1
Redd-Dasan/cuberite
Renoh47/MCServer
Roro534/cuberite
SOSDAN/cuberite
SamMauldin/MCServer
Samvbnm/MCServer
Schwertspize/cuberite
Seadragon91/cuberite
Sentir101/MCServer
Solexid/MCServer
StefanNemeth/cuberite
Tank-D/MCServer
ThisIsAgent1k/MCServer
ThuGie/MCServer
TigerHix/MCServer
TonyMo/MCServer
Toyz/MCServer
Tri125/MCServer
UltraCoderRU/cuberite
WillEccles/cuberite
Xury/MCServer
Zeenjayli/MCServer
Zignixx/cuberite
acrade/cuberite
adesnos/cuberite
ameuret/cuberite
arekinath/MCServer
arnaudlahalle/cuberite
artemist/cuberite
axisd/MCServer
balika011/MCServer
bendl/cuberite
benhc123/MCServer
bibo38/Cuberite
birkett/cuberite
bowlofstew/MCServer
cacaxi/MCServer
carriercomm/cuberite
cedeel/MCServer
cheryl0047/MCServer
christopher-montagna/MCServer
codebucketdev/MCServer
coding12/cuberite
commshare/MCServer
crexalbo/MCServer
crosbymichael/MCServer
daemon777/MCServer
daniel0916/MCServer
darkzmii/cuberite
dave-tucker/cuberite
daveh86/MCServer
debug-stick/cuberal
deckerrj/cuberite
decterous/MCServer
default0/MCServer
dmonger/MCServer
dougvj/MCServer
electromatter/cuberite
ezhangle/cuberite
f0rb1d/MCServer
gdevillele/cuberite
geekpower14/MCServer
giriko/MCServer
greatman/MCServer
guijun/MCServer
gushromp/MCServer
hallucino/cuberite
hammermaps/MCServer
harryhare/MCServer
hide92795/cuberite
hmartinh/cuberite
ionux/MCServer
irrelevantdotcom/MCServer
jacky526/cuberite
jalons/MCServer
jamesliu96/MCServer
jamesmunns/MCServer
jamestait/cuberite
jamiepg1/MCServer
jammet/MCServer
jaumealoy/MCServer
jayr0flmc/cuberite
jimfinnis/MCServer
jimiy/cuberite
joeflezer/MCServer
john092/MCServer
josephcopenhaver/cuberite
joshi07/MCServer2
jpdamon/cuberite
kharashubham/cuberite
kjanku1/MCServer
lighth7015/cuberite
lima900/MCServer
linnemannr/MCServer
lkolbly/MCServer
lvshiling/MCServer
madtomic/MCServer
maki-chan/MCServer
maniak89/MCServer
marmot21/MCServer
martindev2/cuberite
marvinkopf/cuberite
meiavy/cuberite
mgueydan/MCServer
mhmd05/cuberite
mjhanninen/cuberite
mjssw/cuberite
mmdk95/cuberite
mrhabib/MCServer
narroo/MCServer
nathankot/MCServer
necrophcodr/cuberite
nesco/MCServer
nevercast/cuberite
nicodinh/cuberite
nounoursheureux/MCServer
p-mcgowan/MCServer
paizzj/cuberite
parlock/cuberite
patthekenny/MCServer
pillsbury7901/MCServer
planetx/MCServer
prabhjeet27/cuberite
psrivast7788/MCServer
ravenscroftj/MCServer
rcrimp/MCServer
rhamilton1415/cuberite
ricucremop/cuberite
ryansnewell/MCServer
scribblemaniac/cuberite
scriptsboy/cuberite
seijikun/MCServer
shaunstanislaus/MCServer
sircodes/MCServer
skarlitz/MCServer
soemthlng/cuberite
stpinker/MCServer
straemer/MCServer
thatchristoph/MCServer
then0rTh/cuberite
tomthoros/MCServer
tonetheman/MCServer
tt7truong/MCServer
ubiGG/cuberite
vyeluri5/MCServer
w00tc0d3/MCServer
waluoo/MCServer
wang108/MCServer
wnwkimo/cuberite
worktycho/MCServer
xanahopper/MCServer
yamamushi/MCServer
yinyunqiao/MCServer
yo4you/cuberite
zackp30/cuberite
zeliard/MCServer
Nothing to show
  • 2 commits
  • 1 file changed
  • 0 commit comments
  • 1 contributor
Showing with 42 additions and 22 deletions.
  1. +42 −22 src/Generating/DungeonRoomsFinisher.cpp
@@ -40,10 +40,22 @@ class cDungeonRoom :
m_EndX(a_OriginX + a_HalfSizeX),
m_StartZ(a_OriginZ - a_HalfSizeZ),
m_EndZ(a_OriginZ + a_HalfSizeZ),
m_FloorHeight(a_FloorHeight),
m_Chest1(SelectChestCoords(a_Noise, a_OriginX + 1, a_OriginZ)),
m_Chest2(SelectChestCoords(a_Noise, a_OriginX + 2, a_OriginZ))
m_FloorHeight(a_FloorHeight)
{
/*
Pick coords next to the wall for the chests.
This is done by indexing the possible coords, picking any one for the first chest
and then picking another position for the second chest that is not adjacent to the first pos
*/
int rnd = a_Noise.IntNoise2DInt(a_OriginX, a_OriginZ) / 7;
int SizeX = m_EndX - m_StartX - 1;
int SizeZ = m_EndZ - m_StartZ - 1;
int NumPositions = 2 * SizeX + 2 * SizeZ;
int FirstChestPos = rnd % NumPositions; // The corner positions are a bit more likely, but we don't mind
rnd = rnd / 512;
int SecondChestPos = (FirstChestPos + 2 + (rnd % (NumPositions - 3))) % NumPositions;
m_Chest1 = DecodeChestCoords(FirstChestPos, SizeX, SizeZ);
m_Chest2 = DecodeChestCoords(SecondChestPos, SizeX, SizeZ);
}
protected:
@@ -65,36 +77,29 @@ class cDungeonRoom :
/** Selects the coords for the chest, using the noise and coords provided.
Assumes that the room XZ ranges are already assigned. */
Vector3i SelectChestCoords(cNoise & a_Noise, int a_X, int a_Z)
/** Decodes the position index along the room walls into a proper 2D position for a chest. */
Vector3i DecodeChestCoords(int a_PosIdx, int a_SizeX, int a_SizeZ)
{
// Pick a coord next to the wall:
int rnd = a_Noise.IntNoise2DInt(a_X, a_Z) / 7;
int SizeX = m_EndX - m_StartX - 1;
int SizeZ = m_EndZ - m_StartZ - 1;
rnd = rnd % (2 * SizeX + 2 * SizeZ);
if (rnd < SizeX)
if (a_PosIdx < a_SizeX)
{
// Return a coord on the ZM side of the room:
return Vector3i(m_StartX + rnd + 1, E_META_CHEST_FACING_ZP, m_StartZ + 1);
return Vector3i(m_StartX + a_PosIdx + 1, E_META_CHEST_FACING_ZP, m_StartZ + 1);
}
rnd -= SizeX;
if (rnd < SizeZ)
a_PosIdx -= a_SizeX;
if (a_PosIdx < a_SizeZ)
{
// Return a coord on the XP side of the room:
return Vector3i(m_EndX - 1, E_META_CHEST_FACING_XM, m_StartZ + rnd + 1);
return Vector3i(m_EndX - 1, E_META_CHEST_FACING_XM, m_StartZ + a_PosIdx + 1);
}
rnd -= SizeZ;
if (rnd < SizeX)
a_PosIdx -= a_SizeZ;
if (a_PosIdx < a_SizeX)
{
// Return a coord on the ZP side of the room:
return Vector3i(m_StartX + rnd + 1, E_META_CHEST_FACING_ZM, m_StartZ + 1);
return Vector3i(m_StartX + a_PosIdx + 1, E_META_CHEST_FACING_ZM, m_StartZ + 1);
}
rnd -= SizeX;
a_PosIdx -= a_SizeX;
// Return a coord on the XM side of the room:
return Vector3i(m_StartX + 1, E_META_CHEST_FACING_XP, m_StartZ + rnd + 1);
return Vector3i(m_StartX + 1, E_META_CHEST_FACING_XP, m_StartZ + a_PosIdx + 1);
}
@@ -192,13 +197,28 @@ class cDungeonRoom :
int t = m_FloorHeight + 1 + ROOM_HEIGHT; // Top
ReplaceCuboidRandom(a_ChunkDesc, m_StartX, m_FloorHeight, m_StartZ, m_EndX + 1, b, m_EndZ + 1, E_BLOCK_MOSSY_COBBLESTONE, E_BLOCK_COBBLESTONE); // Floor
ReplaceCuboid(a_ChunkDesc, m_StartX + 1, b, m_StartZ + 1, m_EndX, t, m_EndZ, E_BLOCK_AIR); // Insides
// Walls:
ReplaceCuboid(a_ChunkDesc, m_StartX, b, m_StartZ, m_StartX + 1, t, m_EndZ, E_BLOCK_COBBLESTONE); // XM wall
ReplaceCuboid(a_ChunkDesc, m_EndX, b, m_StartZ, m_EndX + 1, t, m_EndZ, E_BLOCK_COBBLESTONE); // XP wall
ReplaceCuboid(a_ChunkDesc, m_StartX, b, m_StartZ, m_EndX + 1, t, m_StartZ + 1, E_BLOCK_COBBLESTONE); // ZM wall
ReplaceCuboid(a_ChunkDesc, m_StartX, b, m_EndZ, m_EndX + 1, t, m_EndZ + 1, E_BLOCK_COBBLESTONE); // ZP wall
// Place chests:
TryPlaceChest(a_ChunkDesc, m_Chest1);
TryPlaceChest(a_ChunkDesc, m_Chest2);
// Place the spawner:
int CenterX = (m_StartX + m_EndX) / 2 - a_ChunkDesc.GetChunkX() * cChunkDef::Width;
int CenterZ = (m_StartZ + m_EndZ) / 2 - a_ChunkDesc.GetChunkZ() * cChunkDef::Width;
if (
(CenterX >= 0) && (CenterX < cChunkDef::Width) &&
(CenterZ >= 0) && (CenterZ < cChunkDef::Width)
)
{
a_ChunkDesc.SetBlockTypeMeta(CenterX, b, CenterZ, E_BLOCK_MOB_SPAWNER, 0);
// TODO: Set the spawned mob
}
}
} ;

No commit comments for this range