Renamed BlockRenderOptimizer to ChunkRenderOptimizer
Also renamed [BRO]Generator to [CRO]Supplier
This commit is contained in:
parent
d58d028e1c
commit
bdb458b911
@ -30,9 +30,9 @@ import ru.windcorp.progressia.client.graphics.model.StaticModel.Builder;
|
||||
import ru.windcorp.progressia.client.world.renders.BlockRender;
|
||||
import ru.windcorp.progressia.client.world.renders.BlockRenderNone;
|
||||
import ru.windcorp.progressia.client.world.renders.BlockRenders;
|
||||
import ru.windcorp.progressia.client.world.renders.bro.BlockRenderOptimizer;
|
||||
import ru.windcorp.progressia.client.world.renders.bro.BlockRenderOptimizerGenerator;
|
||||
import ru.windcorp.progressia.client.world.renders.bro.BlockRenderOptimizerGenerators;
|
||||
import ru.windcorp.progressia.client.world.renders.cro.ChunkRenderOptimizer;
|
||||
import ru.windcorp.progressia.client.world.renders.cro.ChunkRenderOptimizerSupplier;
|
||||
import ru.windcorp.progressia.client.world.renders.cro.ChunkRenderOptimizers;
|
||||
import ru.windcorp.progressia.common.world.ChunkData;
|
||||
|
||||
public class ChunkRender {
|
||||
@ -87,9 +87,9 @@ public class ChunkRender {
|
||||
}
|
||||
|
||||
private void buildModel() {
|
||||
Collection<BlockRenderOptimizer> optimizers =
|
||||
BlockRenderOptimizerGenerators.getAll().stream()
|
||||
.map(BlockRenderOptimizerGenerator::createOptimizer)
|
||||
Collection<ChunkRenderOptimizer> optimizers =
|
||||
ChunkRenderOptimizers.getAllSuppliers().stream()
|
||||
.map(ChunkRenderOptimizerSupplier::createOptimizer)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
optimizers.forEach(bro -> bro.startRender(this));
|
||||
@ -121,7 +121,7 @@ public class ChunkRender {
|
||||
}
|
||||
}
|
||||
|
||||
for (BlockRenderOptimizer optimizer : optimizers) {
|
||||
for (ChunkRenderOptimizer optimizer : optimizers) {
|
||||
Shape result = optimizer.endRender();
|
||||
if (result != null) {
|
||||
builder.addPart(result);
|
||||
@ -134,7 +134,7 @@ public class ChunkRender {
|
||||
|
||||
private void forwardToOptimizers(
|
||||
BlockRender block, int x, int y, int z,
|
||||
Collection<BlockRenderOptimizer> optimizers
|
||||
Collection<ChunkRenderOptimizer> optimizers
|
||||
) {
|
||||
optimizers.forEach(bro -> bro.processBlock(block, x, y, z));
|
||||
}
|
||||
|
@ -19,7 +19,7 @@ package ru.windcorp.progressia.client.world.renders;
|
||||
|
||||
import ru.windcorp.progressia.client.graphics.model.ShapeRenderHelper;
|
||||
import ru.windcorp.progressia.client.graphics.model.WorldRenderable;
|
||||
import ru.windcorp.progressia.client.world.renders.bro.BlockRenderOptimizer;
|
||||
import ru.windcorp.progressia.client.world.renders.cro.ChunkRenderOptimizer;
|
||||
import ru.windcorp.progressia.common.util.Namespaced;
|
||||
|
||||
public abstract class BlockRender extends Namespaced {
|
||||
@ -38,7 +38,7 @@ public abstract class BlockRender extends Namespaced {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean canBeOptimized(BlockRenderOptimizer optimizer) {
|
||||
public boolean canBeOptimized(ChunkRenderOptimizer optimizer) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -26,7 +26,7 @@ import ru.windcorp.progressia.client.graphics.model.Shapes;
|
||||
import ru.windcorp.progressia.client.graphics.model.WorldRenderable;
|
||||
import ru.windcorp.progressia.client.graphics.texture.Texture;
|
||||
import ru.windcorp.progressia.client.graphics.world.WorldRenderProgram;
|
||||
import ru.windcorp.progressia.client.world.renders.bro.BlockRenderCubeOptimizer.OpaqueCube;
|
||||
import ru.windcorp.progressia.client.world.renders.cro.ChunkRenderOptimizerCube.OpaqueCube;
|
||||
import ru.windcorp.progressia.common.block.BlockFace;
|
||||
|
||||
public abstract class BlockRenderTexturedCube
|
||||
|
@ -15,13 +15,13 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*******************************************************************************/
|
||||
package ru.windcorp.progressia.client.world.renders.bro;
|
||||
package ru.windcorp.progressia.client.world.renders.cro;
|
||||
|
||||
import ru.windcorp.progressia.client.graphics.model.Shape;
|
||||
import ru.windcorp.progressia.client.world.ChunkRender;
|
||||
import ru.windcorp.progressia.client.world.renders.BlockRender;
|
||||
|
||||
public abstract class BlockRenderOptimizer {
|
||||
public abstract class ChunkRenderOptimizer {
|
||||
|
||||
public abstract void startRender(ChunkRender chunk);
|
||||
|
@ -15,7 +15,7 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*******************************************************************************/
|
||||
package ru.windcorp.progressia.client.world.renders.bro;
|
||||
package ru.windcorp.progressia.client.world.renders.cro;
|
||||
|
||||
import static ru.windcorp.progressia.common.world.ChunkData.BLOCKS_PER_CHUNK;
|
||||
|
||||
@ -34,7 +34,7 @@ import ru.windcorp.progressia.client.world.renders.BlockRender;
|
||||
import ru.windcorp.progressia.common.block.BlockFace;
|
||||
import ru.windcorp.progressia.common.world.ChunkData;
|
||||
|
||||
public class BlockRenderCubeOptimizer extends BlockRenderOptimizer {
|
||||
public class ChunkRenderOptimizerCube extends ChunkRenderOptimizer {
|
||||
|
||||
public static interface OpaqueCube {
|
||||
public Texture getTexture(BlockFace face);
|
@ -15,16 +15,30 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*******************************************************************************/
|
||||
package ru.windcorp.progressia.client.world.renders.bro;
|
||||
package ru.windcorp.progressia.client.world.renders.cro;
|
||||
|
||||
import com.google.common.base.Supplier;
|
||||
|
||||
import ru.windcorp.progressia.common.util.Namespaced;
|
||||
|
||||
public abstract class BlockRenderOptimizerGenerator extends Namespaced {
|
||||
public abstract class ChunkRenderOptimizerSupplier extends Namespaced {
|
||||
|
||||
public BlockRenderOptimizerGenerator(String namespace, String name) {
|
||||
public ChunkRenderOptimizerSupplier(String namespace, String name) {
|
||||
super(namespace, name);
|
||||
}
|
||||
|
||||
public abstract BlockRenderOptimizer createOptimizer();
|
||||
public abstract ChunkRenderOptimizer createOptimizer();
|
||||
|
||||
public static ChunkRenderOptimizerSupplier of(
|
||||
String namespace, String name,
|
||||
Supplier<ChunkRenderOptimizer> supplier
|
||||
) {
|
||||
return new ChunkRenderOptimizerSupplier(namespace, name) {
|
||||
@Override
|
||||
public ChunkRenderOptimizer createOptimizer() {
|
||||
return supplier.get();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
}
|
@ -15,38 +15,36 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*******************************************************************************/
|
||||
package ru.windcorp.progressia.client.world.renders.bro;
|
||||
package ru.windcorp.progressia.client.world.renders.cro;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class BlockRenderOptimizerGenerators {
|
||||
public class ChunkRenderOptimizers {
|
||||
|
||||
private BlockRenderOptimizerGenerators() {}
|
||||
private ChunkRenderOptimizers() {}
|
||||
|
||||
private static final Map<String, BlockRenderOptimizerGenerator> GENERATORS =
|
||||
private static final Map<String, ChunkRenderOptimizerSupplier> SUPPLIERS =
|
||||
new HashMap<>();
|
||||
|
||||
static {
|
||||
register(new BlockRenderOptimizerGenerator("Default", "OpaqueCube") {
|
||||
@Override
|
||||
public BlockRenderOptimizer createOptimizer() {
|
||||
return new BlockRenderCubeOptimizer();
|
||||
}
|
||||
});
|
||||
register(ChunkRenderOptimizerSupplier.of(
|
||||
"Default", "OpaqueCube",
|
||||
ChunkRenderOptimizerCube::new
|
||||
));
|
||||
}
|
||||
|
||||
public static BlockRenderOptimizerGenerator get(String id) {
|
||||
return GENERATORS.get(id);
|
||||
public static ChunkRenderOptimizerSupplier getSupplier(String id) {
|
||||
return SUPPLIERS.get(id);
|
||||
}
|
||||
|
||||
public static void register(BlockRenderOptimizerGenerator generator) {
|
||||
GENERATORS.put(generator.getId(), generator);
|
||||
public static void register(ChunkRenderOptimizerSupplier supplier) {
|
||||
SUPPLIERS.put(supplier.getId(), supplier);
|
||||
}
|
||||
|
||||
public static Collection<BlockRenderOptimizerGenerator> getAll() {
|
||||
return GENERATORS.values();
|
||||
public static Collection<ChunkRenderOptimizerSupplier> getAllSuppliers() {
|
||||
return SUPPLIERS.values();
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user