Skip to content

Commit

Permalink
Start Implementation of Texture System
Browse files Browse the repository at this point in the history
  • Loading branch information
BlueWeabo committed Jun 10, 2024
1 parent 4446ecc commit 72fd3a2
Show file tree
Hide file tree
Showing 18 changed files with 325 additions and 34 deletions.
9 changes: 9 additions & 0 deletions src/main/java/com/blueweabo/mutecore/ClientProxy.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
package com.blueweabo.mutecore;

import com.blueweabo.mutecore.client.MultiTileBlockRenderer;

import cpw.mods.fml.common.event.FMLInitializationEvent;

public class ClientProxy extends CommonProxy {

@Override
public void init(FMLInitializationEvent event) {
super.init(event);
new MultiTileBlockRenderer();
}
}
27 changes: 13 additions & 14 deletions src/main/java/com/blueweabo/mutecore/MuTECore.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import com.blueweabo.mutecore.test.TestRegistry;

import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.SidedProxy;
Expand All @@ -13,33 +15,30 @@
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.event.FMLServerStartingEvent;
import dev.dominion.ecs.api.Dominion;
import dev.dominion.ecs.api.Scheduler;

@Mod(
modid = MuTECore.MODID,
version = Tags.VERSION,
name = "MuTECore",
acceptedMinecraftVersions = "[1.7.10]",
dependencies = MuTECore.DEPENDENCIES)

