Compare commits

..

1 Commits

18 changed files with 255 additions and 142 deletions
+3 -3
View File
@@ -157,7 +157,7 @@
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_line_comments" value="false"/> <setting id="org.eclipse.jdt.core.formatter.comment.format_line_comments" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.text_block_indentation" value="0"/> <setting id="org.eclipse.jdt.core.formatter.text_block_indentation" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.align_type_members_on_columns" value="false"/> <setting id="org.eclipse.jdt.core.formatter.align_type_members_on_columns" value="false"/>
@@ -192,7 +192,7 @@
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_method_declaration" value="0"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_method_declaration" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="false"/> <setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_conditional_operator" value="true"/> <setting id="org.eclipse.jdt.core.formatter.wrap_before_conditional_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/> <setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
@@ -285,7 +285,7 @@
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_block_comments" value="false"/> <setting id="org.eclipse.jdt.core.formatter.comment.format_block_comments" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.indent_tag_description" value="false"/> <setting id="org.eclipse.jdt.core.formatter.comment.indent_tag_description" value="false"/>
@@ -67,7 +67,8 @@ public class StackSizeRenderer {
final float inverseScaleFactor = 1.0f / scaleFactor; final float inverseScaleFactor = 1.0f / scaleFactor;
final int offset = AEConfig.instance().isUseLargeFonts() ? 0 : -1; final int offset = AEConfig.instance().isUseLargeFonts() ? 0 : -1;
TransformationMatrix tm = new TransformationMatrix(new Vector3f(0, 0, 300), // Taken from ItemRenderer.renderItemOverlayIntoGUI TransformationMatrix tm = new TransformationMatrix(new Vector3f(0, 0, 300), // Taken from
// ItemRenderer.renderItemOverlayIntoGUI
null, new Vector3f(scaleFactor, scaleFactor, scaleFactor), null); null, new Vector3f(scaleFactor, scaleFactor, scaleFactor), null);
RenderSystem.disableBlend(); RenderSystem.disableBlend();
@@ -142,6 +142,7 @@ public class CableBusBakedModel implements IBakedModel {
} }
} }
} }
this.facadeBuilder.buildFacadeQuads(layer, renderState, rand, quads, this.partModels::get); this.facadeBuilder.buildFacadeQuads(layer, renderState, rand, quads, this.partModels::get);
return quads; return quads;
@@ -327,12 +328,12 @@ public class CableBusBakedModel implements IBakedModel {
@Override @Override
public boolean isGui3d() { public boolean isGui3d() {
return false; return false; // This model is never used in an UI
} }
@Override @Override
public boolean isSideLit() { public boolean isSideLit() {
return false;// TODO return false; // This model is never used in an UI
} }
@Override @Override
@@ -18,7 +18,9 @@
package appeng.client.render.cablebus; package appeng.client.render.cablebus;
import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Stream; import java.util.stream.Stream;
@@ -37,6 +39,7 @@ import net.minecraftforge.client.model.IModelConfiguration;
import appeng.api.util.AEColor; import appeng.api.util.AEColor;
import appeng.client.render.BasicUnbakedModel; import appeng.client.render.BasicUnbakedModel;
import appeng.core.AELog; import appeng.core.AELog;
import appeng.core.AppEng;
import appeng.core.features.registries.PartModels; import appeng.core.features.registries.PartModels;
/** /**
@@ -44,6 +47,8 @@ import appeng.core.features.registries.PartModels;
*/ */
public class CableBusModel implements BasicUnbakedModel<CableBusModel> { public class CableBusModel implements BasicUnbakedModel<CableBusModel> {
public static final ResourceLocation TRANSLUCENT_FACADE_MODEL = AppEng.makeId("part/translucent_facade");
private final PartModels partModels; private final PartModels partModels;
public CableBusModel(PartModels partModels) { public CableBusModel(PartModels partModels) {
@@ -53,7 +58,9 @@ public class CableBusModel implements BasicUnbakedModel<CableBusModel> {
@Override @Override
public Collection<ResourceLocation> getModelDependencies() { public Collection<ResourceLocation> getModelDependencies() {
partModels.setInitialized(true); partModels.setInitialized(true);
return partModels.getModels(); List<ResourceLocation> models = new ArrayList<>(partModels.getModels());
models.add(TRANSLUCENT_FACADE_MODEL);
return models;
} }
@Override @Override
@@ -68,7 +75,11 @@ public class CableBusModel implements BasicUnbakedModel<CableBusModel> {
Map<ResourceLocation, IBakedModel> partModels = this.loadPartModels(bakery, spriteGetter, modelTransform); Map<ResourceLocation, IBakedModel> partModels = this.loadPartModels(bakery, spriteGetter, modelTransform);
CableBuilder cableBuilder = new CableBuilder(spriteGetter); CableBuilder cableBuilder = new CableBuilder(spriteGetter);
FacadeBuilder facadeBuilder = new FacadeBuilder();
IBakedModel translucentFacadeModel = bakery.getBakedModel(TRANSLUCENT_FACADE_MODEL, modelTransform,
spriteGetter);
FacadeBuilder facadeBuilder = new FacadeBuilder(translucentFacadeModel);
// This should normally not be used, but we *have* to provide a particle texture // This should normally not be used, but we *have* to provide a particle texture
// or otherwise damage models will // or otherwise damage models will
@@ -20,6 +20,7 @@ package appeng.client.render.cablebus;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.EnumMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
@@ -29,6 +30,8 @@ import java.util.function.Function;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import com.google.common.collect.ImmutableList;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.BlockRendererDispatcher; import net.minecraft.client.renderer.BlockRendererDispatcher;
@@ -88,6 +91,9 @@ public class FacadeBuilder {
new AxisAlignedBB(0.0, 0.0, 0.0, THIN_THICKNESS, 1.0, 1.0), new AxisAlignedBB(0.0, 0.0, 0.0, THIN_THICKNESS, 1.0, 1.0),
new AxisAlignedBB(1.0 - THIN_THICKNESS, 0.0, 0.0, 1.0, 1.0, 1.0) }; new AxisAlignedBB(1.0 - THIN_THICKNESS, 0.0, 0.0, 1.0, 1.0, 1.0) };
// Pre-rotated transparent facade quads
private final Map<Direction, List<BakedQuad>> transparentFacadeQuads;
private final ThreadLocal<BakedPipeline> pipelines = ThreadLocal.withInitial(() -> BakedPipeline.builder() private final ThreadLocal<BakedPipeline> pipelines = ThreadLocal.withInitial(() -> BakedPipeline.builder()
// Clamper is responsible for clamping the vertex to the bounds specified. // Clamper is responsible for clamping the vertex to the bounds specified.
.addElement("clamper", QuadClamper.FACTORY) .addElement("clamper", QuadClamper.FACTORY)
@@ -104,6 +110,29 @@ public class FacadeBuilder {
); );
private final ThreadLocal<Quad> collectors = ThreadLocal.withInitial(Quad::new); private final ThreadLocal<Quad> collectors = ThreadLocal.withInitial(Quad::new);
public FacadeBuilder() {
// This constructor is used for item models where transparent facades are not a
// concern
this.transparentFacadeQuads = new EnumMap<>(Direction.class);
for (Direction facing : Direction.values()) {
this.transparentFacadeQuads.put(facing, Collections.emptyList());
}
}
public FacadeBuilder(IBakedModel transparentFacadeModel) {
// Pre-rotate the transparent facade model to all possible sides so that we can
// add it quicker later
List<BakedQuad> partQuads = transparentFacadeModel.getQuads(null, null, new Random(), EmptyModelData.INSTANCE);
this.transparentFacadeQuads = new EnumMap<>(Direction.class);
for (Direction facing : Direction.values()) {
// Rotate quads accordingly
QuadRotator rotator = new QuadRotator();
List<BakedQuad> rotated = rotator.rotateQuads(partQuads, facing, Direction.UP);
this.transparentFacadeQuads.put(facing, ImmutableList.copyOf(rotated));
}
}
public void buildFacadeQuads(RenderType layer, CableBusRenderState renderState, Random rand, List<BakedQuad> quads, public void buildFacadeQuads(RenderType layer, CableBusRenderState renderState, Random rand, List<BakedQuad> quads,
Function<ResourceLocation, IBakedModel> modelLookup) { Function<ResourceLocation, IBakedModel> modelLookup) {
BakedPipeline pipeline = this.pipelines.get(); BakedPipeline pipeline = this.pipelines.get();
@@ -130,14 +159,20 @@ public class FacadeBuilder {
Direction.UP)); Direction.UP));
} }
} }
// If we are forcing transparency and this isn't the Translucent layer.
if (transparent && layer != RenderType.getTranslucent()) { // When we're forcing transparent facades, add a "border" model that indicates
// where the facade is,
// But otherwise skip the rest.
if (transparent) {
if (layer != RenderType.getCutout()) {
quads.addAll(transparentFacadeQuads.get(side));
}
continue; continue;
} }
BlockState blockState = facadeRenderState.getSourceBlock(); BlockState blockState = facadeRenderState.getSourceBlock();
// If we aren't forcing transparency let the block decide if it should render. // If we aren't forcing transparency let the block decide if it should render.
if (!transparent && layer != null) { if (layer != null) {
if (!RenderTypeLookup.canRenderInLayer(blockState, layer)) { if (!RenderTypeLookup.canRenderInLayer(blockState, layer)) {
continue; continue;
} }
@@ -198,7 +233,7 @@ public class FacadeBuilder {
List<BakedQuad> modelQuads = new ArrayList<>(); List<BakedQuad> modelQuads = new ArrayList<>();
// If we are forcing transparent facades, fake the render layer, and grab all // If we are forcing transparent facades, fake the render layer, and grab all
// quads. // quads.
if (transparent || layer == null) { if (layer == null) {
for (RenderType forcedLayer : RenderType.getBlockRenderTypes()) { for (RenderType forcedLayer : RenderType.getBlockRenderTypes()) {
// Check if the block renders on the layer we want to force. // Check if the block renders on the layer we want to force.
if (RenderTypeLookup.canRenderInLayer(blockState, forcedLayer)) { if (RenderTypeLookup.canRenderInLayer(blockState, forcedLayer)) {
+36
View File
@@ -177,6 +177,42 @@ public final class AppEng {
return this.registration.advancementTriggers; return this.registration.advancementTriggers;
} }
// @EventHandler
// private void preInit( final FMLPreInitializationEvent event )
// {
// final Stopwatch watch = Stopwatch.createStarted();
// this.configDirectory = new File( event.getModConfigurationDirectory().getPath(), "AppliedEnergistics2" );
//
// final File configFile = new File( this.configDirectory, "AppliedEnergistics2.cfg" );
// final File facadeFile = new File( this.configDirectory, "Facades.cfg" );
// final File versionFile = new File( this.configDirectory, "VersionChecker.cfg" );
// final File recipeFile = new File( this.configDirectory, "CustomRecipes.cfg" );
// final Configuration recipeConfiguration = new Configuration( recipeFile );
//
// AEConfig.init( configFile );
// FacadeConfig.init( facadeFile );
//
// AELog.info( "Pre Initialization ( started )" );
//
//
// for( final IntegrationType type : IntegrationType.values() )
// {
// IntegrationRegistry.INSTANCE.add( type );
// }
//
// this.registration.preInitialize( event );
//
// if( Platform.isClient() )
// {
// AppEng.proxy.preinit();
// }
//
// IntegrationRegistry.INSTANCE.preInit();
//
// AELog.info( "Pre Initialization ( ended after " + watch.elapsed( TimeUnit.MILLISECONDS ) + "ms )" );
//
// }
private void startService(final String serviceName, final Thread thread) { private void startService(final String serviceName, final Thread thread) {
thread.setName(serviceName); thread.setName(serviceName);
thread.setPriority(Thread.MIN_PRIORITY); thread.setPriority(Thread.MIN_PRIORITY);
@@ -55,8 +55,7 @@ import appeng.core.AppEng;
@OnlyIn(Dist.CLIENT) @OnlyIn(Dist.CLIENT)
public class MolecularAssemblerRenderer extends TileEntityRenderer<MolecularAssemblerTileEntity> { public class MolecularAssemblerRenderer extends TileEntityRenderer<MolecularAssemblerTileEntity> {
public static final ResourceLocation LIGHTS_MODEL = new ResourceLocation(AppEng.MOD_ID, public static final ResourceLocation LIGHTS_MODEL = AppEng.makeId("block/molecular_assembler_lights");
"block/molecular_assembler_lights");
private static final RenderType MC_161917_RENDERTYPE_FIX = createRenderType(); private static final RenderType MC_161917_RENDERTYPE_FIX = createRenderType();
+5 -2
View File
@@ -1064,8 +1064,11 @@ public class Platform {
if (items != null && checkFuzzy) { if (items != null && checkFuzzy) {
for (final IAEItemStack x : items) { for (final IAEItemStack x : items) {
final ItemStack sh = x.getDefinition(); final ItemStack sh = x.getDefinition();
if ((Platform.itemComparisons().isEqualItemType(providedTemplate, sh)) if ((Platform.itemComparisons().isEqualItemType(providedTemplate,
&& !ItemStack.areItemsEqual(sh, output)) { sh) /* FIXME || ae_req.sameOre( x ) */ ) && !ItemStack.areItemsEqual(sh, output)) { // Platform.isSameItemType(
// sh,
// providedTemplate
// )
final ItemStack cp = sh.copy(); final ItemStack cp = sh.copy();
cp.setCount(1); cp.setCount(1);
ci.setInventorySlotContents(slot, cp); ci.setInventorySlotContents(slot, cp);
@@ -90,6 +90,14 @@ public class ItemComparisonHelper {
return (percentDamagedOfA > mode.breakPoint) == (percentDamagedOfB > mode.breakPoint); return (percentDamagedOfA > mode.breakPoint) == (percentDamagedOfB > mode.breakPoint);
} }
} }
// FIXME
// final OreReference aOR = OreHelper.INSTANCE.getOre( a ).orElse( null );
// final OreReference bOR = OreHelper.INSTANCE.getOre( b ).orElse( null );
//
// if( OreHelper.INSTANCE.sameOre( aOR, bOR ) )
// {
// return true;
// }
return a.isItemEqual(b); return a.isItemEqual(b);
} }
@@ -1,39 +0,0 @@
{
"textures": {
"0": "appliedenergistics2:part/cable_anchor",
"particle": "appliedenergistics2:part/cable_anchor"
},
"elements": [
{
"name": "Element",
"from": [7.0, 7.0, 1.0],
"to": [9.0, 9.0, 6.0],
"faces": {
"north": {
"texture": "#0",
"uv": [0.0, 0.0, 2.0, 2.0]
},
"east": {
"texture": "#0",
"uv": [0.0, 0.0, 5.0, 2.0]
},
"south": {
"texture": "#0",
"uv": [0.0, 0.0, 2.0, 2.0]
},
"west": {
"texture": "#0",
"uv": [0.0, 0.0, 5.0, 2.0]
},
"up": {
"texture": "#0",
"uv": [0.0, 0.0, 2.0, 5.0]
},
"down": {
"texture": "#0",
"uv": [0.0, 0.0, 2.0, 5.0]
}
}
}
]
}
@@ -0,0 +1,58 @@
{
"textures": {
"facade": "appliedenergistics2:part/translucent_facade"
},
"elements": [
{
"from": [0, 0, 0],
"to": [16, 0.25, 0.25],
"faces": {
"north": { "uv": [0, 15.75, 16, 16], "texture": "#facade" },
"east": { "uv": [15.75, 15.75, 16, 16], "texture": "#facade" },
"south": { "uv": [0, 15.75, 16, 16], "texture": "#facade" },
"west": { "uv": [0, 15.75, 1, 16], "texture": "#facade" },
"up": { "uv": [0, 0, 16, 1], "texture": "#facade" },
"down": { "uv": [0, 15.75, 16, 16], "texture": "#facade" }
}
},
{
"from": [0, 15.75, 0],
"to": [16, 16, 0.25],
"rotation": { "angle": 0, "axis": "y", "origin": [8, 23, 8] },
"faces": {
"north": { "uv": [0, 0, 16, 1], "texture": "#facade" },
"east": { "uv": [15.75, 0, 16, 1], "texture": "#facade" },
"south": { "uv": [0, 0, 16, 1], "texture": "#facade" },
"west": { "uv": [0, 0, 1, 1], "texture": "#facade" },
"up": { "uv": [0, 0, 16, 1], "texture": "#facade" },
"down": { "uv": [0, 15.75, 16, 16], "texture": "#facade" }
}
},
{
"from": [0, 0.25, 0],
"to": [0.25, 15.75, 0.25],
"rotation": { "angle": 0, "axis": "y", "origin": [8, 23, 8] },
"faces": {
"north": { "uv": [15.75, 1, 16, 15.75], "texture": "#facade" },
"east": { "uv": [15.75, 1, 16, 15.75], "texture": "#facade" },
"south": { "uv": [0, 1, 1, 15.75], "texture": "#facade" },
"west": { "uv": [0, 1, 1, 15.75], "texture": "#facade" },
"up": { "uv": [0, 0, 1, 1], "texture": "#facade" },
"down": { "uv": [0, 15.75, 1, 16], "texture": "#facade" }
}
},
{
"from": [15.75, 0.25, 0],
"to": [16, 15.75, 0.25],
"rotation": { "angle": 0, "axis": "y", "origin": [23, 23, 8] },
"faces": {
"north": { "uv": [0, 1, 1, 15.75], "texture": "#facade" },
"east": { "uv": [15.75, 1, 16, 15.75], "texture": "#facade" },
"south": { "uv": [15.75, 1, 16, 15.75], "texture": "#facade" },
"west": { "uv": [0, 1, 1, 15.75], "texture": "#facade" },
"up": { "uv": [15.75, 0, 16, 1], "texture": "#facade" },
"down": { "uv": [15.75, 15.75, 16, 16], "texture": "#facade" }
}
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 126 B