Skip to content

Commit 2282a28

Browse files
davenonymousthraaawn
authored andcommitted
Initial work on Compact Sky worldtype
1 parent a14a713 commit 2282a28

26 files changed

+968
-151
lines changed

src/main/java/org/dave/compactmachines3/CompactMachines3.java

Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,39 @@
11
package org.dave.compactmachines3;
22

3+
import net.minecraft.util.math.BlockPos;
4+
import net.minecraft.world.WorldServer;
5+
import net.minecraftforge.common.DimensionManager;
36
import net.minecraftforge.common.ForgeChunkManager;
47
import net.minecraftforge.common.MinecraftForge;
8+
import net.minecraftforge.fml.common.Loader;
59
import net.minecraftforge.fml.common.Mod;
610
import net.minecraftforge.fml.common.Mod.EventHandler;
711
import net.minecraftforge.fml.common.SidedProxy;
8-
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
9-
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
10-
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
11-
import net.minecraftforge.fml.common.event.FMLServerStartingEvent;
12-
import org.dave.compactmachines3.capability.PlayerShrinkingCapability;
12+
import net.minecraftforge.fml.common.event.*;
1313
import org.dave.compactmachines3.command.CommandCompactMachines3;
14+
import org.dave.compactmachines3.compat.YUNoMakeGoodMap;
1415
import org.dave.compactmachines3.gui.GuiHandler;
1516
import org.dave.compactmachines3.integration.CapabilityNullHandlerRegistry;
1617
import org.dave.compactmachines3.miniaturization.MultiblockRecipes;
17-
import org.dave.compactmachines3.misc.CapabilityEventHandler;
1818
import org.dave.compactmachines3.misc.ConfigurationHandler;
1919
import org.dave.compactmachines3.misc.PlayerEventHandler;
2020
import org.dave.compactmachines3.misc.RenderTickCounter;
2121
import org.dave.compactmachines3.network.PackageHandler;
2222
import org.dave.compactmachines3.proxy.CommonProxy;
2323
import org.dave.compactmachines3.render.BakeryHandler;
2424
import org.dave.compactmachines3.schema.SchemaRegistry;
25+
import org.dave.compactmachines3.skyworld.SkyChunkGenerator;
26+
import org.dave.compactmachines3.skyworld.SkyDimension;
27+
import org.dave.compactmachines3.skyworld.SkyWorldEvents;
28+
import org.dave.compactmachines3.skyworld.SkyWorldSavedData;
2529
import org.dave.compactmachines3.utility.AnnotatedInstanceUtil;
2630
import org.dave.compactmachines3.utility.Logz;
2731
import org.dave.compactmachines3.world.ChunkLoadingMachines;
2832
import org.dave.compactmachines3.world.WorldSavedDataMachines;
2933
import org.dave.compactmachines3.world.data.provider.ExtraTileDataProviderRegistry;
3034
import org.dave.compactmachines3.world.tools.DimensionTools;
3135

