Fix decorant issues

This commit is contained in:
Daniel Mills 2020-12-13 10:13:52 -05:00
parent 310b12c81d
commit 3742d5ef81

View File

@ -3,6 +3,8 @@ package com.volmit.iris.generator.decorator;
import com.volmit.iris.object.DecorationPart; import com.volmit.iris.object.DecorationPart;
import com.volmit.iris.object.IrisBiome; import com.volmit.iris.object.IrisBiome;
import com.volmit.iris.object.IrisDecorator; import com.volmit.iris.object.IrisDecorator;
import com.volmit.iris.scaffold.cache.Cache;
import com.volmit.iris.util.KList;
import com.volmit.iris.util.RNG; import com.volmit.iris.util.RNG;
import com.volmit.iris.scaffold.engine.Engine; import com.volmit.iris.scaffold.engine.Engine;
import com.volmit.iris.scaffold.engine.EngineAssignedComponent; import com.volmit.iris.scaffold.engine.EngineAssignedComponent;
@ -25,17 +27,21 @@ public abstract class IrisEngineDecorator extends EngineAssignedComponent implem
protected IrisDecorator getDecorator(IrisBiome biome, double realX, double realZ) protected IrisDecorator getDecorator(IrisBiome biome, double realX, double realZ)
{ {
KList<IrisDecorator> v = new KList<>();
RNG rng = new RNG(Cache.key((int)realX, (int)realZ));
for(IrisDecorator i : biome.getDecorators()) for(IrisDecorator i : biome.getDecorators())
{ {
if(i.getPartOf().equals(part)) if(i.getPartOf().equals(part) && i.getBlockData(biome, this.rng, realX, realZ, getData()) != null)
{ {
if(i.getBlockData(biome, rng, realX, realZ, getData()) != null) v.add(i);
{
return i;
}
} }
} }
if(v.isNotEmpty()) {
return v.get(rng.nextInt(v.size()));
}
return null; return null;
} }
} }