@Mod(modid = MuTECore.MODID, version = Tags.VERSION, name = "MuTECore", acceptedMinecraftVersions = "[1.7.10]", dependencies = MuTECore.DEPENDENCIES)
public class MuTECore {

public static final String MODID = "mutecore";
public static final Logger LOG = LogManager.getLogger(MODID);
public static final String DEPENDENCIES = "required-after:gtnhlib@[0.2.7,);" + "required-after:modularui;"
+ "after:appliedenegistics2";
+ "after:appliedenegistics2";
@SidedProxy(clientSide = "com.blueweabo.mutecore.ClientProxy", serverSide = "com.blueweabo.mutecore.CommonProxy")
public static CommonProxy proxy;
public static Dominion ENGINE;
public static Scheduler SYSTEMS;
public static boolean ENABLE_TESTS;

public MuTECore() {}
public MuTECore() {
}

@Mod.EventHandler
public void preInit(FMLPreInitializationEvent event) {
ENGINE = Dominion.create("MuTE");
SYSTEMS = ENGINE.createScheduler();
ENABLE_TESTS = (boolean) Launch.blackboard.get("fml.deobfuscatedEnvironment");
if (ENABLE_TESTS) {
new TestRegistry().run();
SystemRegistrator.registerProcessingSystem();
}
proxy.preInit(event);
}

Expand All @@ -52,8 +51,8 @@ public void init(FMLInitializationEvent event) {
public void postInit(FMLPostInitializationEvent event) {
proxy.postInit(event);
FMLCommonHandler.instance()
.bus()
.register(new Runner());
.bus()
.register(new SystemRegistrator());
}

@Mod.EventHandler
Expand Down
12 changes: 0 additions & 12 deletions src/main/java/com/blueweabo/mutecore/Runner.java

This file was deleted.

37 changes: 37 additions & 0 deletions src/main/java/com/blueweabo/mutecore/SystemRegistrator.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package com.blueweabo.mutecore;

import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.gameevent.TickEvent;
import dev.dominion.ecs.api.Scheduler;

public class SystemRegistrator {

private static final Scheduler SYSTEMS = MuTECore.ENGINE.createScheduler();

/**
* Registers a processing system, which run in parallel with all other processing systems.
*/
public static void registerProcessingSystem() {
SYSTEMS.schedule(() -> {});
}

/**
* Registers a GUI system, which will run in parallel with all other GUI systems
*/
public static void registerGUISystem() {

}

/**
* Registers a system, which will be running after processing systems have ran.
* Useful if one needs to generate their own system
*/
public static void registerOtherSystem() {

}

@SubscribeEvent
public void onServerTick(TickEvent.ServerTickEvent event) {
SYSTEMS.tick();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,12 @@
import java.util.ArrayList;
import java.util.List;

import org.jetbrains.annotations.ApiStatus.Internal;

import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
Expand All @@ -18,6 +21,7 @@

import com.blueweabo.mutecore.api.registry.MultiTileEntityRegistry;
import com.blueweabo.mutecore.api.tile.IMultiTileEntity;
import com.blueweabo.mutecore.client.MultiTileBlockRenderer;

public class MultiTileEntityBlock extends BlockContainer {

Expand Down Expand Up @@ -88,4 +92,15 @@ public void onBlockAdded(World worldIn, int x, int y, int z) {
public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune) {
return super.getDrops(world, x, y, z, metadata, fortune);
}

@Internal
public void setRegistry(MultiTileEntityRegistry registry) {
this.registry = registry;
}

@Override
public int getRenderType() {
return MultiTileBlockRenderer.INSTANCE.getRenderId();
}

}
21 changes: 21 additions & 0 deletions src/main/java/com/blueweabo/mutecore/api/data/BaseTexture.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.blueweabo.mutecore.api.data;

import net.minecraft.util.IIcon;

public class BaseTexture {

private IIcon texture;

public BaseTexture(IIcon texture) {
this.texture = texture;
}

public IIcon getTexture() {
return texture;
}

public void setTexture(IIcon texture) {
this.texture = texture;
}

}
38 changes: 38 additions & 0 deletions src/main/java/com/blueweabo/mutecore/api/data/Coordinates.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package com.blueweabo.mutecore.api.data;

public class Coordinates {

private int x;
private int y;
private int z;

public Coordinates(int x, int y, int z) {
this.x = x;
this.y = y;
this.z = z;
}

public int getX() {
return x;
}

public void setX(int x) {
this.x = x;
}

public int getY() {
return y;
}

public void setY(int y) {
this.y = y;
}

public int getZ() {
return z;
}

public void setZ(int z) {
this.z = z;
}
}
20 changes: 20 additions & 0 deletions src/main/java/com/blueweabo/mutecore/api/data/Direction.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.blueweabo.mutecore.api.data;

import net.minecraftforge.common.util.ForgeDirection;

public class Direction {

private ForgeDirection direction;

public ForgeDirection getDirection() {
return direction;
}

public void setDirection(ForgeDirection direction) {
this.direction = direction;
}

public Direction(ForgeDirection direction) {
this.direction = direction;
}
}
33 changes: 33 additions & 0 deletions src/main/java/com/blueweabo/mutecore/api/data/OverlayTextures.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package com.blueweabo.mutecore.api.data;

import com.blueweabo.mutecore.api.enums.TexturePosition;

import net.minecraft.util.IIcon;

public class OverlayTextures {

TexturePosition position;
IIcon[] textures;

public OverlayTextures(TexturePosition position, IIcon... textures) {
this.position = position;
this.textures = textures;
}

public TexturePosition getPosition() {
return position;
}

public void setPosition(TexturePosition position) {
this.position = position;
}

public IIcon[] getTextures() {
return textures;
}

public void setTextures(IIcon[] textures) {
this.textures = textures;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.blueweabo.mutecore.api.enums;

public enum TexturePosition {
BOTTOM,
TOP,
BACK,
FRONT,
RIGHT,
LEFT,
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,10 @@ public MultiTileContainer(MultiTileEntityRegistry reg, long id, Class<? extends
originalEntity = MuTECore.ENGINE.createEntity(new FakeEntity());
}

public MultiTileContainer addComponent(Object component) {
originalEntity.add(component);
public MultiTileContainer addComponents(Object... components) {
for (Object component : components) {
originalEntity.add(component);
}
return this;
}

Expand Down Expand Up @@ -51,6 +53,29 @@ public Class<? extends MultiTileEntity> getTileEntityClass() {
return clazz;
}

@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + (int) (id ^ (id >>> 32));
return result;
}

@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
MultiTileContainer other = (MultiTileContainer) obj;
if (id != other.id)
return false;
return true;
}


private static class FakeEntity {
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,16 @@

import it.unimi.dsi.fastutil.longs.Long2ObjectMap;
import it.unimi.dsi.fastutil.longs.Long2ObjectMaps;
import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap;

public class MultiTileEntityRegistry {

private final MultiTileEntityBlock block;
private final Long2ObjectMap<MultiTileContainer> map = Long2ObjectMaps.emptyMap();
private final Long2ObjectMap<MultiTileContainer> map = new Long2ObjectOpenHashMap<>();

public MultiTileEntityRegistry(MultiTileEntityBlock block) {
this.block = block;
block.setRegistry(this);
}

public MultiTileContainer create(long id, Class<? extends MultiTileEntity> clazz) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.blueweabo.mutecore.api.registry;

import java.util.List;

import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraftforge.client.event.TextureStitchEvent;

public class TextureRegistry {

private static List<?> thing;

@SubscribeEvent
public void registerIcon(TextureStitchEvent.Pre event) {
TextureMap map = event.map;

if (map.getTextureType() == 0) {

}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import javax.annotation.Nonnull;

import org.jetbrains.annotations.ApiStatus.Internal;

import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
Expand Down Expand Up @@ -69,4 +71,9 @@ public boolean onBlockActivated(@Nonnull EntityPlayer player, @Nonnull ForgeDire
return false;
}

@Internal
public Entity getEntity() {
return entity;
}

}
Loading

0 comments on commit 72fd3a2

Please sign in to comment.