mirror of
https://github.com/Creators-of-Create/Create.git
synced 2024-11-10 12:33:57 +01:00
Small cleanup
This commit is contained in:
parent
c7e9df973c
commit
81eeadb853
@ -15,7 +15,6 @@ import net.minecraft.core.particles.ParticleOptions;
|
|||||||
import net.minecraft.core.particles.ParticleTypes;
|
import net.minecraft.core.particles.ParticleTypes;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
import net.minecraft.network.chat.TranslatableComponent;
|
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@ -30,7 +29,7 @@ public class AllBogeyStyles {
|
|||||||
|
|
||||||
public static BogeyStyle STANDARD = create("standard")
|
public static BogeyStyle STANDARD = create("standard")
|
||||||
.commonRenderer(CommonStandardBogeyRenderer::new)
|
.commonRenderer(CommonStandardBogeyRenderer::new)
|
||||||
.displayName(new TranslatableComponent("create.bogeys.styles.standard"))
|
.displayName(Lang.translateDirect("create.bogeys.styles.standard"))
|
||||||
.size(BogeySizes.SMALL, SmallStandardBogeyRenderer::new, AllBlocks.SMALL_BOGEY)
|
.size(BogeySizes.SMALL, SmallStandardBogeyRenderer::new, AllBlocks.SMALL_BOGEY)
|
||||||
.size(BogeySizes.LARGE, LargeStandardBogeyRenderer::new, AllBlocks.LARGE_BOGEY)
|
.size(BogeySizes.LARGE, LargeStandardBogeyRenderer::new, AllBlocks.LARGE_BOGEY)
|
||||||
.build();
|
.build();
|
||||||
@ -56,7 +55,7 @@ public class AllBogeyStyles {
|
|||||||
protected CompoundTag defaultData = new CompoundTag();
|
protected CompoundTag defaultData = new CompoundTag();
|
||||||
protected ParticleOptions contactParticle = ParticleTypes.CRIT;
|
protected ParticleOptions contactParticle = ParticleTypes.CRIT;
|
||||||
protected ParticleOptions smokeParticle = ParticleTypes.POOF;
|
protected ParticleOptions smokeParticle = ParticleTypes.POOF;
|
||||||
protected Optional<CommonRenderer> commonRenderer = Optional.empty();
|
protected Optional<Supplier<? extends CommonRenderer>> commonRenderer = Optional.empty();
|
||||||
|
|
||||||
public BogeyStyleBuilder(ResourceLocation name) {
|
public BogeyStyleBuilder(ResourceLocation name) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
@ -85,7 +84,7 @@ public class AllBogeyStyles {
|
|||||||
|
|
||||||
public BogeyStyleBuilder size(BogeySizes.BogeySize size, Supplier<? extends BogeyRenderer> renderer,
|
public BogeyStyleBuilder size(BogeySizes.BogeySize size, Supplier<? extends BogeyRenderer> renderer,
|
||||||
ResourceLocation location) {
|
ResourceLocation location) {
|
||||||
this.sizes.put(size, new BogeyStyle.SizeData(location, renderer.get()));
|
this.sizes.put(size, new BogeyStyle.SizeData(location, renderer, renderer.get()));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -100,7 +99,7 @@ public class AllBogeyStyles {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public BogeyStyleBuilder commonRenderer(Supplier<? extends CommonRenderer> commonRenderer) {
|
public BogeyStyleBuilder commonRenderer(Supplier<? extends CommonRenderer> commonRenderer) {
|
||||||
this.commonRenderer = Optional.of(commonRenderer.get());
|
this.commonRenderer = Optional.of(commonRenderer);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -111,7 +111,7 @@ public abstract class AbstractBogeyBlock extends Block implements ITE<StandardBo
|
|||||||
MultiBufferSource buffers, int light, int overlay, StandardBogeyTileEntity sbte) {
|
MultiBufferSource buffers, int light, int overlay, StandardBogeyTileEntity sbte) {
|
||||||
BogeyStyle style = sbte.getStyle();
|
BogeyStyle style = sbte.getStyle();
|
||||||
final Optional<BogeyRenderer.CommonRenderer> commonRenderer
|
final Optional<BogeyRenderer.CommonRenderer> commonRenderer
|
||||||
= style.getNewCommonRenderInstance();
|
= style.getInWorldCommonRenderInstance();
|
||||||
final BogeyRenderer renderer = style.getInWorldRenderInstance(this.getSize());
|
final BogeyRenderer renderer = style.getInWorldRenderInstance(this.getSize());
|
||||||
if (state != null) {
|
if (state != null) {
|
||||||
ms.translate(.5f, .5f, .5f);
|
ms.translate(.5f, .5f, .5f);
|
||||||
|
@ -278,21 +278,10 @@ public abstract class BogeyRenderer {
|
|||||||
return state.toString();
|
return state.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Used for rendering in contraptions allowing for individual instances of models for each component
|
|
||||||
*
|
|
||||||
* @return new Instance of renderer
|
|
||||||
*/
|
|
||||||
public abstract BogeyRenderer createNewInstance();
|
|
||||||
|
|
||||||
|
|
||||||
public static abstract class CommonRenderer extends BogeyRenderer {
|
public static abstract class CommonRenderer extends BogeyRenderer {
|
||||||
@Override
|
@Override
|
||||||
public BogeySizes.BogeySize getSize() {
|
public BogeySizes.BogeySize getSize() {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public abstract CommonRenderer createNewInstance();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,11 +30,6 @@ public class StandardBogeyRenderer {
|
|||||||
.setValue(ShaftBlock.AXIS, Direction.Axis.Z), 2);
|
.setValue(ShaftBlock.AXIS, Direction.Axis.Z), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public CommonStandardBogeyRenderer createNewInstance() {
|
|
||||||
return new CommonStandardBogeyRenderer();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void render(CompoundTag bogeyData, float wheelAngle, PoseStack ms, int light, VertexConsumer vb) {
|
public void render(CompoundTag bogeyData, float wheelAngle, PoseStack ms, int light, VertexConsumer vb) {
|
||||||
boolean inContraption = vb == null;
|
boolean inContraption = vb == null;
|
||||||
@ -58,10 +53,6 @@ public class StandardBogeyRenderer {
|
|||||||
createModelInstances(materialManager, BOGEY_FRAME);
|
createModelInstances(materialManager, BOGEY_FRAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public BogeyRenderer createNewInstance() {
|
|
||||||
return new SmallStandardBogeyRenderer();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BogeySizes.BogeySize getSize() {
|
public BogeySizes.BogeySize getSize() {
|
||||||
@ -96,11 +87,6 @@ public class StandardBogeyRenderer {
|
|||||||
.setValue(ShaftBlock.AXIS, Direction.Axis.X), 2);
|
.setValue(ShaftBlock.AXIS, Direction.Axis.X), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public BogeyRenderer createNewInstance() {
|
|
||||||
return new LargeStandardBogeyRenderer();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BogeySizes.BogeySize getSize() {
|
public BogeySizes.BogeySize getSize() {
|
||||||
return BogeySizes.LARGE;
|
return BogeySizes.LARGE;
|
||||||
|
@ -19,9 +19,4 @@ public class BackupBogeyRenderer extends BogeyRenderer.CommonRenderer {
|
|||||||
public void initialiseContraptionModelData(MaterialManager materialManager) {
|
public void initialiseContraptionModelData(MaterialManager materialManager) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public CommonRenderer createNewInstance() {
|
|
||||||
return new BackupBogeyRenderer();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -20,10 +20,13 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import java.util.function.Supplier;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
|
|
||||||
public class BogeyStyle {
|
public class BogeyStyle {
|
||||||
|
private final Optional<Supplier<? extends CommonRenderer>> commonRendererFactory;
|
||||||
|
|
||||||
public final ResourceLocation name;
|
public final ResourceLocation name;
|
||||||
private final Optional<CommonRenderer> commonRenderer;
|
private final Optional<CommonRenderer> commonRenderer;
|
||||||
private final Map<BogeySizes.BogeySize, SizeData> sizes;
|
private final Map<BogeySizes.BogeySize, SizeData> sizes;
|
||||||
@ -34,7 +37,7 @@ public class BogeyStyle {
|
|||||||
public final CompoundTag defaultData;
|
public final CompoundTag defaultData;
|
||||||
|
|
||||||
public BogeyStyle(ResourceLocation name, Component displayName, ResourceLocation soundType, ParticleOptions contactParticle, ParticleOptions smokeParticle,
|
public BogeyStyle(ResourceLocation name, Component displayName, ResourceLocation soundType, ParticleOptions contactParticle, ParticleOptions smokeParticle,
|
||||||
CompoundTag defaultData, Map<BogeySizes.BogeySize, SizeData> sizes, Optional<CommonRenderer> commonRenderer) {
|
CompoundTag defaultData, Map<BogeySizes.BogeySize, SizeData> sizes, Optional<Supplier<? extends CommonRenderer>> commonRenderer) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.displayName = displayName;
|
this.displayName = displayName;
|
||||||
this.soundType = soundType;
|
this.soundType = soundType;
|
||||||
@ -43,9 +46,12 @@ public class BogeyStyle {
|
|||||||
this.defaultData = defaultData;
|
this.defaultData = defaultData;
|
||||||
|
|
||||||
this.sizes = sizes;
|
this.sizes = sizes;
|
||||||
this.commonRenderer = commonRenderer;
|
|
||||||
|
this.commonRendererFactory = commonRenderer;
|
||||||
|
this.commonRenderer = commonRenderer.map(Supplier::get);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public Block getNextBlock(BogeySizes.BogeySize currentSize) {
|
public Block getNextBlock(BogeySizes.BogeySize currentSize) {
|
||||||
return Stream.iterate(currentSize.increment(), BogeySizes.BogeySize::increment)
|
return Stream.iterate(currentSize.increment(), BogeySizes.BogeySize::increment)
|
||||||
.filter(sizes::containsKey)
|
.filter(sizes::containsKey)
|
||||||
@ -70,12 +76,12 @@ public class BogeyStyle {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public BogeyRenderer createRendererInstance(BogeySizes.BogeySize size) {
|
public BogeyRenderer createRendererInstance(BogeySizes.BogeySize size) {
|
||||||
return this.getInWorldRenderInstance(size).createNewInstance();
|
return this.sizes.get(size).createRenderInstance();
|
||||||
}
|
}
|
||||||
|
|
||||||
public BogeyRenderer getInWorldRenderInstance(BogeySizes.BogeySize size) {
|
public BogeyRenderer getInWorldRenderInstance(BogeySizes.BogeySize size) {
|
||||||
SizeData sizeData = this.sizes.get(size);
|
SizeData sizeData = this.sizes.get(size);
|
||||||
return sizeData != null ? sizeData.renderer() : BackupBogeyRenderer.INSTANCE;
|
return sizeData != null ? sizeData.getInWorldInstance() : BackupBogeyRenderer.INSTANCE;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Optional<CommonRenderer> getInWorldCommonRenderInstance() {
|
public Optional<CommonRenderer> getInWorldCommonRenderInstance() {
|
||||||
@ -83,13 +89,20 @@ public class BogeyStyle {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Optional<CommonRenderer> getNewCommonRenderInstance() {
|
public Optional<CommonRenderer> getNewCommonRenderInstance() {
|
||||||
return this.getInWorldCommonRenderInstance().map(CommonRenderer::createNewInstance);
|
return this.commonRendererFactory.map(Supplier::get);
|
||||||
}
|
}
|
||||||
|
|
||||||
public BogeyInstance createInstance(CarriageBogey bogey, BogeySizes.BogeySize size, MaterialManager materialManager) {
|
public BogeyInstance createInstance(CarriageBogey bogey, BogeySizes.BogeySize size, MaterialManager materialManager) {
|
||||||
return new BogeyInstance(bogey, this, size, materialManager);
|
return new BogeyInstance(bogey, this, size, materialManager);
|
||||||
}
|
}
|
||||||
|
|
||||||
public record SizeData(ResourceLocation block, BogeyRenderer renderer) {
|
public record SizeData(ResourceLocation block, Supplier<? extends BogeyRenderer> rendererFactory, BogeyRenderer instance) {
|
||||||
|
public BogeyRenderer createRenderInstance() {
|
||||||
|
return rendererFactory.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public BogeyRenderer getInWorldInstance() {
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user