mirror of
https://github.com/Creators-of-Create/Create.git
synced 2024-12-15 18:43:41 +01:00
Nothing in particular
This commit is contained in:
parent
9a178ef9d8
commit
d58897d59a
5 changed files with 13 additions and 29 deletions
|
@ -1,9 +1,7 @@
|
||||||
package com.jozufozu.flywheel.backend.core;
|
package com.jozufozu.flywheel.backend.core;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.EnumMap;
|
import java.util.EnumMap;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.backend.ShaderContext;
|
import com.jozufozu.flywheel.backend.ShaderContext;
|
||||||
|
@ -17,14 +15,12 @@ import com.jozufozu.flywheel.backend.gl.shader.IMultiProgram;
|
||||||
import com.jozufozu.flywheel.backend.gl.shader.ShaderSpecLoader;
|
import com.jozufozu.flywheel.backend.gl.shader.ShaderSpecLoader;
|
||||||
import com.jozufozu.flywheel.backend.loading.Program;
|
import com.jozufozu.flywheel.backend.loading.Program;
|
||||||
|
|
||||||
public class WorldMultiProgram<P extends GlProgram> implements IMultiProgram<P> {
|
public class FogMultiProgram<P extends GlProgram> implements IMultiProgram<P> {
|
||||||
|
|
||||||
private final Map<GlFogMode, P> programs;
|
private final Map<GlFogMode, P> programs;
|
||||||
private final List<P> debugPrograms;
|
|
||||||
|
|
||||||
public WorldMultiProgram(Map<GlFogMode, P> programs, List<P> debugPrograms) {
|
public FogMultiProgram(Map<GlFogMode, P> programs) {
|
||||||
this.programs = programs;
|
this.programs = programs;
|
||||||
this.debugPrograms = debugPrograms;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -47,16 +43,6 @@ public class WorldMultiProgram<P extends GlProgram> implements IMultiProgram<P>
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IMultiProgram<P> create(ShaderLoader loader, ShaderContext<P> ctx, ProgramSpec spec) {
|
public IMultiProgram<P> create(ShaderLoader loader, ShaderContext<P> ctx, ProgramSpec spec) {
|
||||||
List<P> debugModes = new ArrayList<>(2);
|
|
||||||
|
|
||||||
String[] modes = new String[]{"NORMAL_DEBUG", "RAINBOW_DEBUG"};
|
|
||||||
|
|
||||||
for (String mode : modes) {
|
|
||||||
Program builder = ctx.loadProgram(loader, spec, Collections.singletonList(mode));
|
|
||||||
|
|
||||||
debugModes.add(factory.create(builder, null));
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<GlFogMode, P> programs = new EnumMap<>(GlFogMode.class);
|
Map<GlFogMode, P> programs = new EnumMap<>(GlFogMode.class);
|
||||||
|
|
||||||
for (GlFogMode fogMode : GlFogMode.values()) {
|
for (GlFogMode fogMode : GlFogMode.values()) {
|
||||||
|
@ -65,7 +51,7 @@ public class WorldMultiProgram<P extends GlProgram> implements IMultiProgram<P>
|
||||||
programs.put(fogMode, factory.create(builder, Collections.singletonList(fogMode)));
|
programs.put(fogMode, factory.create(builder, Collections.singletonList(fogMode)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return new WorldMultiProgram<>(programs, debugModes);
|
return new FogMultiProgram<>(programs);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -32,8 +32,8 @@ public class WorldContext<P extends WorldProgram> extends ShaderContext<P> {
|
||||||
private static final String declaration = "#flwbuiltins";
|
private static final String declaration = "#flwbuiltins";
|
||||||
private static final Pattern builtinPattern = Pattern.compile(declaration);
|
private static final Pattern builtinPattern = Pattern.compile(declaration);
|
||||||
|
|
||||||
public static final WorldContext<WorldProgram> INSTANCE = new WorldContext<>(new ResourceLocation(Flywheel.ID, "context/world"), new WorldMultiProgram.SpecLoader<>(WorldProgram::new));
|
public static final WorldContext<WorldProgram> INSTANCE = new WorldContext<>(new ResourceLocation(Flywheel.ID, "context/world"), new FogMultiProgram.SpecLoader<>(WorldProgram::new));
|
||||||
public static final WorldContext<CrumblingProgram> CRUMBLING = new WorldContext<>(new ResourceLocation(Flywheel.ID, "context/crumbling"), new WorldMultiProgram.SpecLoader<>(CrumblingProgram::new));
|
public static final WorldContext<CrumblingProgram> CRUMBLING = new WorldContext<>(new ResourceLocation(Flywheel.ID, "context/crumbling"), new FogMultiProgram.SpecLoader<>(CrumblingProgram::new));
|
||||||
|
|
||||||
protected ProgramTemplate template;
|
protected ProgramTemplate template;
|
||||||
protected final ResourceLocation name;
|
protected final ResourceLocation name;
|
||||||
|
|
|
@ -57,6 +57,10 @@ public class ExtensibleGlProgram extends GlProgram {
|
||||||
public interface Factory<P extends GlProgram> {
|
public interface Factory<P extends GlProgram> {
|
||||||
|
|
||||||
@Nonnull
|
@Nonnull
|
||||||
P create(Program program, @Nullable List<ProgramExtender> fogFactory);
|
P create(Program program, @Nullable List<ProgramExtender> extensions);
|
||||||
|
|
||||||
|
default P create(Program program) {
|
||||||
|
return create(program, null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,11 +6,5 @@ import com.jozufozu.flywheel.backend.core.shader.ProgramSpec;
|
||||||
|
|
||||||
public interface ShaderSpecLoader<P extends GlProgram> {
|
public interface ShaderSpecLoader<P extends GlProgram> {
|
||||||
|
|
||||||
/**
|
|
||||||
* @param loader
|
|
||||||
* @param ctx
|
|
||||||
* @param spec
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
IMultiProgram<P> create(ShaderLoader loader, ShaderContext<P> ctx, ProgramSpec spec);
|
IMultiProgram<P> create(ShaderLoader loader, ShaderContext<P> ctx, ProgramSpec spec);
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,8 +15,8 @@ import java.util.stream.Stream;
|
||||||
import org.apache.commons.lang3.tuple.Pair;
|
import org.apache.commons.lang3.tuple.Pair;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.backend.Backend;
|
import com.jozufozu.flywheel.backend.Backend;
|
||||||
|
import com.jozufozu.flywheel.backend.core.FogMultiProgram;
|
||||||
import com.jozufozu.flywheel.backend.core.WorldContext;
|
import com.jozufozu.flywheel.backend.core.WorldContext;
|
||||||
import com.jozufozu.flywheel.backend.core.WorldMultiProgram;
|
|
||||||
import com.jozufozu.flywheel.backend.loading.ModelTemplate;
|
import com.jozufozu.flywheel.backend.loading.ModelTemplate;
|
||||||
import com.mojang.blaze3d.matrix.MatrixStack;
|
import com.mojang.blaze3d.matrix.MatrixStack;
|
||||||
import com.simibubi.create.AllMovementBehaviours;
|
import com.simibubi.create.AllMovementBehaviours;
|
||||||
|
@ -71,8 +71,8 @@ public class ContraptionRenderDispatcher {
|
||||||
public static final Compartment<Pair<Contraption, Integer>> CONTRAPTION = new Compartment<>();
|
public static final Compartment<Pair<Contraption, Integer>> CONTRAPTION = new Compartment<>();
|
||||||
|
|
||||||
private static final ResourceLocation ctxRoot = new ResourceLocation("create", "context/contraption");
|
private static final ResourceLocation ctxRoot = new ResourceLocation("create", "context/contraption");
|
||||||
public static final WorldContext<ContraptionProgram> STRUCTURE = new WorldContext<>(ctxRoot, new WorldMultiProgram.SpecLoader<>(ContraptionProgram::new), () -> Stream.of(AllProgramSpecs.STRUCTURE), ModelTemplate::new);
|
public static final WorldContext<ContraptionProgram> STRUCTURE = new WorldContext<>(ctxRoot, new FogMultiProgram.SpecLoader<>(ContraptionProgram::new), () -> Stream.of(AllProgramSpecs.STRUCTURE), ModelTemplate::new);
|
||||||
public static final WorldContext<ContraptionProgram> TILES = new WorldContext<>(ctxRoot, new WorldMultiProgram.SpecLoader<>(ContraptionProgram::new));
|
public static final WorldContext<ContraptionProgram> TILES = new WorldContext<>(ctxRoot, new FogMultiProgram.SpecLoader<>(ContraptionProgram::new));
|
||||||
|
|
||||||
public static void tick() {
|
public static void tick() {
|
||||||
if (Minecraft.getInstance().isGamePaused()) return;
|
if (Minecraft.getInstance().isGamePaused()) return;
|
||||||
|
|
Loading…
Reference in a new issue