32-
@Mod(modid = CompactMachines3.MODID, version = CompactMachines3.VERSION, acceptedMinecraftVersions = "[1.12,1.13)", dependencies = "after:refinedstorage")
36+
@Mod(modid = CompactMachines3.MODID, version = CompactMachines3.VERSION, acceptedMinecraftVersions = "[1.12,1.13)", dependencies = "after:refinedstorage;after:yunomakegoodmap")
3337
public class CompactMachines3
3438
{
3539
public static final String MODID = "compactmachines3";
@@ -49,10 +53,11 @@ public void preInit(FMLPreInitializationEvent event) {
4953
MinecraftForge.EVENT_BUS.register(new ConfigurationHandler());
5054

5155
MinecraftForge.EVENT_BUS.register(PlayerEventHandler.class);
56+
MinecraftForge.EVENT_BUS.register(SkyWorldSavedData.class);
5257
MinecraftForge.EVENT_BUS.register(WorldSavedDataMachines.class);
5358
MinecraftForge.EVENT_BUS.register(RenderTickCounter.class);
5459
MinecraftForge.EVENT_BUS.register(BakeryHandler.class);
55-
MinecraftForge.EVENT_BUS.register(CapabilityEventHandler.class);
60+
MinecraftForge.EVENT_BUS.register(SkyWorldEvents.class);
5661

5762
// Insist on keeping an already registered dimension by registering in pre-registerDimension.
5863
DimensionTools.registerDimension();
@@ -70,13 +75,18 @@ public void init(FMLInitializationEvent event) {
7075

7176
proxy.init(event);
7277

78+
SkyDimension.init();
79+
7380
MultiblockRecipes.init();
7481
SchemaRegistry.init();
82+
83+
if(Loader.isModLoaded("yunomakegoodmap")) {
84+
YUNoMakeGoodMap.init();
85+
}
7586
}
7687

7788
@EventHandler
7889
public void postInit(FMLPostInitializationEvent event) {
79-
PlayerShrinkingCapability.init();
8090
CapabilityNullHandlerRegistry.registerNullHandlers();
8191
ExtraTileDataProviderRegistry.registerExtraTileDataProviders();
8292

@@ -85,6 +95,15 @@ public void postInit(FMLPostInitializationEvent event) {
8595
proxy.postInit(event);
8696
}
8797

98+
@EventHandler
99+
public void onServerAboutToStart(FMLServerAboutToStartEvent event) {
100+
for(WorldServer world : event.getServer().worlds) {
101+
if(world.getChunkProvider().chunkGenerator instanceof SkyChunkGenerator) {
102+
world.setSpawnPoint(new BlockPos(0,0,0));
103+
}
104+
}
105+
}
106+
88107
@Mod.EventHandler
89108
public void onServerStarting(FMLServerStartingEvent event) {
90109
event.registerServerCommand(new CommandCompactMachines3());

src/main/java/org/dave/compactmachines3/api/IPlayerShrinkingCapability.java

Lines changed: 0 additions & 4 deletions
This file was deleted.

src/main/java/org/dave/compactmachines3/block/BlockMachine.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
import net.minecraftforge.fml.relauncher.Side;
3434
import net.minecraftforge.fml.relauncher.SideOnly;
3535
import org.dave.compactmachines3.CompactMachines3;
36-
import org.dave.compactmachines3.capability.PlayerShrinkingCapability;
3736
import org.dave.compactmachines3.compat.ITopInfoProvider;
3837
import org.dave.compactmachines3.init.Blockss;
3938
import org.dave.compactmachines3.misc.CreativeTabCompactMachines3;
@@ -44,6 +43,7 @@
4443
import org.dave.compactmachines3.tile.TileEntityMachine;
4544
import org.dave.compactmachines3.tile.TileEntityRedstoneTunnel;
4645
import org.dave.compactmachines3.tile.TileEntityTunnel;
46+
import org.dave.compactmachines3.utility.ShrinkingDeviceUtils;
4747
import org.dave.compactmachines3.world.ChunkLoadingMachines;
4848
import org.dave.compactmachines3.world.WorldSavedDataMachines;
4949
import org.dave.compactmachines3.world.data.RedstoneTunnelData;
@@ -267,6 +267,7 @@ public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, Entity
267267
return;
268268
}
269269

270+
// TODO: Allow storing of schemas in machines
270271
if(stack.hasTagCompound()) {
271272
if(stack.getTagCompound().hasKey("coords")) {
272273
int coords = stack.getTagCompound().getInteger("coords");
@@ -313,7 +314,7 @@ public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, En
313314

314315
TileEntityMachine machine = (TileEntityMachine)world.getTileEntity(pos);
315316
ItemStack playerStack = player.getHeldItemMainhand();
316-
if(PlayerShrinkingCapability.isShrinkingDevice(playerStack)) {
317+
if(ShrinkingDeviceUtils.isShrinkingDevice(playerStack)) {
317318
TeleportationTools.tryToEnterMachine(player, machine);
318319
return true;
319320
}

src/main/java/org/dave/compactmachines3/capability/PlayerShrinkingCapability.java

Lines changed: 0 additions & 71 deletions
This file was deleted.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package org.dave.compactmachines3.compat;
2+
3+
import net.minecraft.world.DimensionType;
4+
import net.minecraftforge.common.DimensionManager;
5+
import org.dave.compactmachines3.skyworld.SkyWorldProviderNether;
6+
import org.dave.compactmachines3.skyworld.SkyWorldProviderVoid;
7+
8+
public class YUNoMakeGoodMap {
9+
public static void init() {
10+
DimensionManager.unregisterDimension(-1);
11+
DimensionManager.unregisterDimension(1);
12+
13+
DimensionManager.registerDimension(-1, DimensionType.register("Nether (CompactSky)", "_nether", 1, SkyWorldProviderNether.class, false));
14+
DimensionManager.registerDimension(1, DimensionType.register("The End (CompactSky)", "_end", 1, SkyWorldProviderVoid.class, false));
15+
}
16+
}

src/main/java/org/dave/compactmachines3/gui/machine/GuiMachine.java

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import net.minecraftforge.client.ForgeHooksClient;
2424
import net.minecraftforge.fml.client.config.GuiCheckBox;
2525
import org.dave.compactmachines3.CompactMachines3;
26-
import org.dave.compactmachines3.capability.PlayerShrinkingCapability;
2726
import org.dave.compactmachines3.gui.GUIHelper;
2827
import org.dave.compactmachines3.init.Blockss;
2928
import org.dave.compactmachines3.init.Itemss;
@@ -34,6 +33,7 @@
3433
import org.dave.compactmachines3.network.PackageHandler;
3534
import org.dave.compactmachines3.utility.ChunkUtils;
3635
import org.dave.compactmachines3.utility.Logz;
36+
import org.dave.compactmachines3.utility.ShrinkingDeviceUtils;
3737
import org.lwjgl.input.Mouse;
3838
import org.lwjgl.opengl.GL11;
3939

@@ -42,7 +42,6 @@
4242
import java.util.List;
4343

4444
public class GuiMachine extends GuiContainer {
45-
protected ResourceLocation bgImage;
4645
protected ResourceLocation tabIcons;
4746

4847
private int windowWidth = 200;
@@ -78,7 +77,6 @@ private boolean shouldShowTabs() {
7877
public void initGui() {
7978
super.initGui();
8079

81-
this.bgImage = new ResourceLocation("minecraft", "textures/gui/container/crafting_table.png");
8280
this.tabIcons = new ResourceLocation(CompactMachines3.MODID, "textures/gui/tabicons.png");
8381

8482
int offsetX = (int)((this.width - this.windowWidth) / 2.0f);
@@ -158,7 +156,7 @@ public void drawScreen(int mouseX, int mouseY, float partialTicks) {
158156
}
159157

160158
if(GuiMachineData.chunk != null && activeTab == 0) {
161-
renderChunk();
159+
renderChunk(partialTicks);
162160

163161
drawOwner(partialTicks, mouseX, mouseY);
164162
drawEnterButton(partialTicks, mouseX, mouseY);
@@ -172,7 +170,7 @@ public void drawScreen(int mouseX, int mouseY, float partialTicks) {
172170
}
173171

174172
private void drawEnterButton(float partialTicks, int mouseX, int mouseY) {
175-
if(!PlayerShrinkingCapability.hasShrinkingDeviceInInventory(mc.player)) {
173+
if(!ShrinkingDeviceUtils.hasShrinkingDeviceInInventory(mc.player)) {
176174
return;
177175
}
178176

@@ -229,7 +227,7 @@ protected void drawTabs(float partialTicks, int mouseX, int mouseY) {
229227
float offsetY = (this.height - this.windowHeight) / 2.0f;
230228

231229
GlStateManager.pushMatrix();
232-
GlStateManager.translate(offsetX-28, offsetY, 0);
230+
GlStateManager.translate(offsetX-28, offsetY-1, 0);
233231

234232
mc.getTextureManager().bindTexture(tabIcons);
235233

@@ -266,39 +264,42 @@ protected void drawTabs(float partialTicks, int mouseX, int mouseY) {
266264

267265
protected void drawWindow(float partialTicks, int mouseX, int mouseY) {
268266
GlStateManager.color(1f, 1f, 1f, 1f);
269-
mc.renderEngine.bindTexture(bgImage);
267+
mc.renderEngine.bindTexture(tabIcons);
270268

271269
float offsetX = (this.width - this.windowWidth) / 2.0f;
272270
float offsetY = (this.height - this.windowHeight) / 2.0f;
273271

274272
GlStateManager.pushMatrix();
275273
GlStateManager.translate(offsetX, offsetY, 0);
276274

275+
int texOffsetY = 12;
276+
int texOffsetX = 64;
277+
277278
// Top Left corner
278-
drawTexturedModalRect(0, 0, 0, 0, 4, 4);
279+
drawTexturedModalRect(0, 0, texOffsetX, texOffsetY, 4, 4);
279280

280281
// Top right corner
281-
drawTexturedModalRect(this.windowWidth - 4, 0, 172, 0, 4, 4);
282+
drawTexturedModalRect(this.windowWidth - 4, 0, texOffsetX + 4 + 64, texOffsetY, 4, 4);
282283

283284
// Bottom Left corner
284-
drawTexturedModalRect(0, this.windowHeight - 4, 0, 162, 4, 4);
285+
drawTexturedModalRect(0, this.windowHeight - 4, texOffsetX, texOffsetY + 4 + 64, 4, 4);
285286

286287
// Bottom Right corner
287-
drawTexturedModalRect(this.windowWidth - 4, this.windowHeight - 4, 172, 162, 4, 4);
288+
drawTexturedModalRect(this.windowWidth - 4, this.windowHeight - 4, texOffsetX + 4 + 64, texOffsetY + 4 + 64, 4, 4);
288289

289290
// Top edge
290-
GUIHelper.drawStretchedTexture(4, 0, this.windowWidth - 8, 4, 4, 0, 4, 4);
291+
GUIHelper.drawStretchedTexture(4, 0, this.windowWidth - 8, 4, texOffsetX + 4, texOffsetY, 64, 4);
291292

292293
// Bottom edge
293-
GUIHelper.drawStretchedTexture(4, this.windowHeight - 4, this.windowWidth - 8, 4, 4, 162, 4, 4);
294+
GUIHelper.drawStretchedTexture(4, this.windowHeight - 4, this.windowWidth - 8, 4, texOffsetX + 4, texOffsetY + 4 + 64, 64, 4);
294295

295296
// Left edge
296-
GUIHelper.drawStretchedTexture(0, 4, 4, this.windowHeight - 8, 0, 4, 4, 4);
297+
GUIHelper.drawStretchedTexture(0, 4, 4, this.windowHeight - 8, texOffsetX, texOffsetY+4, 4, 64);
297298

298299
// Right edge
299-
GUIHelper.drawStretchedTexture(this.windowWidth - 4, 4, 4, this.windowHeight - 8, 172, 4, 4, 4);
300+
GUIHelper.drawStretchedTexture(this.windowWidth - 4, 4, 4, this.windowHeight - 8, texOffsetX + 64 + 4, texOffsetY + 3, 4, 64);
300301

301-
GUIHelper.drawStretchedTexture(4, 4, this.windowWidth - 8, this.windowHeight - 8, 4, 4, 1, 1);
302+
GUIHelper.drawStretchedTexture(4, 4, this.windowWidth - 8, this.windowHeight - 8, texOffsetX + 4, texOffsetY+4, 64, 64);
302303

303304
GlStateManager.popMatrix();
304305
}
@@ -374,7 +375,7 @@ protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOEx
374375
}
375376
} else if(activeTab == 0 && mouseButton == 0) {
376377
boolean mousePressed = this.guiEnterButton.mousePressed(this.mc, mouseX, mouseY);
377-
boolean hasDevice = PlayerShrinkingCapability.hasShrinkingDeviceInInventory(mc.player);
378+
boolean hasDevice = ShrinkingDeviceUtils.hasShrinkingDeviceInInventory(mc.player);
378379
boolean validCoords = GuiMachineData.coords != -1;
379380
boolean isAllowedToEnter = GuiMachineData.isAllowedToEnter(mc.player);
380381

@@ -444,7 +445,7 @@ public void handleMouseInput() throws IOException {
444445
}
445446
}
446447

447-
public void renderChunk() {
448+
public void renderChunk(float partialTicks) {
448449
// Init GlStateManager
449450
TextureManager textureManager = Minecraft.getMinecraft().getTextureManager();
450451
textureManager.bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
@@ -492,6 +493,13 @@ public void renderChunk() {
492493
GlStateManager.rotate(180.0f, 0.0f, 0.0f, -1.0f);
493494

494495
// Auto rotate
496+
/*
497+
int rotationTime = 120; // 6 seconds to rotate one time
498+
int rotationTicks = (int) (Minecraft.getMinecraft().world.getWorldTime() % rotationTime * 8);
499+
500+
float percent = ((rotationTicks / 8.0f) + partialTicks) / rotationTime;
501+
*/
502+
495503
GlStateManager.rotate(rotateX == 0.0d ? RenderTickCounter.renderTicks * 45.0f / 128.0f : (float)rotateX, 0.0f, 1.0f, 0.0f);
496504

497505
// Get rid of the wall+floor

0 commit comments

Comments
 (0)