831, doesnt seem impossible
This commit is contained in:
parent
4e03ac893c
commit
e8396dbc33
48 changed files with 328 additions and 704 deletions
|
@ -24,6 +24,7 @@
|
|||
|
||||
package techreborn.client.gui;
|
||||
|
||||
import com.mojang.blaze3d.platform.GlStateManager;
|
||||
import net.minecraft.client.renderer.GlStateManager;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import reborncore.client.gui.builder.GuiBase;
|
||||
|
|
|
@ -24,14 +24,14 @@
|
|||
|
||||
package techreborn.client.gui;
|
||||
|
||||
import net.minecraft.client.gui.ContainerScreen;
|
||||
import net.minecraft.client.renderer.GlStateManager;
|
||||
import com.mojang.blaze3d.platform.GlStateManager;
|
||||
import net.minecraft.client.gui.screen.ingame.AbstractContainerScreen;
|
||||
import net.minecraft.client.resource.language.I18n;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.util.Identifier;
|
||||
import techreborn.tiles.machine.iron.TileIronAlloyFurnace;
|
||||
|
||||
public class GuiAlloyFurnace extends ContainerScreen {
|
||||
public class GuiAlloyFurnace extends AbstractContainerScreen {
|
||||
|
||||
private static final Identifier texture = new Identifier("techreborn",
|
||||
"textures/gui/alloy_furnace.png");
|
||||
|
|
|
@ -24,7 +24,9 @@
|
|||
|
||||
package techreborn.client.gui;
|
||||
|
||||
import com.mojang.blaze3d.platform.GlStateManager;
|
||||
import net.minecraft.client.gui.ContainerScreen;
|
||||
import net.minecraft.client.gui.screen.ingame.AbstractContainerScreen;
|
||||
import net.minecraft.client.gui.widget.ButtonWidget;
|
||||
import net.minecraft.client.renderer.GlStateManager;
|
||||
import net.minecraft.client.resource.language.I18n;
|
||||
|
@ -33,7 +35,7 @@ import net.minecraft.util.Identifier;
|
|||
import reborncore.client.gui.builder.widget.GuiButtonSimple;
|
||||
import techreborn.tiles.machine.tier3.TileChunkLoader;
|
||||
|
||||
public class GuiChunkLoader extends ContainerScreen {
|
||||
public class GuiChunkLoader extends AbstractContainerScreen {
|
||||
|
||||
private static final Identifier texture = new Identifier("techreborn",
|
||||
"textures/gui/industrial_chunkloader.png");
|
||||
|
|
|
@ -25,12 +25,13 @@
|
|||
package techreborn.client.gui;
|
||||
|
||||
import net.minecraft.client.gui.ContainerScreen;
|
||||
import net.minecraft.client.gui.screen.ingame.AbstractContainerScreen;
|
||||
import net.minecraft.client.renderer.GlStateManager;
|
||||
import net.minecraft.client.resource.language.I18n;
|
||||
import net.minecraft.container.Container;
|
||||
import net.minecraft.util.Identifier;
|
||||
|
||||
public class GuiDestructoPack extends ContainerScreen {
|
||||
public class GuiDestructoPack extends AbstractContainerScreen {
|
||||
|
||||
private static final Identifier texture = new Identifier("techreborn",
|
||||
"textures/gui/destructopack.png");
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
|
||||
package techreborn.client.gui;
|
||||
|
||||
import com.mojang.blaze3d.platform.GlStateManager;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.client.renderer.GlStateManager;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
|
||||
package techreborn.client.gui;
|
||||
|
||||
import com.mojang.blaze3d.platform.GlStateManager;
|
||||
import net.minecraft.client.renderer.GlStateManager;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import reborncore.client.gui.builder.GuiBase;
|
||||
|
|
|
@ -1,66 +1,67 @@
|
|||
/*
|
||||
* This file is part of TechReborn, licensed under the MIT License (MIT).
|
||||
*
|
||||
* Copyright (c) 2018 TechReborn
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
package techreborn.client.gui;
|
||||
|
||||
import net.minecraft.client.renderer.GlStateManager;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import reborncore.client.gui.builder.GuiBase;
|
||||
import reborncore.common.powerSystem.PowerSystem;
|
||||
import techreborn.tiles.storage.TileMediumVoltageSU;
|
||||
|
||||
public class GuiMFE extends GuiBase {
|
||||
|
||||
TileMediumVoltageSU mfe;
|
||||
|
||||
public GuiMFE(final PlayerEntity player, final TileMediumVoltageSU mfe) {
|
||||
super(player, mfe, mfe.createContainer(player));
|
||||
this.mfe = mfe;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawBackground(final float f, final int mouseX, final int mouseY) {
|
||||
super.drawBackground(f, mouseX, mouseY);
|
||||
final Layer layer = Layer.BACKGROUND;
|
||||
|
||||
drawSlot(62, 45, layer);
|
||||
drawSlot(98, 45, layer);
|
||||
drawArmourSlots(8, 18, layer);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawForeground(final int mouseX, final int mouseY) {
|
||||
super.drawForeground(mouseX, mouseY);
|
||||
final Layer layer = Layer.FOREGROUND;
|
||||
|
||||
if(GuiBase.slotConfigType == SlotConfigType.NONE){
|
||||
GlStateManager.pushMatrix();
|
||||
GlStateManager.scaled(0.6, 0.6, 1);
|
||||
drawCentredString(PowerSystem.getLocaliszedPowerFormattedNoSuffix((int) mfe.getEnergy()) + "/" + PowerSystem.getLocaliszedPowerFormattedNoSuffix((int) mfe.getMaxPower()) + " " + PowerSystem.getDisplayPower().abbreviation, 35, 0, 58, layer);
|
||||
GlStateManager.popMatrix();
|
||||
}
|
||||
|
||||
builder.drawMultiEnergyBar(this, 81, 28, (int) mfe.getEnergy(), (int) mfe.getMaxPower(), mouseX, mouseY, 0, layer);
|
||||
}
|
||||
}
|
||||
/*
|
||||
* This file is part of TechReborn, licensed under the MIT License (MIT).
|
||||
*
|
||||
* Copyright (c) 2018 TechReborn
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
package techreborn.client.gui;
|
||||
|
||||
import com.mojang.blaze3d.platform.GlStateManager;
|
||||
import net.minecraft.client.renderer.GlStateManager;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import reborncore.client.gui.builder.GuiBase;
|
||||
import reborncore.common.powerSystem.PowerSystem;
|
||||
import techreborn.tiles.storage.TileMediumVoltageSU;
|
||||
|
||||
public class GuiMFE extends GuiBase {
|
||||
|
||||
TileMediumVoltageSU mfe;
|
||||
|
||||
public GuiMFE(final PlayerEntity player, final TileMediumVoltageSU mfe) {
|
||||
super(player, mfe, mfe.createContainer(player));
|
||||
this.mfe = mfe;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawBackground(final float f, final int mouseX, final int mouseY) {
|
||||
super.drawBackground(f, mouseX, mouseY);
|
||||
final Layer layer = Layer.BACKGROUND;
|
||||
|
||||
drawSlot(62, 45, layer);
|
||||
drawSlot(98, 45, layer);
|
||||
drawArmourSlots(8, 18, layer);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawForeground(final int mouseX, final int mouseY) {
|
||||
super.drawForeground(mouseX, mouseY);
|
||||
final Layer layer = Layer.FOREGROUND;
|
||||
|
||||
if(GuiBase.slotConfigType == SlotConfigType.NONE){
|
||||
GlStateManager.pushMatrix();
|
||||
GlStateManager.scaled(0.6, 0.6, 1);
|
||||
drawCentredString(PowerSystem.getLocaliszedPowerFormattedNoSuffix((int) mfe.getEnergy()) + "/" + PowerSystem.getLocaliszedPowerFormattedNoSuffix((int) mfe.getMaxPower()) + " " + PowerSystem.getDisplayPower().abbreviation, 35, 0, 58, layer);
|
||||
GlStateManager.popMatrix();
|
||||
}
|
||||
|
||||
builder.drawMultiEnergyBar(this, 81, 28, (int) mfe.getEnergy(), (int) mfe.getMaxPower(), mouseX, mouseY, 0, layer);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
|
||||
package techreborn.client.gui;
|
||||
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
import reborncore.client.gui.builder.widget.GuiButtonExtended;
|
||||
import reborncore.common.network.NetworkManager;
|
||||
|
||||
|
|
|
@ -1,221 +0,0 @@
|
|||
/*
|
||||
* This file is part of TechReborn, licensed under the MIT License (MIT).
|
||||
*
|
||||
* Copyright (c) 2018 TechReborn
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
package techreborn.client.render;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import net.minecraft.client.render.VertexFormat;
|
||||
import net.minecraft.client.render.model.BakedModel;
|
||||
import net.minecraft.client.render.model.BakedQuad;
|
||||
import net.minecraft.client.render.model.UnbakedModel;
|
||||
import net.minecraft.client.render.model.json.ModelItemPropertyOverrideList;
|
||||
import net.minecraft.client.render.model.json.ModelTransformation;
|
||||
import net.minecraft.client.renderer.model.*;
|
||||
import net.minecraft.client.texture.Sprite;
|
||||
import net.minecraft.client.util.ModelIdentifier;
|
||||
import net.minecraft.resource.ResourceManager;
|
||||
import net.minecraft.util.Identifier;
|
||||
import net.minecraft.util.math.Direction;
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
|
||||
import java.awt.*;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
|
||||
//TODO 1.13 very broken, look at ModelDynBucket for help porting this fully
|
||||
@Environment(EnvType.CLIENT)
|
||||
public class ModelDynamicCell implements UnbakedModel {
|
||||
|
||||
public static final ModelDynamicCell MODEL = new ModelDynamicCell(
|
||||
new Identifier("techreborn:items/cell_cover"),
|
||||
new Identifier("techreborn:items/cell_empty")
|
||||
);
|
||||
|
||||
public static final ModelIdentifier MODEL_LOCATION = new ModelIdentifier(new Identifier("techreborn", "dynamic_cell"), "default");
|
||||
|
||||
private static final float NORTH_Z_FLUID = 7.6f / 16f;
|
||||
private static final float SOUTH_Z_FLUID = 8.4f / 16f;
|
||||
|
||||
public static void init() {
|
||||
// ModelLoader.setCustomMeshDefinition(TRContent.CELL, stack -> MODEL_LOCATION);
|
||||
// ModelBakery.registerItemVariants(TRContent.CELL, MODEL_LOCATION);
|
||||
ModelLoaderRegistry.registerLoader(new DynamicCellLoader());
|
||||
}
|
||||
|
||||
private final Identifier baseTexture;
|
||||
private final Identifier emptyTexture;
|
||||
private final Fluid fluid;
|
||||
|
||||
public ModelDynamicCell(Identifier baseTexture, Identifier emptyTexture) {
|
||||
this(baseTexture, emptyTexture, null);
|
||||
}
|
||||
|
||||
public ModelDynamicCell(Identifier baseTexture, Identifier emptyTexture, Fluid fluid) {
|
||||
this.baseTexture = baseTexture;
|
||||
this.emptyTexture = emptyTexture;
|
||||
this.fluid = fluid;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Identifier> getModelDependencies() {
|
||||
return ImmutableList.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Identifier> getTextureDependencies(Function<Identifier, UnbakedModel> modelGetter, Set<String> missingTextureErrors) {
|
||||
return ImmutableList.of(baseTexture, emptyTexture);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BakedModel bake(Function<Identifier, UnbakedModel> modelGetter, Function<Identifier, Sprite> spriteGetter, IModelState state, boolean uvlock, VertexFormat format) {
|
||||
|
||||
ImmutableMap<ModelTransformation.Type, TRSRTransformation> transformMap = PerspectiveMapWrapper.getTransforms(state);
|
||||
TRSRTransformation transform = state.apply(Optional.empty()).orElse(TRSRTransformation.identity());
|
||||
|
||||
ImmutableList.Builder<BakedQuad> builder = ImmutableList.builder();
|
||||
builder.addAll(new ItemLayerModel(ImmutableList.of(baseTexture)).bake(modelGetter, spriteGetter, state, uvlock, format).getQuads(null, null, new Random()));
|
||||
|
||||
Identifier sprite = fluid != null ? fluid.getStill() : emptyTexture;
|
||||
int color = fluid != null ? fluid.getColor() : Color.WHITE.getRGB();
|
||||
Sprite fluidSprite = spriteGetter.apply(sprite);
|
||||
if (fluid != null) {
|
||||
if (fluidSprite != null) {
|
||||
builder.add(ItemTextureQuadConverter.genQuad(format, transform, 5, 2, 11, 14, NORTH_Z_FLUID, fluidSprite, Direction.NORTH, color, -1));
|
||||
builder.add(ItemTextureQuadConverter.genQuad(format, transform, 5, 2, 11, 14, SOUTH_Z_FLUID, fluidSprite, Direction.SOUTH, color, -1));
|
||||
}
|
||||
}
|
||||
|
||||
return new BakedDynamicCell(builder.build(), this, spriteGetter.apply(baseTexture), format, transformMap);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public IModelState getDefaultState() {
|
||||
return TRSRTransformation.identity();
|
||||
}
|
||||
|
||||
public static class DynamicCellLoader implements ICustomModelLoader {
|
||||
|
||||
@Override
|
||||
public boolean accepts(Identifier modelLocation) {
|
||||
return modelLocation.getNamespace().equals("techreborn") && modelLocation.getPath().contains("dynamic_cell");
|
||||
}
|
||||
|
||||
@Override
|
||||
public UnbakedModel loadModel(Identifier modelLocation) {
|
||||
return MODEL;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResourceManagerReload(ResourceManager resourceManager) {}
|
||||
|
||||
}
|
||||
|
||||
public static class BakedDynamicCell extends BakedItemModel {
|
||||
|
||||
private final List<BakedQuad> quads;
|
||||
private final ModelDynamicCell parent;
|
||||
private final Sprite particle;
|
||||
private final VertexFormat format;
|
||||
private final ImmutableMap<ModelTransformation.Type, TRSRTransformation> transformMap;
|
||||
|
||||
public BakedDynamicCell(ImmutableList<BakedQuad> quads,
|
||||
ModelDynamicCell parent,
|
||||
Sprite particle,
|
||||
VertexFormat format,
|
||||
ImmutableMap<ModelTransformation.Type, TRSRTransformation> transformMap) {
|
||||
super(quads, particle, transformMap, null /* TODO fix this */);
|
||||
this.transformMap = transformMap;
|
||||
this.quads = quads;
|
||||
this.parent = parent;
|
||||
this.particle = particle;
|
||||
this.format = format;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAmbientOcclusion() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isGui3d() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isBuiltInRenderer() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Sprite getParticleTexture() {
|
||||
return particle;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ModelTransformation getItemCameraTransforms() {
|
||||
return ModelHelper.DEFAULT_ITEM_TRANSFORMS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ModelItemPropertyOverrideList getOverrides() {
|
||||
return OVERRIDES;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static final OverrideHandler OVERRIDES = new OverrideHandler();
|
||||
|
||||
public static class OverrideHandler extends ModelItemPropertyOverrideList {
|
||||
|
||||
private final HashMap<String, BakedModel> modelCache = new HashMap<>();
|
||||
|
||||
// private final Function<ResourceLocation, TextureAtlasSprite> textureGetter = location ->
|
||||
// Minecraft.getInstance().getTextureMapBlocks().getAtlasSprite(location.toString());
|
||||
|
||||
// private OverrideHandler() {
|
||||
// super(ImmutableList.of());
|
||||
// }
|
||||
|
||||
// @Override
|
||||
// public IBakedModel handleItemState(IBakedModel originalModel, ItemStack stack, World world, EntityLivingBase entity) {
|
||||
// FluidStack fluidStack = DynamicCell.getFluidHandler(stack).getFluid();
|
||||
// if (fluidStack == null) {
|
||||
// //return default bucket
|
||||
// return originalModel;
|
||||
// }
|
||||
// String name = fluidStack.getFluid().getName();
|
||||
// if (!modelCache.containsKey(name)) {
|
||||
// BakedDynamicCell bakedCell = (BakedDynamicCell) originalModel;
|
||||
// ModelDynamicCell model = new ModelDynamicCell(bakedCell.parent.baseTexture, bakedCell.parent.emptyTexture, fluidStack.getFluid());
|
||||
// modelCache.put(name, model.bake(new SimpleModelState(bakedCell.transformMap), bakedCell.format, textureGetter));
|
||||
// }
|
||||
// return modelCache.get(name);
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue