Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DEV] SpaceStation without IZeroGDimension interface. #3766

Closed
BlesseNtumble opened this issue Aug 18, 2019 · 1 comment
Closed

[DEV] SpaceStation without IZeroGDimension interface. #3766

BlesseNtumble opened this issue Aug 18, 2019 · 1 comment
Labels

Comments

@BlesseNtumble
Copy link
Contributor

BlesseNtumble commented Aug 18, 2019

REVIEW THE GUIDELINES (LINK AT TOP OF THIS PAGE)

Minecraft version: 1.12.2
Galacticraft version: 231 dev build

Single player (SSP), Multiplayer (SMP), or SSP opened to LAN (LAN): SSP

Any Galacticraft add-ons installed? please list all
Galaxy Space

Please provide screenshots / crash report / log / full modlist as needed

If I remove the IZeroGDimension interface, then the space station stops working.
When you try to fly to it - endless loading.

With the interface, the station work.
But I do not need zero gravity on it.
public class WorldProviderVenusSS extends WorldProviderSpaceStation implements IOrbitDimension, ISolarLevel, IExitHeight{
	
	@Override
    public DimensionType getDimensionType()
    {
        return GSDimensions.VENUS_SS;
    }
	
    @Override
    @SideOnly(Side.CLIENT)
    public Vector3 getFogColor() {
    	float night = this.getStarBrightness(1.0F);
        float day = 1.0F - this.getStarBrightness(1.0F);
        float dayColR = 203.0F / 255.0F;
        float dayColG = 147.0F / 255.0F;
        float dayColB = 0.0F / 255.0F;
        float nightColR = 131.0F / 255.0F;
        float nightColG = 108.0F / 255.0F;
        float nightColB = 46.0F / 255.0F;
        return new Vector3(dayColR * day + nightColR * night,
                dayColG * day + nightColG * night,
                dayColB * day + nightColB * night);
    }

    @Override
    @SideOnly(Side.CLIENT)
    public Vector3 getSkyColor() {

    	float night = this.getStarBrightness(1.0F);
        float day = 1.0F - this.getStarBrightness(1.0F);
        float dayColR = 105.0F / 255.0F;
        float dayColG = 107.0F / 255.0F;
        float dayColB = 281.0F / 255.0F;
        float nightColR = 118.0F / 255.0F;
        float nightColG = 89.0F / 255.0F;
        float nightColB = 61.0F / 255.0F;
        return new Vector3(dayColR * day + nightColR * night,
                dayColG * day + nightColG * night,
                dayColB * day + nightColB * night);
    }
    
    @Override
    public boolean hasSunset()
    {
        return false;
    }

    @Override
    public long getDayLength()
    {
        return 24000L;
    }

    @Override
    public boolean isDaytime()
    {
        final float a = this.world.getCelestialAngle(0F);
        //TODO: adjust this according to size of planet below
        return a < 0.42F || a > 0.58F;
    }

    @Override
    @SideOnly(Side.CLIENT)
    public float getStarBrightness(float par1)
    {
        final float var2 = this.world.getCelestialAngle(par1);
        float var3 = 1.0F - (MathHelper.cos(var2 * Constants.twoPI) * 2.0F + 0.25F);

        if (var3 < 0.0F)
        {
            var3 = 0.0F;
        }

        if (var3 > 1.0F)
        {
            var3 = 1.0F;
        }

        return var3 * var3 * 0.5F + 0.3F;
    }

    @Override
    public boolean isSkyColored()
    {
        return false;
    }

    @Override
    public double getHorizon()
    {
        return 44.0D;
    }

    @Override
    public int getAverageGroundLevel()
    {
        return 64;
    }

    @Override
    public boolean canCoordinateBeSpawn(int var1, int var2)
    {
        return true;
    }

    @Override
    public CelestialBody getCelestialBody()
    {
        return SolarSystemBodies.venusSpaceStation;
    }

    @Override
    public float getGravity()
    {
        return 0.075F;
    }

    @Override
    public double getMeteorFrequency()
    {
        return 0;
    }

    @Override
    public double getFuelUsageMultiplier()
    {
        return 0.5D;
    }

    @Override
    public String getPlanetToOrbit()
    {
        return VenusModule.planetVenus.getUnlocalizedName();
    }

    @Override
    public int getYCoordToTeleportToPlanet()
    {
        return 30;
    }

    @Override
    public Class<? extends IChunkGenerator> getChunkProviderClass()
    {
        return ChunkProviderVenusSS.class;
    }
    
    @Override
    public String getSaveFolder()
    {
        return "DIM_SPACESTATION_VENUS" + this.getDimension();
    }

    @Override
    public double getSolarEnergyMultiplier()
    {
        return ConfigManagerCore.spaceStationEnergyScalar;
    }

    @Override
    public double getYCoordinateToTeleport()
    {
        return 750;
    }

    @Override
    public boolean canSpaceshipTierPass(int tier)
    {
        return tier > 0;
    }

    @Override
    public float getFallDamageModifier()
    {
        return 0.4F;
    }
   
    @Override
    public void updateWeather()
    {        
        super.updateWeather();
    }

    @Override
    @SideOnly(Side.CLIENT)
    public void setSpinDeltaPerTick(float angle)
    {
        SkyProviderVenusSS skyProvider = ((SkyProviderVenusSS )this.getSkyRenderer());
        if (skyProvider != null)
            skyProvider.spinDeltaPerTick = angle;
    }

    @Override
    @SideOnly(Side.CLIENT)
    public float getSkyRotation()
    {
        SkyProviderVenusSS skyProvider = ((SkyProviderVenusSS )this.getSkyRenderer());
        return skyProvider.spinAngle;
    }
    
    @Override
    @SideOnly(Side.CLIENT)
    public void createSkyProvider()
    {
        this.setSkyRenderer(new SkyProviderVenusSS());
        this.setSpinDeltaPerTick(this.getSpinManager().getSpinRate());
        
        if (this.getCloudRenderer() == null)
            this.setCloudRenderer(new CloudRenderer());
    }
    
    @Override
    public int getDungeonSpacing()
    {
        return 0;
    }

    @Override
    public ResourceLocation getDungeonChestType()
    {
        return RoomTreasure.MOONCHEST;
    }

    @Override
    public List<Block> getSurfaceBlocks()
    {
        return null;
    }
    
    @Override
    public Class<? extends BiomeProvider> getBiomeProviderClass()
    {
    	return BiomeProviderCeres.class;
    }
}
@micdoodle8
Copy link
Owner

Thanks for reminding me :)

@radfast radfast added the fixed label Aug 26, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants