private DisplayInteger[] getListAndRender(RenderData data, Fluid fluid, World world) { if (cachedCenterFluids.containsKey(data) && cachedCenterFluids.get(data).containsKey(fluid)) { return cachedCenterFluids.get(data).get(fluid); } Model3D toReturn = new Model3D(); toReturn.baseBlock = Blocks.water; toReturn.setTexture(fluid.getIcon()); final int stages = getStages(data.height); DisplayInteger[] displays = new DisplayInteger[stages]; if (cachedCenterFluids.containsKey(data)) { cachedCenterFluids.get(data).put(fluid, displays); } else { HashMap<Fluid, DisplayInteger[]> map = new HashMap<Fluid, DisplayInteger[]>(); map.put(fluid, displays); cachedCenterFluids.put(data, map); } for (int i = 0; i < stages; i++) { displays[i] = DisplayInteger.createAndStart(); if (fluid.getIcon() != null) { toReturn.minX = 0 + .01; toReturn.minY = 0 + .01; toReturn.minZ = 0 + .01; toReturn.maxX = data.length - .01; toReturn.maxY = ((float) i / (float) stages) * (data.height - 2) - .01; toReturn.maxZ = data.width - .01; MekanismRenderer.renderObject(toReturn); } GL11.glEndList(); } return displays; }
private DisplayInteger getValveDisplay(ValveRenderData data, Fluid fluid, World world) { if (cachedValveFluids.containsKey(data) && cachedValveFluids.get(data).containsKey(fluid)) { return cachedValveFluids.get(data).get(fluid); } Model3D toReturn = new Model3D(); toReturn.baseBlock = Blocks.water; toReturn.setTexture(fluid.getFlowingIcon()); DisplayInteger display = DisplayInteger.createAndStart(); if (cachedValveFluids.containsKey(data)) { cachedValveFluids.get(data).put(fluid, display); } else { HashMap<Fluid, DisplayInteger> map = new HashMap<Fluid, DisplayInteger>(); map.put(fluid, display); cachedValveFluids.put(data, map); } switch (data.side) { case DOWN: { toReturn.minX = .3; toReturn.minY = 1 + .01; toReturn.minZ = .3; toReturn.maxX = .7; toReturn.maxY = 1.4 + .1; toReturn.maxZ = .7; break; } case UP: { toReturn.minX = .3; toReturn.minY = -(data.height - 2) - .01; toReturn.minZ = .3; toReturn.maxX = .7; toReturn.maxY = -.01; toReturn.maxZ = .7; break; } case NORTH: { toReturn.minX = .3; toReturn.minY = -(getValveFluidHeight(data)) + .01; toReturn.minZ = 1 + .02; toReturn.maxX = .7; toReturn.maxY = .7; toReturn.maxZ = 1.4; break; } case SOUTH: { toReturn.minX = .3; toReturn.minY = -(getValveFluidHeight(data)) + .01; toReturn.minZ = -.4; toReturn.maxX = .7; toReturn.maxY = .7; toReturn.maxZ = -.02; break; } case WEST: { toReturn.minX = 1 + .02; toReturn.minY = -(getValveFluidHeight(data)) + .01; toReturn.minZ = .3; toReturn.maxX = 1.4; toReturn.maxY = .7; toReturn.maxZ = .7; break; } case EAST: { toReturn.minX = -.4; toReturn.minY = -(getValveFluidHeight(data)) + .01; toReturn.minZ = .3; toReturn.maxX = -.02; toReturn.maxY = .7; toReturn.maxZ = .7; break; } default: { break; } } if (fluid.getFlowingIcon() != null) { MekanismRenderer.renderObject(toReturn); } display.endList(); return display; }
@SuppressWarnings("incomplete-switch") private DisplayInteger[] getListAndRender(SalinationRenderData data, Fluid fluid) { if (cachedCenterFluids.containsKey(data) && cachedCenterFluids.get(data).containsKey(fluid)) { return cachedCenterFluids.get(data).get(fluid); } Model3D toReturn = new Model3D(); toReturn.baseBlock = Block.waterStill; toReturn.setTexture(fluid.getIcon()); final int stages = getStages(data.height); DisplayInteger[] displays = new DisplayInteger[stages]; if (cachedCenterFluids.containsKey(data)) { cachedCenterFluids.get(data).put(fluid, displays); } else { HashMap<Fluid, DisplayInteger[]> map = new HashMap<Fluid, DisplayInteger[]>(); map.put(fluid, displays); cachedCenterFluids.put(data, map); } MekanismRenderer.colorFluid(fluid); for (int i = 0; i < stages; i++) { displays[i] = DisplayInteger.createAndStart(); if (fluid.getIcon() != null) { switch (data.side) { case NORTH: toReturn.minX = 0 + .01; toReturn.minY = 0 + .01; toReturn.minZ = 0 + .01; toReturn.maxX = 2 - .01; toReturn.maxY = ((float) i / (float) stages) * data.height - .01; toReturn.maxZ = 2 - .01; break; case SOUTH: toReturn.minX = -1 + .01; toReturn.minY = 0 + .01; toReturn.minZ = -1 + .01; toReturn.maxX = 1 - .01; toReturn.maxY = ((float) i / (float) stages) * data.height - .01; toReturn.maxZ = 1 - .01; break; case WEST: toReturn.minX = 0 + .01; toReturn.minY = 0 + .01; toReturn.minZ = -1 + .01; toReturn.maxX = 2 - .01; toReturn.maxY = ((float) i / (float) stages) * data.height - .01; toReturn.maxZ = 1 - .01; break; case EAST: toReturn.minX = -1 + .01; toReturn.minY = 0 + .01; toReturn.minZ = 0 + .01; toReturn.maxX = 1 - .01; toReturn.maxY = ((float) i / (float) stages) * data.height - .01; toReturn.maxZ = 2 - .01; break; } MekanismRenderer.renderObject(toReturn); } displays[i].endList(); } GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); return displays; }